Merge jdk7-b57
authoryan
Wed, 29 Apr 2009 00:27:46 -0700
changeset 1176d5a1223e9618
parent 1153 45dfc3aeee8f
parent 1175 4b922e8fef3b
child 1177 6c7c0bccab55
child 1186 662a327cfe1d
child 1196 2007e3d9c195
child 1227 f29cd35647b1
Merge
test/com/sun/awt/Translucency/TranslucentJAppletTest/TranslucentJAppletTest.java
test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TSFrame.java
test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.form
test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java
     1.1 --- a/README	Tue Apr 28 14:43:44 2009 -0700
     1.2 +++ b/README	Wed Apr 29 00:27:46 2009 -0700
     1.3 @@ -9,25 +9,35 @@
     1.4       http://java.sun.com/javase/downloads/index.jsp
     1.5       Set the environment variable ALT_BOOTDIR to the location of this JDK 6.
     1.6  
     1.7 -  2. Download and install the Binary Plugs for the most recent JDK7 from
     1.8 +  2. Download and install the JIBX libraries, version 1.1.5 from
     1.9 +     http://sourceforge.net/project/showfiles.php?group_id=69358&package_id=68290
    1.10 +     You'll need the following four JAR files:
    1.11 +         bcel.jar
    1.12 +         jibx-bind.jar
    1.13 +         jibx-run.jar
    1.14 +         xpp3.jar
    1.15 +     Set the environment variable ALT_JIBX_LIBS_PATH to the location of
    1.16 +     these JAR files.
    1.17 +     
    1.18 +  3. Download and install the Binary Plugs for the most recent JDK7 from
    1.19       http://download.java.net/openjdk/jdk7/
    1.20       Set the environment variable ALT_BINARY_PLUGS_PATH to the location of
    1.21       these binary plugs.
    1.22       
    1.23 -  3. Either download and install the latest JDK7 from
    1.24 +  4. Either download and install the latest JDK7 from
    1.25       http://download.java.net/openjdk/jdk7/, or build your own complete
    1.26       OpenJDK7 by using the top level Makefile in the OpenJDK Mercurial forest.
    1.27       Set the environment variable ALT_JDK_IMPORT_PATH to the location of
    1.28       this latest JDK7 or OpenJDK7 build.
    1.29       
    1.30 -  4. Check the sanity of doing a build with the current machine:
    1.31 +  5. Check the sanity of doing a build with the current machine:
    1.32         cd make && gnumake sanity
    1.33       See README-builds.html if you run into problems.
    1.34    
    1.35 -  5. Do a partial build of the jdk:
    1.36 +  6. Do a partial build of the jdk:
    1.37         cd make && gnumake all
    1.38    
    1.39 -  6. Construct the images:
    1.40 +  7. Construct the images:
    1.41         cd make && gnumake images
    1.42       The resulting JDK image should be found in build/*/j2sdk-image
    1.43  
     2.1 --- a/make/common/Sanity.gmk	Tue Apr 28 14:43:44 2009 -0700
     2.2 +++ b/make/common/Sanity.gmk	Wed Apr 29 00:27:46 2009 -0700
     2.3 @@ -92,7 +92,8 @@
     2.4      sane-ld_run_path \
     2.5      sane-alt_bootdir \
     2.6      sane-bootdir \
     2.7 -    sane-alsa-headers
     2.8 +    sane-alsa-headers \
     2.9 +    sane-jibx
    2.10  
    2.11  ifdef OPENJDK
    2.12  sanity-all:: sane-freetype 
     3.1 --- a/make/common/shared/Defs.gmk	Tue Apr 28 14:43:44 2009 -0700
     3.2 +++ b/make/common/shared/Defs.gmk	Wed Apr 29 00:27:46 2009 -0700
     3.3 @@ -515,6 +515,15 @@
     3.4  #   NOTE: ISA_DIR is usually empty, on Solaris it might be /sparcv9 or /amd64
     3.5  BINDIR      = $(OUTPUTDIR)/bin$(ISA_DIR)
     3.6    
     3.7 +# JIBX_LIBS_PATH: path to JIBX libraries, needed for NimbusLookAndFeel
     3.8 +ifdef ALT_JIBX_LIBS_PATH
     3.9 +  JIBX_LIBS_PATH:=$(call FullPath,$(ALT_JIBX_LIBS_PATH))
    3.10 +  JIBX_LIBS_PATH:=$(call AltCheckSpaces,JIBX_LIBS_PATH)
    3.11 +  JIBX_LIBS_PATH:=$(call AltCheckValue,JIBX_LIBS_PATH)
    3.12 +else
    3.13 +  JIBX_LIBS_PATH=$(JDK_DEVTOOLS_DIR)/share/jibx/lib
    3.14 +endif
    3.15 +
    3.16  # MOZILLA_HEADERS_PATH: path to mozilla header files for plugin
    3.17  ifdef ALT_MOZILLA_HEADERS_PATH
    3.18    MOZILLA_HEADERS_PATH :=$(call FullPath,$(ALT_MOZILLA_HEADERS_PATH))
    3.19 @@ -529,7 +538,7 @@
    3.20  JDK_CUPS_HEADERS_PATH=$(JDK_DEVTOOLS_DIR)/share/cups/include
    3.21    ifdef ALT_CUPS_HEADERS_PATH
    3.22       CUPS_HEADERS_PATH:=$(call FullPath,$(ALT_CUPS_HEADERS_PATH))
    3.23 -     CUP_HEADERS_PATH:=$(call AltCheckValue,CUPS_HEADERS_PATH)
    3.24 +     CUPS_HEADERS_PATH:=$(call AltCheckValue,CUPS_HEADERS_PATH)
    3.25    else 
    3.26      CUPS_HEADERS_PATH:= \
    3.27        $(shell if [ -d "$(JDK_CUPS_HEADERS_PATH)" ]; then \
     4.1 --- a/make/common/shared/Sanity-Settings.gmk	Tue Apr 28 14:43:44 2009 -0700
     4.2 +++ b/make/common/shared/Sanity-Settings.gmk	Wed Apr 29 00:27:46 2009 -0700
     4.3 @@ -233,6 +233,7 @@
     4.4    endif
     4.5  endif
     4.6  ALL_SETTINGS+=$(call addAltSetting,CACERTS_FILE)
     4.7 +ALL_SETTINGS+=$(call addAltSetting,JIBX_LIBS_PATH)
     4.8  ifndef OPENJDK
     4.9    ALL_SETTINGS+=$(call addAltSetting,MOZILLA_HEADERS_PATH)
    4.10  endif
     5.1 --- a/make/common/shared/Sanity.gmk	Tue Apr 28 14:43:44 2009 -0700
     5.2 +++ b/make/common/shared/Sanity.gmk	Wed Apr 29 00:27:46 2009 -0700
     5.3 @@ -213,6 +213,7 @@
     5.4  	sane-link \
     5.5  	sane-cacerts \
     5.6  	sane-alsa-headers \
     5.7 +	sane-jibx \
     5.8  	sane-ant_version \
     5.9  	sane-zip_version \
    5.10  	sane-unzip_version \
    5.11 @@ -1498,6 +1499,18 @@
    5.12  
    5.13  
    5.14  ######################################################
    5.15 +# JIBX_LIBS_PATH must be valid
    5.16 +######################################################
    5.17 +sane-jibx:
    5.18 +	@if [ ! -r $(subst \,/,$(JIBX_LIBS_PATH))/jibx-run.jar ]; then \
    5.19 +	  $(ECHO) "ERROR: You do not have access to valid JIBX library files. \n" \
    5.20 +	    "      Please check your access to \n" \
    5.21 +	    "          $(subst \,/,$(JIBX_LIBS_PATH))/jibx-run.jar \n" \
    5.22 +	    "      and/or check your value of ALT_JDK_DEVTOOLS_DIR, ALT_JIBX_LIBS_PATH \n" \
    5.23 +	    "" >> $(ERROR_FILE) ; \
    5.24 +	fi
    5.25 +
    5.26 +######################################################
    5.27  # MOZILLA_HEADERS_PATH must be valid
    5.28  ######################################################
    5.29  sane-mozilla:
     6.1 --- a/make/javax/swing/plaf/Makefile	Tue Apr 28 14:43:44 2009 -0700
     6.2 +++ b/make/javax/swing/plaf/Makefile	Wed Apr 29 00:27:46 2009 -0700
     6.3 @@ -34,9 +34,14 @@
     6.4  #
     6.5  include FILES.gmk
     6.6  AUTO_FILES_JAVA_DIRS = javax/swing/plaf sun/swing com/sun/java/swing/plaf
     6.7 +SUBDIRS = nimbus
     6.8 +
     6.9 +# Nimbus is handled in its own directory
    6.10 +AUTO_JAVA_PRUNE = nimbus
    6.11 +
    6.12  ifeq ($(PLATFORM), windows)
    6.13      # Don't build GTK L&F on Windows
    6.14 -    AUTO_JAVA_PRUNE = gtk
    6.15 +    AUTO_JAVA_PRUNE += gtk
    6.16  endif
    6.17  
    6.18  MISC_FILES = $(MISC_SWING_FILES)
    6.19 @@ -68,8 +73,10 @@
    6.20  # Process LOGO_ICONS and Motif Icons first.
    6.21  #
    6.22  build: $(LOGO_ICONS) $(MISC_SWING_FILES_MOTIF_GIF) $(MISC_SWING_FILES_MOTIF_PNG) other_files
    6.23 +	$(SUBDIRS-loop)
    6.24  
    6.25 -clean:: classes.clean
    6.26 +clean clobber::
    6.27 +	$(SUBDIRS-loop)
    6.28  
    6.29  #
    6.30  # Include
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/make/javax/swing/plaf/nimbus/Makefile	Wed Apr 29 00:27:46 2009 -0700
     7.3 @@ -0,0 +1,60 @@
     7.4 +#
     7.5 +# Copyright 1998-2007 Sun Microsystems, Inc.  All Rights Reserved.
     7.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     7.7 +#
     7.8 +# This code is free software; you can redistribute it and/or modify it
     7.9 +# under the terms of the GNU General Public License version 2 only, as
    7.10 +# published by the Free Software Foundation.  Sun designates this
    7.11 +# particular file as subject to the "Classpath" exception as provided
    7.12 +# by Sun in the LICENSE file that accompanied this code.
    7.13 +#
    7.14 +# This code is distributed in the hope that it will be useful, but WITHOUT
    7.15 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    7.16 +# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    7.17 +# version 2 for more details (a copy is included in the LICENSE file that
    7.18 +# accompanied this code).
    7.19 +#
    7.20 +# You should have received a copy of the GNU General Public License version
    7.21 +# 2 along with this work; if not, write to the Free Software Foundation,
    7.22 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    7.23 +#
    7.24 +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
    7.25 +# CA 95054 USA or visit www.sun.com if you need additional information or
    7.26 +# have any questions.
    7.27 +#
    7.28 +
    7.29 +BUILDDIR  = ../../../..
    7.30 +PACKAGE   = javax.swing.plaf.nimbus
    7.31 +PRODUCT   = com
    7.32 +SWING_SRC = $(SHARE_SRC)/classes/javax/swing
    7.33 +include $(BUILDDIR)/common/Defs.gmk
    7.34 +
    7.35 +#
    7.36 +# Files
    7.37 +#
    7.38 +NIMBUS_PKG = javax/swing/plaf/nimbus
    7.39 +NIMBUS_COMPAT_PKG = com/sun/java/swing/plaf/nimbus
    7.40 +NIMBUS_GENSRC_DIR = $(GENSRCDIR)/$(NIMBUS_PKG)
    7.41 +NIMBUS_SKIN_FILE = $(SHARE_SRC)/classes/$(NIMBUS_PKG)/skin.laf
    7.42 +NIMBUS_GENERATOR_JAR = $(BUILDTOOLJARDIR)/nimbus_generator.jar
    7.43 +
    7.44 +AUTO_FILES_JAVA_DIRS = $(NIMBUS_PKG) $(NIMBUS_COMPAT_PKG)
    7.45 +
    7.46 +
    7.47 +#
    7.48 +# Rules
    7.49 +#
    7.50 +CLASSES_INIT = $(NIMBUS_GENSRC_DIR)
    7.51 +
    7.52 +include $(BUILDDIR)/common/Classes.gmk
    7.53 +
    7.54 +$(NIMBUS_GENSRC_DIR): $(NIMBUS_SKIN_FILE) $(NIMBUS_GENERATOR_JAR)
    7.55 +	@$(ECHO) "Generating Nimbus source files:"
    7.56 +	$(BOOT_JAVA_CMD) -jar $(NIMBUS_GENERATOR_JAR) \
    7.57 +	    -skinFile $(NIMBUS_SKIN_FILE) \
    7.58 +	    -buildDir $(GENSRCDIR) -srcDir $(GENSRCDIR) \
    7.59 +	    -packagePrefix $(PACKAGE) -lafName Nimbus
    7.60 +	@$(ECHO) "Finished generating Nimbus source files"
    7.61 +
    7.62 +clean clobber::
    7.63 +	$(RM) -r $(NIMBUS_GENSRC_DIR)
     8.1 --- a/make/tools/Makefile	Tue Apr 28 14:43:44 2009 -0700
     8.2 +++ b/make/tools/Makefile	Wed Apr 29 00:27:46 2009 -0700
     8.3 @@ -51,6 +51,7 @@
     8.4    makeclasslist             \
     8.5    strip_properties          \
     8.6    spp                       \
     8.7 +  swing-nimbus              \
     8.8    CharsetMapping
     8.9  
    8.10  all build clean clobber::
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/make/tools/swing-nimbus/Makefile	Wed Apr 29 00:27:46 2009 -0700
     9.3 @@ -0,0 +1,91 @@
     9.4 +#
     9.5 +# Copyright 1998-2005 Sun Microsystems, Inc.  All Rights Reserved.
     9.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     9.7 +#
     9.8 +# This code is free software; you can redistribute it and/or modify it
     9.9 +# under the terms of the GNU General Public License version 2 only, as
    9.10 +# published by the Free Software Foundation.  Sun designates this
    9.11 +# particular file as subject to the "Classpath" exception as provided
    9.12 +# by Sun in the LICENSE file that accompanied this code.
    9.13 +#
    9.14 +# This code is distributed in the hope that it will be useful, but WITHOUT
    9.15 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    9.16 +# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    9.17 +# version 2 for more details (a copy is included in the LICENSE file that
    9.18 +# accompanied this code).
    9.19 +#
    9.20 +# You should have received a copy of the GNU General Public License version
    9.21 +# 2 along with this work; if not, write to the Free Software Foundation,
    9.22 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    9.23 +#
    9.24 +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
    9.25 +# CA 95054 USA or visit www.sun.com if you need additional information or
    9.26 +# have any questions.
    9.27 +#
    9.28 +
    9.29 +#
    9.30 +# Makefile for building the Nimbus generator
    9.31 +#
    9.32 +
    9.33 +BUILDDIR = ../..
    9.34 +PACKAGE = org.jdesktop.synthdesigner.generator
    9.35 +PRODUCT = tools
    9.36 +PROGRAM = nimbus_generator
    9.37 +include $(BUILDDIR)/common/Defs.gmk
    9.38 +
    9.39 +BUILDTOOL_SOURCE_ROOT = classes
    9.40 +BUILDTOOL_MAIN        = $(PKGDIR)/Generator.java
    9.41 +
    9.42 +#
    9.43 +# Files
    9.44 +#
    9.45 +
    9.46 +MAIN_CLASS_FILE = $(BUILDTOOLCLASSDIR)/$(BUILDTOOL_MAIN:%.java=%.class)
    9.47 +SOURCE_FILES    = $(shell $(FIND) $(BUILDTOOL_SOURCE_ROOT) -name '*.java' -print)
    9.48 +
    9.49 +TEMPLATE_FILES  = $(SHARE_SRC)/classes/javax/swing/plaf/nimbus/Defaults.template \
    9.50 +                  $(SHARE_SRC)/classes/javax/swing/plaf/nimbus/PainterImpl.template \
    9.51 +                  $(SHARE_SRC)/classes/javax/swing/plaf/nimbus/StateImpl.template
    9.52 +TEMPLATE_DEST   = $(BUILDTOOLCLASSDIR)/org/jdesktop/synthdesigner/generator/resources
    9.53 +
    9.54 +JIBX_FILES      = $(BUILDTOOL_SOURCE_ROOT)/org/jdesktop/swingx/designer/Designer.jibx.xml \
    9.55 +                  $(BUILDTOOL_SOURCE_ROOT)/org/jdesktop/synthdesigner/synthmodel/SynthModel.jibx.xml
    9.56 +JIBX_LIBS_CP    = $(JIBX_LIBS_PATH)/bcel.jar$(CLASSPATH_SEPARATOR)$(JIBX_LIBS_PATH)/xpp3.jar$(CLASSPATH_SEPARATOR)$(JIBX_LIBS_PATH)/jibx-bind.jar$(CLASSPATH_SEPARATOR)$(JIBX_LIBS_PATH)/jibx-run.jar
    9.57 +JIBX_LIBS_LIST  = $(subst $(CLASSPATH_SEPARATOR), ,$(JIBX_LIBS_CP))
    9.58 +
    9.59 +
    9.60 +#
    9.61 +# Rules
    9.62 +#
    9.63 +
    9.64 +include $(BUILDDIR)/common/BuildToolJar.gmk
    9.65 +
    9.66 +$(MAIN_CLASS_FILE): $(SOURCE_FILES) $(JIBX_LIBS_LIST)
    9.67 +	@$(MKDIR) -p $(BUILDTOOLCLASSDIR)
    9.68 +	$(BOOT_JAVAC_CMD) -classpath "$(JIBX_LIBS_CP)" \
    9.69 +	    -d $(BUILDTOOLCLASSDIR) -sourcepath $(BUILDTOOL_SOURCE_ROOT) \
    9.70 +	    $(SOURCE_FILES)
    9.71 +
    9.72 +$(TEMPLATE_DEST): $(TEMPLATE_FILES)
    9.73 +	$(MKDIR) -p $(TEMPLATE_DEST)
    9.74 +	$(RM) $(TEMPLATE_DEST)/*.template
    9.75 +	$(CP) $(TEMPLATE_FILES) $(TEMPLATE_DEST)
    9.76 +
    9.77 +$(BUILDTOOL_MANIFEST_FILE): $(MAIN_CLASS_FILE)
    9.78 +	$(ECHO) "Main-Class: $(BUILTTOOL_MAINCLASS)" > $@
    9.79 +	$(ECHO) "Class-Path: $(JIBX_LIBS_LIST:$(JIBX_LIBS_PATH)/%=%)" >> $@
    9.80 +	$(CP) $(JIBX_LIBS_LIST) $(BUILDTOOLJARDIR)
    9.81 +
    9.82 +$(BUILDTOOL_JAR_FILE): $(MAIN_CLASS_FILE) $(TEMPLATE_DEST) \
    9.83 +    $(JIBX_FILES) $(BUILDTOOL_MANIFEST_FILE)
    9.84 +	@$(prep-target)
    9.85 +	$(BOOT_JAVA_CMD) \
    9.86 +	  -classpath "$(JIBX_LIBS_CP)$(CLASSPATH_SEPARATOR)$(BUILDTOOLCLASSDIR)" \
    9.87 +	  org.jibx.binding.Compile $(JIBX_FILES)
    9.88 +	$(BOOT_JAR_CMD) cfm $@ $(BUILDTOOL_MANIFEST_FILE) \
    9.89 +	    -C $(BUILDTOOLCLASSDIR) org \
    9.90 +	    $(BOOT_JAR_JFLAGS) || $(RM) $@
    9.91 +	@$(java-vm-cleanup)
    9.92 +
    9.93 +clean clobber::
    9.94 +	$(RM) -r $(TEMPLATE_DEST)
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/beans/AbstractBean.java	Wed Apr 29 00:27:46 2009 -0700
    10.3 @@ -0,0 +1,475 @@
    10.4 +/*
    10.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    10.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    10.7 + *
    10.8 + * This code is free software; you can redistribute it and/or modify it
    10.9 + * under the terms of the GNU General Public License version 2 only, as
   10.10 + * published by the Free Software Foundation.  Sun designates this
   10.11 + * particular file as subject to the "Classpath" exception as provided
   10.12 + * by Sun in the LICENSE file that accompanied this code.
   10.13 + *
   10.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   10.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   10.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   10.17 + * version 2 for more details (a copy is included in the LICENSE file that
   10.18 + * accompanied this code).
   10.19 + *
   10.20 + * You should have received a copy of the GNU General Public License version
   10.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   10.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   10.23 + *
   10.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   10.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   10.26 + * have any questions.
   10.27 + */
   10.28 +package org.jdesktop.beans;
   10.29 +
   10.30 +import java.beans.PropertyChangeEvent;
   10.31 +import java.beans.PropertyChangeListener;
   10.32 +import java.beans.PropertyChangeSupport;
   10.33 +import java.beans.PropertyVetoException;
   10.34 +import java.beans.VetoableChangeListener;
   10.35 +import java.beans.VetoableChangeSupport;
   10.36 +
   10.37 +/**
   10.38 + * <p>A convenience class from which to extend all non-visual AbstractBeans. It
   10.39 + * manages the PropertyChange notification system, making it relatively trivial
   10.40 + * to add support for property change events in getters/setters.</p>
   10.41 + *
   10.42 + * <p>A non-visual java bean is a Java class that conforms to the AbstractBean
   10.43 + * patterns to allow visual manipulation of the bean's properties and event
   10.44 + * handlers at design-time.</p>
   10.45 + *
   10.46 + * <p>Here is a simple example bean that contains one property, foo, and the
   10.47 + * proper pattern for implementing property change notification:
   10.48 + * <pre><code>
   10.49 + *  public class ABean extends AbstractBean {
   10.50 + *    private String foo;
   10.51 + *
   10.52 + *    public void setFoo(String newFoo) {
   10.53 + *      String old = getFoo();
   10.54 + *      this.foo = newFoo;
   10.55 + *      firePropertyChange("foo", old, getFoo());
   10.56 + *    }
   10.57 + *
   10.58 + *    public String getFoo() {
   10.59 + *      return foo;
   10.60 + *    }
   10.61 + *  }
   10.62 + * </code></pre></p>
   10.63 + *
   10.64 + * <p>You will notice that "getFoo()" is used in the setFoo method rather than
   10.65 + * accessing "foo" directly for the gets. This is done intentionally so that if
   10.66 + * a subclass overrides getFoo() to return, for instance, a constant value the
   10.67 + * property change notification system will continue to work properly.</p>
   10.68 + *
   10.69 + * <p>The firePropertyChange method takes into account the old value and the new
   10.70 + * value. Only if the two differ will it fire a property change event. So you can
   10.71 + * be assured from the above code fragment that a property change event will only
   10.72 + * occur if old is indeed different from getFoo()</p>
   10.73 + *
   10.74 + * <p><code>AbstractBean</code> also supports {@link VetoablePropertyChange} events.
   10.75 + * These events are similar to <code>PropertyChange</code> events, except a special
   10.76 + * exception can be used to veto changing the property. For example, perhaps the
   10.77 + * property is changing from "fred" to "red", but a listener deems that "red" is
   10.78 + * unexceptable. In this case, the listener can fire a veto exception and the property must
   10.79 + * remain "fred". For example:
   10.80 + * <pre><code>
   10.81 + *  public class ABean extends AbstractBean {
   10.82 + *    private String foo;
   10.83 + *
   10.84 + *    public void setFoo(String newFoo) throws PropertyVetoException {
   10.85 + *      String old = getFoo();
   10.86 + *      this.foo = newFoo;
   10.87 + *      fireVetoableChange("foo", old, getFoo());
   10.88 + *    }
   10.89 + *
   10.90 + *    public String getFoo() {
   10.91 + *      return foo;
   10.92 + *    }
   10.93 + *  }
   10.94 + *
   10.95 + *  public class Tester {
   10.96 + *    public static void main(String... args) {
   10.97 + *      try {
   10.98 + *        ABean a = new ABean();
   10.99 + *        a.setFoo("fred");
  10.100 + *        a.addVetoableChangeListener(new VetoableChangeListener() {
  10.101 + *          public void vetoableChange(PropertyChangeEvent evt) throws PropertyVetoException {
  10.102 + *            if ("red".equals(evt.getNewValue()) {
  10.103 + *              throw new PropertyVetoException("Cannot be red!", evt);
  10.104 + *            }
  10.105 + *          }
  10.106 + *        }
  10.107 + *        a.setFoo("red");
  10.108 + *      } catch (Exception e) {
  10.109 + *        e.printStackTrace(); // this will be executed
  10.110 + *      }
  10.111 + *    }
  10.112 + *  }
  10.113 + * </code></pre></p>
  10.114 + *
  10.115 + * @status REVIEWED
  10.116 + * @author rbair
  10.117 + */
  10.118 +public abstract class AbstractBean {
  10.119 +    /**
  10.120 +     * Helper class that manages all the property change notification machinery.
  10.121 +     * PropertyChangeSupport cannot be extended directly because it requires
  10.122 +     * a bean in the constructor, and the "this" argument is not valid until
  10.123 +     * after super construction. Hence, delegation instead of extension
  10.124 +     */
  10.125 +    private transient PropertyChangeSupport pcs;
  10.126 +
  10.127 +    /**
  10.128 +     * Helper class that manages all the veto property change notification machinery.
  10.129 +     */
  10.130 +    private transient VetoableChangeSupport vcs;
  10.131 +
  10.132 +    /** Creates a new instance of AbstractBean */
  10.133 +    protected AbstractBean() {
  10.134 +        pcs = new PropertyChangeSupport(this);
  10.135 +        vcs = new VetoableChangeSupport(this);
  10.136 +    }
  10.137 +
  10.138 +    /**
  10.139 +     * Creates a new instance of AbstractBean, using the supplied PropertyChangeSupport and
  10.140 +     * VetoableChangeSupport delegates. Neither of these may be null.
  10.141 +     */
  10.142 +    protected AbstractBean(PropertyChangeSupport pcs, VetoableChangeSupport vcs) {
  10.143 +        if (pcs == null) {
  10.144 +            throw new NullPointerException("PropertyChangeSupport must not be null");
  10.145 +        }
  10.146 +        if (vcs == null) {
  10.147 +            throw new NullPointerException("VetoableChangeSupport must not be null");
  10.148 +        }
  10.149 +
  10.150 +        this.pcs = pcs;
  10.151 +        this.vcs = vcs;
  10.152 +    }
  10.153 +
  10.154 +    /**
  10.155 +     * Add a PropertyChangeListener to the listener list.
  10.156 +     * The listener is registered for all properties.
  10.157 +     * The same listener object may be added more than once, and will be called
  10.158 +     * as many times as it is added.
  10.159 +     * If <code>listener</code> is null, no exception is thrown and no action
  10.160 +     * is taken.
  10.161 +     *
  10.162 +     * @param listener  The PropertyChangeListener to be added
  10.163 +     */
  10.164 +    public final void addPropertyChangeListener(PropertyChangeListener listener) {
  10.165 +        pcs.addPropertyChangeListener(listener);
  10.166 +    }
  10.167 +
  10.168 +    /**
  10.169 +     * Remove a PropertyChangeListener from the listener list.
  10.170 +     * This removes a PropertyChangeListener that was registered
  10.171 +     * for all properties.
  10.172 +     * If <code>listener</code> was added more than once to the same event
  10.173 +     * source, it will be notified one less time after being removed.
  10.174 +     * If <code>listener</code> is null, or was never added, no exception is
  10.175 +     * thrown and no action is taken.
  10.176 +     *
  10.177 +     * @param listener  The PropertyChangeListener to be removed
  10.178 +     */
  10.179 +    public final void removePropertyChangeListener(PropertyChangeListener listener) {
  10.180 +        pcs.removePropertyChangeListener(listener);
  10.181 +    }
  10.182 +
  10.183 +    /**
  10.184 +     * Returns an array of all the listeners that were added to the
  10.185 +     * PropertyChangeSupport object with addPropertyChangeListener().
  10.186 +     * <p>
  10.187 +     * If some listeners have been added with a named property, then
  10.188 +     * the returned array will be a mixture of PropertyChangeListeners
  10.189 +     * and <code>PropertyChangeListenerProxy</code>s. If the calling
  10.190 +     * method is interested in distinguishing the listeners then it must
  10.191 +     * test each element to see if it's a
  10.192 +     * <code>PropertyChangeListenerProxy</code>, perform the cast, and examine
  10.193 +     * the parameter.
  10.194 +     *
  10.195 +     * <pre>
  10.196 +     * PropertyChangeListener[] listeners = bean.getPropertyChangeListeners();
  10.197 +     * for (int i = 0; i < listeners.length; i++) {
  10.198 +     *   if (listeners[i] instanceof PropertyChangeListenerProxy) {
  10.199 +     *     PropertyChangeListenerProxy proxy =
  10.200 +     *                    (PropertyChangeListenerProxy)listeners[i];
  10.201 +     *     if (proxy.getPropertyName().equals("foo")) {
  10.202 +     *       // proxy is a PropertyChangeListener which was associated
  10.203 +     *       // with the property named "foo"
  10.204 +     *     }
  10.205 +     *   }
  10.206 +     * }
  10.207 +     *</pre>
  10.208 +     *
  10.209 +     * @see java.beans.PropertyChangeListenerProxy
  10.210 +     * @return all of the <code>PropertyChangeListeners</code> added or an
  10.211 +     *         empty array if no listeners have been added
  10.212 +     */
  10.213 +    public final PropertyChangeListener[] getPropertyChangeListeners() {
  10.214 +        return pcs.getPropertyChangeListeners();
  10.215 +    }
  10.216 +
  10.217 +    /**
  10.218 +     * Add a PropertyChangeListener for a specific property.  The listener
  10.219 +     * will be invoked only when a call on firePropertyChange names that
  10.220 +     * specific property.
  10.221 +     * The same listener object may be added more than once.  For each
  10.222 +     * property,  the listener will be invoked the number of times it was added
  10.223 +     * for that property.
  10.224 +     * If <code>propertyName</code> or <code>listener</code> is null, no
  10.225 +     * exception is thrown and no action is taken.
  10.226 +     *
  10.227 +     * @param propertyName  The name of the property to listen on.
  10.228 +     * @param listener  The PropertyChangeListener to be added
  10.229 +     */
  10.230 +    public final void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
  10.231 +        pcs.addPropertyChangeListener(propertyName, listener);
  10.232 +    }
  10.233 +
  10.234 +    /**
  10.235 +     * Remove a PropertyChangeListener for a specific property.
  10.236 +     * If <code>listener</code> was added more than once to the same event
  10.237 +     * source for the specified property, it will be notified one less time
  10.238 +     * after being removed.
  10.239 +     * If <code>propertyName</code> is null,  no exception is thrown and no
  10.240 +     * action is taken.
  10.241 +     * If <code>listener</code> is null, or was never added for the specified
  10.242 +     * property, no exception is thrown and no action is taken.
  10.243 +     *
  10.244 +     * @param propertyName  The name of the property that was listened on.
  10.245 +     * @param listener  The PropertyChangeListener to be removed
  10.246 +     */
  10.247 +    public final void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {
  10.248 +        pcs.removePropertyChangeListener(propertyName, listener);
  10.249 +    }
  10.250 +
  10.251 +    /**
  10.252 +     * Returns an array of all the listeners which have been associated
  10.253 +     * with the named property.
  10.254 +     *
  10.255 +     * @param propertyName  The name of the property being listened to
  10.256 +     * @return all of the <code>PropertyChangeListeners</code> associated with
  10.257 +     *         the named property.  If no such listeners have been added,
  10.258 +     *         or if <code>propertyName</code> is null, an empty array is
  10.259 +     *         returned.
  10.260 +     */
  10.261 +    public final PropertyChangeListener[] getPropertyChangeListeners(String propertyName) {
  10.262 +            return pcs.getPropertyChangeListeners(propertyName);
  10.263 +    }
  10.264 +
  10.265 +    /**
  10.266 +     * Report a bound property update to any registered listeners.
  10.267 +     * No event is fired if old and new are equal and non-null.
  10.268 +     *
  10.269 +     * <p>
  10.270 +     * This is merely a convenience wrapper around the more general
  10.271 +     * firePropertyChange method that takes {@code
  10.272 +     * PropertyChangeEvent} value.
  10.273 +     *
  10.274 +     * @param propertyName  The programmatic name of the property
  10.275 +     *                      that was changed.
  10.276 +     * @param oldValue  The old value of the property.
  10.277 +     * @param newValue  The new value of the property.
  10.278 +     */
  10.279 +    protected final void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
  10.280 +        pcs.firePropertyChange(propertyName, oldValue, newValue);
  10.281 +    }
  10.282 +
  10.283 +    /**
  10.284 +     * Fire an existing PropertyChangeEvent to any registered listeners.
  10.285 +     * No event is fired if the given event's old and new values are
  10.286 +     * equal and non-null.
  10.287 +     * @param evt  The PropertyChangeEvent object.
  10.288 +     */
  10.289 +    protected final void firePropertyChange(PropertyChangeEvent evt) {
  10.290 +        pcs.firePropertyChange(evt);
  10.291 +    }
  10.292 +
  10.293 +
  10.294 +    /**
  10.295 +     * Report a bound indexed property update to any registered
  10.296 +     * listeners.
  10.297 +     * <p>
  10.298 +     * No event is fired if old and new values are equal
  10.299 +     * and non-null.
  10.300 +     *
  10.301 +     * <p>
  10.302 +     * This is merely a convenience wrapper around the more general
  10.303 +     * firePropertyChange method that takes {@code PropertyChangeEvent} value.
  10.304 +     *
  10.305 +     * @param propertyName The programmatic name of the property that
  10.306 +     *                     was changed.
  10.307 +     * @param index        index of the property element that was changed.
  10.308 +     * @param oldValue     The old value of the property.
  10.309 +     * @param newValue     The new value of the property.
  10.310 +     */
  10.311 +    protected final void fireIndexedPropertyChange(String propertyName,
  10.312 +            int index, Object oldValue, Object newValue) {
  10.313 +        pcs.fireIndexedPropertyChange(propertyName, index, oldValue, newValue);
  10.314 +    }
  10.315 +
  10.316 +    /**
  10.317 +     * Check if there are any listeners for a specific property, including
  10.318 +     * those registered on all properties.  If <code>propertyName</code>
  10.319 +     * is null, only check for listeners registered on all properties.
  10.320 +     *
  10.321 +     * @param propertyName  the property name.
  10.322 +     * @return true if there are one or more listeners for the given property
  10.323 +     */
  10.324 +    protected final boolean hasPropertyChangeListeners(String propertyName) {
  10.325 +        return pcs.hasListeners(propertyName);
  10.326 +    }
  10.327 +
  10.328 +    /**
  10.329 +     * Check if there are any listeners for a specific property, including
  10.330 +     * those registered on all properties.  If <code>propertyName</code>
  10.331 +     * is null, only check for listeners registered on all properties.
  10.332 +     *
  10.333 +     * @param propertyName  the property name.
  10.334 +     * @return true if there are one or more listeners for the given property
  10.335 +     */
  10.336 +    protected final boolean hasVetoableChangeListeners(String propertyName) {
  10.337 +        return vcs.hasListeners(propertyName);
  10.338 +    }
  10.339 +
  10.340 +    /**
  10.341 +     * Add a VetoableListener to the listener list.
  10.342 +     * The listener is registered for all properties.
  10.343 +     * The same listener object may be added more than once, and will be called
  10.344 +     * as many times as it is added.
  10.345 +     * If <code>listener</code> is null, no exception is thrown and no action
  10.346 +     * is taken.
  10.347 +     *
  10.348 +     * @param listener  The VetoableChangeListener to be added
  10.349 +     */
  10.350 +
  10.351 +    public final void addVetoableChangeListener(VetoableChangeListener listener) {
  10.352 +        vcs.addVetoableChangeListener(listener);
  10.353 +    }
  10.354 +
  10.355 +    /**
  10.356 +     * Remove a VetoableChangeListener from the listener list.
  10.357 +     * This removes a VetoableChangeListener that was registered
  10.358 +     * for all properties.
  10.359 +     * If <code>listener</code> was added more than once to the same event
  10.360 +     * source, it will be notified one less time after being removed.
  10.361 +     * If <code>listener</code> is null, or was never added, no exception is
  10.362 +     * thrown and no action is taken.
  10.363 +     *
  10.364 +     * @param listener  The VetoableChangeListener to be removed
  10.365 +     */
  10.366 +    public final void removeVetoableChangeListener(VetoableChangeListener listener) {
  10.367 +        vcs.removeVetoableChangeListener(listener);
  10.368 +    }
  10.369 +
  10.370 +    /**
  10.371 +     * Returns the list of VetoableChangeListeners. If named vetoable change listeners
  10.372 +     * were added, then VetoableChangeListenerProxy wrappers will returned
  10.373 +     * <p>
  10.374 +     * @return List of VetoableChangeListeners and VetoableChangeListenerProxys
  10.375 +     *         if named property change listeners were added.
  10.376 +     */
  10.377 +    public final VetoableChangeListener[] getVetoableChangeListeners(){
  10.378 +        return vcs.getVetoableChangeListeners();
  10.379 +    }
  10.380 +
  10.381 +    /**
  10.382 +     * Add a VetoableChangeListener for a specific property.  The listener
  10.383 +     * will be invoked only when a call on fireVetoableChange names that
  10.384 +     * specific property.
  10.385 +     * The same listener object may be added more than once.  For each
  10.386 +     * property,  the listener will be invoked the number of times it was added
  10.387 +     * for that property.
  10.388 +     * If <code>propertyName</code> or <code>listener</code> is null, no
  10.389 +     * exception is thrown and no action is taken.
  10.390 +     *
  10.391 +     * @param propertyName  The name of the property to listen on.
  10.392 +     * @param listener  The VetoableChangeListener to be added
  10.393 +     */
  10.394 +
  10.395 +    public final void addVetoableChangeListener(String propertyName,
  10.396 +                VetoableChangeListener listener) {
  10.397 +        vcs.addVetoableChangeListener(propertyName, listener);
  10.398 +    }
  10.399 +
  10.400 +    /**
  10.401 +     * Remove a VetoableChangeListener for a specific property.
  10.402 +     * If <code>listener</code> was added more than once to the same event
  10.403 +     * source for the specified property, it will be notified one less time
  10.404 +     * after being removed.
  10.405 +     * If <code>propertyName</code> is null, no exception is thrown and no
  10.406 +     * action is taken.
  10.407 +     * If <code>listener</code> is null, or was never added for the specified
  10.408 +     * property, no exception is thrown and no action is taken.
  10.409 +     *
  10.410 +     * @param propertyName  The name of the property that was listened on.
  10.411 +     * @param listener  The VetoableChangeListener to be removed
  10.412 +     */
  10.413 +
  10.414 +    public final void removeVetoableChangeListener(String propertyName,
  10.415 +                VetoableChangeListener listener) {
  10.416 +        vcs.removeVetoableChangeListener(propertyName, listener);
  10.417 +    }
  10.418 +
  10.419 +    /**
  10.420 +     * Returns an array of all the listeners which have been associated
  10.421 +     * with the named property.
  10.422 +     *
  10.423 +     * @param propertyName  The name of the property being listened to
  10.424 +     * @return all the <code>VetoableChangeListeners</code> associated with
  10.425 +     *         the named property.  If no such listeners have been added,
  10.426 +     *         or if <code>propertyName</code> is null, an empty array is
  10.427 +     *         returned.
  10.428 +     */
  10.429 +    public final VetoableChangeListener[] getVetoableChangeListeners(String propertyName) {
  10.430 +        return vcs.getVetoableChangeListeners(propertyName);
  10.431 +    }
  10.432 +
  10.433 +    /**
  10.434 +     * Report a vetoable property update to any registered listeners.  If
  10.435 +     * anyone vetos the change, then fire a new event reverting everyone to
  10.436 +     * the old value and then rethrow the PropertyVetoException.
  10.437 +     * <p>
  10.438 +     * No event is fired if old and new are equal and non-null.
  10.439 +     *
  10.440 +     * @param propertyName  The programmatic name of the property
  10.441 +     *                      that is about to change..
  10.442 +     * @param oldValue  The old value of the property.
  10.443 +     * @param newValue  The new value of the property.
  10.444 +     * @exception PropertyVetoException if the recipient wishes the property
  10.445 +     *              change to be rolled back.
  10.446 +     */
  10.447 +    protected final void fireVetoableChange(String propertyName,
  10.448 +                                            Object oldValue, Object newValue)
  10.449 +                                            throws PropertyVetoException {
  10.450 +         vcs.fireVetoableChange(propertyName, oldValue, newValue);
  10.451 +    }
  10.452 +
  10.453 +    /**
  10.454 +     * Fire a vetoable property update to any registered listeners.  If
  10.455 +     * anyone vetos the change, then fire a new event reverting everyone to
  10.456 +     * the old value and then rethrow the PropertyVetoException.
  10.457 +     * <p>
  10.458 +     * No event is fired if old and new are equal and non-null.
  10.459 +     *
  10.460 +     * @param evt  The PropertyChangeEvent to be fired.
  10.461 +     * @exception PropertyVetoException if the recipient wishes the property
  10.462 +     *              change to be rolled back.
  10.463 +     */
  10.464 +    protected final void fireVetoableChange(PropertyChangeEvent evt)
  10.465 +                    throws PropertyVetoException {
  10.466 +        vcs.fireVetoableChange(evt);
  10.467 +    }
  10.468 +
  10.469 +    /**
  10.470 +     * @inheritDoc
  10.471 +     */
  10.472 +    public Object clone() throws CloneNotSupportedException {
  10.473 +        AbstractBean result = (AbstractBean) super.clone();
  10.474 +        result.pcs = new PropertyChangeSupport(result);
  10.475 +        result.vcs = new VetoableChangeSupport(result);
  10.476 +        return result;
  10.477 +    }
  10.478 +}
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/BezierControlPoint.java	Wed Apr 29 00:27:46 2009 -0700
    11.3 @@ -0,0 +1,265 @@
    11.4 +/*
    11.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    11.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    11.7 + *
    11.8 + * This code is free software; you can redistribute it and/or modify it
    11.9 + * under the terms of the GNU General Public License version 2 only, as
   11.10 + * published by the Free Software Foundation.  Sun designates this
   11.11 + * particular file as subject to the "Classpath" exception as provided
   11.12 + * by Sun in the LICENSE file that accompanied this code.
   11.13 + *
   11.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   11.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   11.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   11.17 + * version 2 for more details (a copy is included in the LICENSE file that
   11.18 + * accompanied this code).
   11.19 + *
   11.20 + * You should have received a copy of the GNU General Public License version
   11.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   11.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   11.23 + *
   11.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   11.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   11.26 + * have any questions.
   11.27 + */
   11.28 +package org.jdesktop.swingx.designer;
   11.29 +
   11.30 +import java.awt.BasicStroke;
   11.31 +import java.awt.Graphics2D;
   11.32 +import java.awt.Shape;
   11.33 +import java.awt.geom.Ellipse2D;
   11.34 +import java.awt.geom.GeneralPath;
   11.35 +import java.awt.geom.Line2D;
   11.36 +import java.awt.geom.Point2D;
   11.37 +import java.awt.geom.Rectangle2D;
   11.38 +import java.beans.PropertyChangeEvent;
   11.39 +import java.beans.PropertyChangeListener;
   11.40 +import java.util.ArrayList;
   11.41 +import java.util.Collections;
   11.42 +import java.util.List;
   11.43 +
   11.44 +/**
   11.45 + * BezierControlPoint
   11.46 + *
   11.47 + * @author Created by Jasper Potts (May 29, 2007)
   11.48 + */
   11.49 +public class BezierControlPoint extends ControlPoint {
   11.50 +    private HandleControlPoint cp1 = new HandleControlPoint();
   11.51 +    private HandleControlPoint cp2 = new HandleControlPoint();
   11.52 +    private transient boolean makingChange = false;
   11.53 +    private transient PropertyChangeListener cpListener = new PropertyChangeListener() {
   11.54 +        public void propertyChange(PropertyChangeEvent evt) {
   11.55 +//            if (!makingChange) {
   11.56 +//                makingChange = true;
   11.57 +//                if (evt.getSource() == cp1) {
   11.58 +//                    double angle = Math.tan((cp1.getY() - getY())/(cp1.getX() - getX()));
   11.59 +//                    double cp2len = Math.sqrt(
   11.60 +//                            Math.pow(cp2.getX() - getX(),2) +
   11.61 +//                            Math.pow(cp2.getY() - getY(),2)
   11.62 +//                    );
   11.63 +//                    double offsetX = cp2len * Math.sin(angle);
   11.64 +//                    double offsetY = cp2len * Math.cos(angle);
   11.65 +//                    cp2.setPosition(getX() - offsetX, getY() - offsetY);
   11.66 +//                } else {
   11.67 +//                    double angle = Math.tan((cp2.getY() - getY())/(cp2.getX() - getX()));
   11.68 +//                    double cp1len = Math.sqrt(
   11.69 +//                            Math.pow(cp1.getX() - getX(),2) +
   11.70 +//                            Math.pow(cp1.getY() - getY(),2)
   11.71 +//                    );
   11.72 +//                    double offsetX = cp1len * Math.sin(angle);
   11.73 +//                    double offsetY = cp1len * Math.cos(angle);
   11.74 +//                    cp1.setPosition(getX() - offsetX, getY() - offsetY);
   11.75 +//                }
   11.76 +////                if (evt.getSource() == cp1) {
   11.77 +////                    double offsetX = cp1.getX() - getX();
   11.78 +////                    double offsetY = cp1.getY() - getY();
   11.79 +////                    cp2.setPosition(getX() - offsetX, getY() - offsetY);
   11.80 +////                } else {
   11.81 +////                    double offsetX = cp2.getX() - getX();
   11.82 +////                    double offsetY = cp2.getY() - getY();
   11.83 +////                    cp1.setPosition(getX() - offsetX, getY() - offsetY);
   11.84 +////                }
   11.85 +//                makingChange = false;
   11.86 +//                firePropertyChange("cp1", null, cp1);
   11.87 +//                firePropertyChange("cp2", null, cp1);
   11.88 +//            }
   11.89 +            firePropertyChange("shape",null,getShape());
   11.90 +        }
   11.91 +    };
   11.92 +
   11.93 +    public BezierControlPoint() {
   11.94 +        cp1.addPropertyChangeListener(cpListener);
   11.95 +        cp2.addPropertyChangeListener(cpListener);
   11.96 +    }
   11.97 +
   11.98 +    public BezierControlPoint(double x, double y) {
   11.99 +        super(x, y);
  11.100 +        cp1.addPropertyChangeListener(cpListener);
  11.101 +        cp2.addPropertyChangeListener(cpListener);
  11.102 +        cp1.setPosition(x, y);
  11.103 +        cp2.setPosition(x, y);
  11.104 +    }
  11.105 +
  11.106 +    public boolean isSharpCorner() {
  11.107 +        return
  11.108 +                (cp1.getX() == x.getValue()) &&
  11.109 +                        (cp1.getY() == y.getValue()) &&
  11.110 +                        (cp2.getX() == x.getValue()) &&
  11.111 +                        (cp2.getY() == y.getValue());
  11.112 +    }
  11.113 +
  11.114 +    public void flip(int width, int height){
  11.115 +        makingChange = true;
  11.116 +        if (width > 0){
  11.117 +            x.setValue(width - x.getValue());
  11.118 +            cp1.x.setValue(width - cp1.x.getValue());
  11.119 +            cp2.x.setValue(width - cp2.x.getValue());
  11.120 +        }
  11.121 +        if (height > 0){
  11.122 +            y.setValue(height - y.getValue());
  11.123 +            cp1.y.setValue(height - cp1.y.getValue());
  11.124 +            cp2.y.setValue(height - cp2.y.getValue());
  11.125 +        }
  11.126 +        makingChange = false;
  11.127 +    }
  11.128 +
  11.129 +    public void convertToSharpCorner() {
  11.130 +        cp1.setPosition(x.getValue(), y.getValue());
  11.131 +        cp2.setPosition(x.getValue(), y.getValue());
  11.132 +    }
  11.133 +
  11.134 +    public List<ControlPoint> getControlPoints() {
  11.135 +        if (isSharpCorner()) {
  11.136 +            return Collections.emptyList();
  11.137 +        } else {
  11.138 +            List<ControlPoint> points = new ArrayList<ControlPoint>();
  11.139 +            points.add(cp1);
  11.140 +            points.add(cp2);
  11.141 +            return points;
  11.142 +        }
  11.143 +    }
  11.144 +
  11.145 +    public HandleControlPoint getCp1() {
  11.146 +        return cp1;
  11.147 +    }
  11.148 +
  11.149 +    public HandleControlPoint getCp2() {
  11.150 +        return cp2;
  11.151 +    }
  11.152 +
  11.153 +    public void paintControls(Graphics2D g2, double pixelSize, boolean paintControlLines) {
  11.154 +        g2.setStroke(new BasicStroke((float) pixelSize));
  11.155 +        // paint control line
  11.156 +        g2.setColor(GraphicsHelper.BEZIER_CONTROL_LINE);
  11.157 +        g2.draw(new Line2D.Double(cp1.getX(), cp1.getY(), getX(), getY()));
  11.158 +        g2.draw(new Line2D.Double(getX(), getY(), cp2.getX(), cp2.getY()));
  11.159 +        // paint this control point
  11.160 +        Shape s;
  11.161 +        if (isSharpCorner()) {
  11.162 +            double size = pixelSize * 4d;
  11.163 +            GeneralPath path = new GeneralPath();
  11.164 +            path.moveTo(getX() - size, getY());
  11.165 +            path.lineTo(getX(), getY() + size);
  11.166 +            path.lineTo(getX() + size, getY());
  11.167 +            path.lineTo(getX(), getY() - size);
  11.168 +            path.closePath();
  11.169 +            s = path;
  11.170 +        } else {
  11.171 +            double size = pixelSize * 3d;
  11.172 +            s = new Ellipse2D.Double(getX() - size, getY() - size,
  11.173 +                    size * 2, size * 2);
  11.174 +        }
  11.175 +        g2.setColor(GraphicsHelper.BEZIER_CONTROL_POINT_FILL);
  11.176 +        g2.fill(s);
  11.177 +        g2.setColor(GraphicsHelper.BEZIER_CONTROL_POINT_LINE);
  11.178 +        g2.draw(s);
  11.179 +        // paint child control points
  11.180 +        if (!isSharpCorner()) {
  11.181 +            cp1.paintControls(g2, pixelSize, true);
  11.182 +            cp2.paintControls(g2, pixelSize, true);
  11.183 +        }
  11.184 +    }
  11.185 +
  11.186 +
  11.187 +    public void move(double moveX, double moveY, boolean snapPixels) {
  11.188 +        makingChange = true;
  11.189 +        super.move(moveX, moveY, snapPixels);
  11.190 +        cp1.move(moveX, moveY, snapPixels);
  11.191 +        cp2.move(moveX, moveY, snapPixels);
  11.192 +        makingChange = false;
  11.193 +    }
  11.194 +
  11.195 +    public double getCp1X() {
  11.196 +        return cp1.getX();
  11.197 +    }
  11.198 +
  11.199 +    public void setCp1X(double v) {
  11.200 +        cp1.setX(v);
  11.201 +    }
  11.202 +
  11.203 +    public double getCp1Y() {
  11.204 +        return cp1.getY();
  11.205 +    }
  11.206 +
  11.207 +    public void setCp1Y(double v) {
  11.208 +        cp1.setY(v);
  11.209 +    }
  11.210 +
  11.211 +    public double getCp2X() {
  11.212 +        return cp2.getX();
  11.213 +    }
  11.214 +
  11.215 +    public void setCp2X(double v) {
  11.216 +        cp2.setX(v);
  11.217 +    }
  11.218 +
  11.219 +    public double getCp2Y() {
  11.220 +        return cp2.getY();
  11.221 +    }
  11.222 +
  11.223 +    public void setCp2Y(double v) {
  11.224 +        cp2.setY(v);
  11.225 +    }
  11.226 +
  11.227 +    // =================================================================================================================
  11.228 +    // Bezier handle control point
  11.229 +
  11.230 +    public class HandleControlPoint extends ControlPoint {
  11.231 +
  11.232 +        public void paintControls(Graphics2D g2, double pixelSize, boolean paintControlLines) {
  11.233 +            if (!isSharp()){
  11.234 +                double size = pixelSize * 3d;
  11.235 +                Shape s = new Ellipse2D.Double(getX() - size, getY() - size,
  11.236 +                        size * 2, size * 2);
  11.237 +                g2.setColor(GraphicsHelper.BEZIER_CONTROL_POINT_FILL);
  11.238 +                g2.fill(s);
  11.239 +                g2.setColor(GraphicsHelper.BEZIER_CONTROL_POINT_LINE);
  11.240 +                g2.draw(s);
  11.241 +                g2.draw(new Rectangle2D.Double(getX() - (pixelSize / 2), getY() - (pixelSize / 2), pixelSize, pixelSize));
  11.242 +            }
  11.243 +        }
  11.244 +
  11.245 +        public boolean isHit(Point2D p, double pixelSize) {
  11.246 +            return !isSharp() && super.isHit(p, pixelSize);
  11.247 +        }
  11.248 +
  11.249 +        /**
  11.250 +         * Is the line controled by this handle in or out of the parent BezierControlPoint sharp.
  11.251 +         *
  11.252 +         * @return <code>true</code> If this is the exact same point as the parent BezierControlPoint.
  11.253 +         */
  11.254 +        public boolean isSharp(){
  11.255 +            return x.getValue() == BezierControlPoint.this.x.getValue() &&
  11.256 +                y.getValue() == BezierControlPoint.this.y.getValue();
  11.257 +        }
  11.258 +
  11.259 +        public void convertToSharp(){
  11.260 +            setPosition(BezierControlPoint.this.x.getValue(),BezierControlPoint.this.y.getValue());
  11.261 +        }
  11.262 +
  11.263 +        public BezierControlPoint getParentControlPoint(){
  11.264 +            return BezierControlPoint.this;
  11.265 +        }
  11.266 +    }
  11.267 +
  11.268 +}
    12.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/BlendingMode.java	Wed Apr 29 00:27:46 2009 -0700
    12.3 @@ -0,0 +1,100 @@
    12.4 +/*
    12.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    12.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    12.7 + *
    12.8 + * This code is free software; you can redistribute it and/or modify it
    12.9 + * under the terms of the GNU General Public License version 2 only, as
   12.10 + * published by the Free Software Foundation.  Sun designates this
   12.11 + * particular file as subject to the "Classpath" exception as provided
   12.12 + * by Sun in the LICENSE file that accompanied this code.
   12.13 + *
   12.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   12.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   12.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   12.17 + * version 2 for more details (a copy is included in the LICENSE file that
   12.18 + * accompanied this code).
   12.19 + *
   12.20 + * You should have received a copy of the GNU General Public License version
   12.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   12.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   12.23 + *
   12.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   12.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   12.26 + * have any questions.
   12.27 + */
   12.28 +package org.jdesktop.swingx.designer;
   12.29 +
   12.30 +
   12.31 +/**
   12.32 + * BlendingMode - Enum of composite blending modes, setup to match photoshop as closely as possible
   12.33 + *
   12.34 + * @author Created by Jasper Potts (May 31, 2007)
   12.35 + */
   12.36 +public enum BlendingMode {
   12.37 +    NORMAL,
   12.38 +    // DISSOLVE, missing
   12.39 +    // -----------------------------
   12.40 +    DARKEN,
   12.41 +    MULTIPLY,
   12.42 +    COLOR_BURN,
   12.43 +    LINEAR_BURN, // (SUBTRACT)
   12.44 +    // -----------------------------
   12.45 +    LIGHTEN,
   12.46 +    SCREEN,
   12.47 +    COLOR_DODGE,
   12.48 +    LINEAR_DODGE, // (ADD)
   12.49 +    // -----------------------------
   12.50 +    OVERLAY,
   12.51 +    SOFT_LIGHT,
   12.52 +    HARD_LIGHT,
   12.53 +    VIVID_LIGHT, // (HEAT) is close
   12.54 +    LINEAR_LIGHT, // (GLOW) is close
   12.55 +    //PIN_LIGHT, missing
   12.56 +    //HARD_MIX, missing
   12.57 +    // -----------------------------
   12.58 +    DIFFERENCE,
   12.59 +    EXCLUSION,
   12.60 +    // -----------------------------
   12.61 +    HUE, // nowhere close
   12.62 +    SATURATION,
   12.63 +    COLOR,
   12.64 +    LUMINOSITY, // close but not exact
   12.65 +    //LIGHTER_COLOR, missing
   12.66 +    //DARKER_COLOR, missing
   12.67 +    ;
   12.68 +
   12.69 +
   12.70 +    // =================================================================================================================
   12.71 +    // Helper methods for creating Blending Mode Combo Box
   12.72 +
   12.73 +    public static final Object[] BLENDING_MODES = new Object[]{
   12.74 +            BlendingMode.NORMAL,
   12.75 +            // DISSOLVE, missing
   12.76 +            "-",
   12.77 +            BlendingMode.DARKEN,
   12.78 +            BlendingMode.MULTIPLY,
   12.79 +            BlendingMode.COLOR_BURN,
   12.80 +            BlendingMode.LINEAR_BURN, // (SUBTRACT)
   12.81 +            "-",
   12.82 +            BlendingMode.LIGHTEN,
   12.83 +            BlendingMode.SCREEN,
   12.84 +            BlendingMode.COLOR_DODGE,
   12.85 +            BlendingMode.LINEAR_DODGE, // (ADD)
   12.86 +            "-",
   12.87 +            BlendingMode.OVERLAY,
   12.88 +            BlendingMode.SOFT_LIGHT,
   12.89 +            BlendingMode.HARD_LIGHT,
   12.90 +            BlendingMode.VIVID_LIGHT, // (HEAT) is close
   12.91 +            BlendingMode.LINEAR_LIGHT, // (GLOW) is close
   12.92 +            //PIN_LIGHT, missing
   12.93 +            //HARD_MIX, missing
   12.94 +            "-",
   12.95 +            BlendingMode.DIFFERENCE,
   12.96 +            BlendingMode.EXCLUSION,
   12.97 +            "-",
   12.98 +            BlendingMode.HUE, // nowhere close
   12.99 +            BlendingMode.SATURATION,
  12.100 +            BlendingMode.COLOR,
  12.101 +            BlendingMode.LUMINOSITY, // close but not exact
  12.102 +    };
  12.103 +}
    13.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/Canvas.java	Wed Apr 29 00:27:46 2009 -0700
    13.3 @@ -0,0 +1,308 @@
    13.4 +/*
    13.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    13.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    13.7 + *
    13.8 + * This code is free software; you can redistribute it and/or modify it
    13.9 + * under the terms of the GNU General Public License version 2 only, as
   13.10 + * published by the Free Software Foundation.  Sun designates this
   13.11 + * particular file as subject to the "Classpath" exception as provided
   13.12 + * by Sun in the LICENSE file that accompanied this code.
   13.13 + *
   13.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   13.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   13.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   13.17 + * version 2 for more details (a copy is included in the LICENSE file that
   13.18 + * accompanied this code).
   13.19 + *
   13.20 + * You should have received a copy of the GNU General Public License version
   13.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   13.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   13.23 + *
   13.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   13.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   13.26 + * have any questions.
   13.27 + */
   13.28 +package org.jdesktop.swingx.designer;
   13.29 +
   13.30 +import org.jdesktop.beans.AbstractBean;
   13.31 +import org.jdesktop.swingx.designer.utils.HasResources;
   13.32 +import org.jdesktop.swingx.designer.utils.HasUIDefaults;
   13.33 +import org.jibx.runtime.IUnmarshallingContext;
   13.34 +
   13.35 +import javax.swing.UIDefaults;
   13.36 +import java.awt.AlphaComposite;
   13.37 +import java.awt.Dimension;
   13.38 +import java.awt.Graphics2D;
   13.39 +import java.awt.Insets;
   13.40 +import java.awt.RenderingHints;
   13.41 +import java.awt.image.BufferedImage;
   13.42 +import java.beans.PropertyChangeEvent;
   13.43 +import java.beans.PropertyChangeListener;
   13.44 +import java.io.File;
   13.45 +import java.util.ArrayList;
   13.46 +import java.util.Collection;
   13.47 +import java.util.Collections;
   13.48 +import java.util.Iterator;
   13.49 +import java.util.List;
   13.50 +
   13.51 +/**
   13.52 + * ComponentRegion
   13.53 + *
   13.54 + * @author Created by Jasper Potts (May 22, 2007)
   13.55 + */
   13.56 +public class Canvas extends AbstractBean implements LayerContainer, HasUIDefaults, HasResources {
   13.57 +    private Dimension size;
   13.58 +    /** list of all layers in the canvas, the first layer is painted on top */
   13.59 +    private List<Layer> layers;
   13.60 +    private int nextLayerNameIndex = 1;
   13.61 +    private BufferedImage buffer;
   13.62 +    private boolean isValid = false;
   13.63 +    private Insets stretchingInsets = null;
   13.64 +    private Layer workingLayer = null;
   13.65 +    private PropertyChangeListener layersPropertyChangeListener;
   13.66 +    private UIDefaults canvasUIDefaults = null;
   13.67 +    private transient File resourcesDir;
   13.68 +    private transient File imagesDir;
   13.69 +    private transient File templatesDir;
   13.70 +
   13.71 +    // =================================================================================================================
   13.72 +    // Constructor
   13.73 +
   13.74 +    /** Private constructor for JIBX */
   13.75 +    protected Canvas() {
   13.76 +        layersPropertyChangeListener = new PropertyChangeListener() {
   13.77 +            public void propertyChange(PropertyChangeEvent evt) {
   13.78 +                isValid = false;
   13.79 +                // pass on layer change
   13.80 +                int index = layers.indexOf((Layer) evt.getSource());
   13.81 +                if (index != -1) {
   13.82 +                    firePropertyChange("layers[" + index + "]." + evt.getPropertyName(), evt.getOldValue(),
   13.83 +                            evt.getNewValue());
   13.84 +                }
   13.85 +            }
   13.86 +        };
   13.87 +    }
   13.88 +
   13.89 +    public Canvas(int width, int height) {
   13.90 +        this();
   13.91 +        stretchingInsets = new Insets(1, 1, 1, 1);
   13.92 +        layers = new ArrayList<Layer>();
   13.93 +        setSize(new Dimension(width, height));
   13.94 +        addLayer(new Layer());
   13.95 +    }
   13.96 +
   13.97 +    // =================================================================================================================
   13.98 +    // JIBX Methods
   13.99 +
  13.100 +    /**
  13.101 +     * Called by JIBX before all fields have been set
  13.102 +     *
  13.103 +     * @param context The JIBX Unmarshalling Context
  13.104 +     */
  13.105 +    private void preSet(IUnmarshallingContext context) {
  13.106 +        canvasUIDefaults = (UIDefaults) context.getUserContext();
  13.107 +    }
  13.108 +
  13.109 +    // =================================================================================================================
  13.110 +    // Bean Methods
  13.111 +
  13.112 +    /**
  13.113 +     * Get the UIDefaults for this canvas. The UIDefaults is used to store default pallet of colors, fonts etc.
  13.114 +     *
  13.115 +     * @return Canvas UIDefaults
  13.116 +     */
  13.117 +    public UIDefaults getUiDefaults() {
  13.118 +        return canvasUIDefaults;
  13.119 +    }
  13.120 +
  13.121 +    /**
  13.122 +     * Set the UIDefaults for this canvas. The UIDefaults is used to store default pallet of colors, fonts etc.
  13.123 +     *
  13.124 +     * @param canvasUIDefaults Canvas UIDefaults
  13.125 +     */
  13.126 +    public void setUiDefaults(UIDefaults canvasUIDefaults) {
  13.127 +        this.canvasUIDefaults = canvasUIDefaults;
  13.128 +    }
  13.129 +
  13.130 +    /**
  13.131 +     * Get the current working layer, is is the layer that new shapes will be drawn into
  13.132 +     *
  13.133 +     * @return The current working layer, may be null if there is no working layer
  13.134 +     */
  13.135 +    public Layer getWorkingLayer() {
  13.136 +        return workingLayer;
  13.137 +    }
  13.138 +
  13.139 +    /**
  13.140 +     * Set the current working layer, is is the layer that new shapes will be drawn into
  13.141 +     *
  13.142 +     * @param workingLayer the new working layer, must be a child of this canvas
  13.143 +     */
  13.144 +    public void setWorkingLayer(Layer workingLayer) {
  13.145 +        Layer old = getWorkingLayer();
  13.146 +        this.workingLayer = workingLayer;
  13.147 +        firePropertyChange("workingLayer", old, getWorkingLayer());
  13.148 +    }
  13.149 +
  13.150 +    public int getNextLayerNameIndex() {
  13.151 +        return nextLayerNameIndex++;
  13.152 +    }
  13.153 +
  13.154 +    public Dimension getSize() {
  13.155 +        return size;
  13.156 +    }
  13.157 +
  13.158 +    public void setSize(Dimension size) {
  13.159 +        Dimension old = getSize();
  13.160 +        this.size = size;
  13.161 +        buffer = new BufferedImage(this.size.width, this.size.height, BufferedImage.TYPE_INT_ARGB);
  13.162 +        isValid = false;
  13.163 +        firePropertyChange("size", old, getSize());
  13.164 +    }
  13.165 +
  13.166 +
  13.167 +    public Insets getStretchingInsets() {
  13.168 +        return stretchingInsets;
  13.169 +    }
  13.170 +
  13.171 +    public void setStretchingInsets(Insets stretchingInsets) {
  13.172 +        Insets old = getStretchingInsets();
  13.173 +        this.stretchingInsets = stretchingInsets;
  13.174 +        firePropertyChange("stretchingInsets", old, getStretchingInsets());
  13.175 +    }
  13.176 +
  13.177 +    public BufferedImage getRenderedImage() {
  13.178 +        if (!isValid) {
  13.179 +            Graphics2D g2 = buffer.createGraphics();
  13.180 +            // clear
  13.181 +            g2.setComposite(AlphaComposite.Clear);
  13.182 +            g2.fillRect(0, 0, buffer.getWidth(), buffer.getHeight());
  13.183 +            // paint
  13.184 +            g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
  13.185 +            g2.setComposite(AlphaComposite.SrcOver);
  13.186 +            for (int i = layers.size() - 1; i >= 0; i--) {
  13.187 +                layers.get(i).paint(g2, 1);
  13.188 +            }
  13.189 +            g2.dispose();
  13.190 +        }
  13.191 +        return buffer;
  13.192 +    }
  13.193 +
  13.194 +    /**
  13.195 +     * @return true if this Canvas has not been edited.
  13.196 +     *         <p/>
  13.197 +     *         TODO Currently this is not a bound property, but should be. That is, when the Canvas becomes edited
  13.198 +     *         (usually due to the Layer having a shape added to it), then a property change event should be fired.
  13.199 +     */
  13.200 +    public boolean isBlank() {
  13.201 +        return layers.size() == 0 || (layers.size() == 1 && layers.get(0).isEmpty());
  13.202 +    }
  13.203 +
  13.204 +    public File getResourcesDir() {
  13.205 +        return resourcesDir;
  13.206 +    }
  13.207 +
  13.208 +    public void setResourcesDir(File resourcesDir) {
  13.209 +        File old = getResourcesDir();
  13.210 +        this.resourcesDir = resourcesDir;
  13.211 +        firePropertyChange("resourcesDir", old, getResourcesDir());
  13.212 +    }
  13.213 +
  13.214 +    public File getImagesDir() {
  13.215 +        return imagesDir;
  13.216 +    }
  13.217 +
  13.218 +    public void setImagesDir(File imagesDir) {
  13.219 +        File old = getImagesDir();
  13.220 +        this.imagesDir = imagesDir;
  13.221 +        firePropertyChange("imagesDir", old, getImagesDir());
  13.222 +    }
  13.223 +
  13.224 +    public File getTemplatesDir() {
  13.225 +        return templatesDir;
  13.226 +    }
  13.227 +
  13.228 +    public void setTemplatesDir(File templatesDir) {
  13.229 +        File old = getTemplatesDir();
  13.230 +        this.templatesDir = templatesDir;
  13.231 +        firePropertyChange("templatesDir", old, getTemplatesDir());
  13.232 +    }
  13.233 +
  13.234 +    // =================================================================================================================
  13.235 +    // LayerContainer Methods
  13.236 +
  13.237 +    public LayerContainer getParent() {
  13.238 +        // we are root so null
  13.239 +        return null;
  13.240 +    }
  13.241 +
  13.242 +    public void addLayerToBottom(Layer layer) {
  13.243 +        layers.add(layer);
  13.244 +        layer.setParent(this);
  13.245 +        layer.addPropertyChangeListener(layersPropertyChangeListener);
  13.246 +        // no single layer changes so fire all changed event
  13.247 +        firePropertyChange("layers", null, layers);
  13.248 +    }
  13.249 +
  13.250 +    public void addLayer(int i, Layer layer) {
  13.251 +        layers.add(i, layer);
  13.252 +        layer.setParent(this);
  13.253 +        layer.addPropertyChangeListener(layersPropertyChangeListener);
  13.254 +        // no single layer changes so fire all changed event
  13.255 +        firePropertyChange("layers", null, layers);
  13.256 +    }
  13.257 +
  13.258 +    public void addLayer(Layer layer) {
  13.259 +        layers.add(0, layer);
  13.260 +        layer.setParent(this);
  13.261 +        layer.addPropertyChangeListener(layersPropertyChangeListener);
  13.262 +        // no single layer changes so fire all changed event
  13.263 +        firePropertyChange("layers", null, layers);
  13.264 +    }
  13.265 +
  13.266 +    public Layer getLayer(int index) {
  13.267 +        return layers.get(index);
  13.268 +    }
  13.269 +
  13.270 +    public int getLayerCount() {
  13.271 +        return layers.size();
  13.272 +    }
  13.273 +
  13.274 +    public Iterator<Layer> getLayerIterator() {
  13.275 +        return Collections.unmodifiableList(layers).iterator();
  13.276 +    }
  13.277 +
  13.278 +    public Collection<Layer> getLayers() {
  13.279 +        return Collections.unmodifiableList(layers);
  13.280 +    }
  13.281 +
  13.282 +    public int indexOfLayer(Layer layer) {
  13.283 +        return layers.indexOf(layer);
  13.284 +    }
  13.285 +
  13.286 +    public void removeLayer(Layer layer) {
  13.287 +        int index = layers.indexOf(layer);
  13.288 +        if (index != -1) {
  13.289 +            layers.remove(layer);
  13.290 +            layer.removePropertyChangeListener(layersPropertyChangeListener);
  13.291 +            fireIndexedPropertyChange("layers", index, layer, null);
  13.292 +        }
  13.293 +    }
  13.294 +
  13.295 +    public Dimension getRootSize() {
  13.296 +        return getSize();
  13.297 +    }
  13.298 +
  13.299 +    // =================================================================================================================
  13.300 +    // JIBX Helper Methods
  13.301 +
  13.302 +    /** Called by JIBX after "layers" has been filled so we can set parents and listeners */
  13.303 +    private void setupLayers() {
  13.304 +        for (Layer layer : layers) {
  13.305 +            layer.setParent(this);
  13.306 +            layer.addPropertyChangeListener(layersPropertyChangeListener);
  13.307 +        }
  13.308 +        // no single layer changes so fire all changed event
  13.309 +        firePropertyChange("layers", null, layers);
  13.310 +    }
  13.311 +}
    14.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/ControlPoint.java	Wed Apr 29 00:27:46 2009 -0700
    14.3 @@ -0,0 +1,157 @@
    14.4 +/*
    14.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    14.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    14.7 + *
    14.8 + * This code is free software; you can redistribute it and/or modify it
    14.9 + * under the terms of the GNU General Public License version 2 only, as
   14.10 + * published by the Free Software Foundation.  Sun designates this
   14.11 + * particular file as subject to the "Classpath" exception as provided
   14.12 + * by Sun in the LICENSE file that accompanied this code.
   14.13 + *
   14.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   14.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   14.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   14.17 + * version 2 for more details (a copy is included in the LICENSE file that
   14.18 + * accompanied this code).
   14.19 + *
   14.20 + * You should have received a copy of the GNU General Public License version
   14.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   14.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   14.23 + *
   14.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   14.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   14.26 + * have any questions.
   14.27 + */
   14.28 +package org.jdesktop.swingx.designer;
   14.29 +
   14.30 +import java.awt.BasicStroke;
   14.31 +import java.awt.Color;
   14.32 +import java.awt.Graphics2D;
   14.33 +import java.awt.Shape;
   14.34 +import java.awt.geom.Point2D;
   14.35 +import java.awt.geom.Rectangle2D;
   14.36 +import java.beans.PropertyChangeEvent;
   14.37 +import java.beans.PropertyChangeListener;
   14.38 +import java.util.Collections;
   14.39 +import java.util.List;
   14.40 +
   14.41 +/**
   14.42 + * ControlPoint
   14.43 + *
   14.44 + * @author Created by Jasper Potts (May 24, 2007)
   14.45 + */
   14.46 +public class ControlPoint extends SimpleShape {
   14.47 +    protected Color fillColor;
   14.48 +    protected Color lineColor;
   14.49 +    protected DoubleBean x, y;
   14.50 +
   14.51 +    public ControlPoint() {
   14.52 +        this(new DoubleBean(), new DoubleBean());
   14.53 +    }
   14.54 +
   14.55 +    public ControlPoint(Color fillColor, Color lineColor) {
   14.56 +        this(new DoubleBean(), new DoubleBean(), fillColor, lineColor);
   14.57 +    }
   14.58 +
   14.59 +    public ControlPoint(double x, double y) {
   14.60 +        this(new DoubleBean(x), new DoubleBean(y));
   14.61 +    }
   14.62 +
   14.63 +    public ControlPoint(DoubleBean x, DoubleBean y) {
   14.64 +        this(x, y, GraphicsHelper.CONTROL_POINT_FILL, GraphicsHelper.CONTROL_POINT_LINE);
   14.65 +    }
   14.66 +
   14.67 +    public ControlPoint(DoubleBean x, DoubleBean y, Color fillColor, Color lineColor) {
   14.68 +        this.x = x;
   14.69 +        this.y = y;
   14.70 +        this.fillColor = fillColor;
   14.71 +        this.lineColor = lineColor;
   14.72 +        x.addPropertyChangeListener(new PropertyChangeListener() {
   14.73 +            public void propertyChange(PropertyChangeEvent evt) {
   14.74 +                firePropertyChange("position",
   14.75 +                        new Point2D.Double((Double) evt.getOldValue(), getY()),
   14.76 +                        getPosition());
   14.77 +            }
   14.78 +        });
   14.79 +        y.addPropertyChangeListener(new PropertyChangeListener() {
   14.80 +            public void propertyChange(PropertyChangeEvent evt) {
   14.81 +                firePropertyChange("position",
   14.82 +                        new Point2D.Double(getX(), (Double) evt.getOldValue()),
   14.83 +                        getPosition());
   14.84 +            }
   14.85 +        });
   14.86 +    }
   14.87 +
   14.88 +    public double getX() {
   14.89 +        return x.getValue();
   14.90 +    }
   14.91 +
   14.92 +    public double getY() {
   14.93 +        return y.getValue();
   14.94 +    }
   14.95 +
   14.96 +    public void setX(double x) {
   14.97 +        this.x.setValue(x);
   14.98 +    }
   14.99 +
  14.100 +    public void setY(double y) {
  14.101 +        this.y.setValue(y);
  14.102 +    }
  14.103 +
  14.104 +    public void setPosition(Point2D position) {
  14.105 +        x.setValue(position.getX());
  14.106 +        y.setValue(position.getY());
  14.107 +    }
  14.108 +
  14.109 +    public void setPosition(double x, double y) {
  14.110 +        setPosition(new Point2D.Double(x, y));
  14.111 +    }
  14.112 +
  14.113 +    public Point2D getPosition() {
  14.114 +        return new Point2D.Double(getX(), getY());
  14.115 +    }
  14.116 +
  14.117 +    public Rectangle2D getBounds(double pixelSize) {
  14.118 +        double size = pixelSize * 4d;
  14.119 +        return new Rectangle2D.Double(getX() - size, getY() - size,
  14.120 +                size * 2, size * 2);
  14.121 +    }
  14.122 +
  14.123 +    public boolean isHit(Point2D p, double pixelSize) {
  14.124 +        return getBounds(pixelSize).contains(p);
  14.125 +    }
  14.126 +
  14.127 +
  14.128 +    public Shape getShape() {
  14.129 +        return getBounds(0);
  14.130 +    }
  14.131 +
  14.132 +    public void paint(Graphics2D g2, double pixelSize) {
  14.133 +    }
  14.134 +
  14.135 +    public void paintControls(Graphics2D g2, double pixelSize, boolean paintControlLines) {
  14.136 +        g2.setStroke(new BasicStroke((float) pixelSize));
  14.137 +        Shape s = getBounds(pixelSize);
  14.138 +        g2.setColor(fillColor);
  14.139 +        g2.fill(s);
  14.140 +        g2.setColor(lineColor);
  14.141 +        g2.draw(s);
  14.142 +    }
  14.143 +
  14.144 +    public List<ControlPoint> getControlPoints() {
  14.145 +        return Collections.emptyList();
  14.146 +    }
  14.147 +
  14.148 +
  14.149 +    public void move(double moveX, double moveY, boolean snapPixels) {
  14.150 +        if (snapPixels) {
  14.151 +            setPosition(
  14.152 +                    Math.round(x.getValue() + moveX),
  14.153 +                    Math.round(y.getValue() + moveY));
  14.154 +        } else {
  14.155 +            setPosition(x.getValue() + moveX, y.getValue() + moveY);
  14.156 +        }
  14.157 +    }
  14.158 +
  14.159 +
  14.160 +}
    15.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/Designer.jibx.xml	Wed Apr 29 00:27:46 2009 -0700
    15.3 @@ -0,0 +1,173 @@
    15.4 +<?xml version="1.0" encoding="UTF-8"?>
    15.5 +
    15.6 +<!--
    15.7 + Copyright 1998-2004 Sun Microsystems, Inc.  All Rights Reserved.
    15.8 + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    15.9 +
   15.10 + This code is free software; you can redistribute it and/or modify it
   15.11 + under the terms of the GNU General Public License version 2 only, as
   15.12 + published by the Free Software Foundation.  Sun designates this
   15.13 + particular file as subject to the "Classpath" exception as provided
   15.14 + by Sun in the LICENSE file that accompanied this code.
   15.15 +
   15.16 + This code is distributed in the hope that it will be useful, but WITHOUT
   15.17 + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   15.18 + FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   15.19 + version 2 for more details (a copy is included in the LICENSE file that
   15.20 + accompanied this code).
   15.21 +
   15.22 + You should have received a copy of the GNU General Public License version
   15.23 + 2 along with this work; if not, write to the Free Software Foundation,
   15.24 + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   15.25 +
   15.26 + Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   15.27 + CA 95054 USA or visit www.sun.com if you need additional information or
   15.28 + have any questions.
   15.29 +-->
   15.30 +
   15.31 +<!DOCTYPE binding SYSTEM "http://jibx.sourceforge.net">
   15.32 +<binding>
   15.33 +    <!-- == PAINTS =========================================================================================== -->
   15.34 +    <mapping class="java.awt.Color"
   15.35 +             marshaller="org.jdesktop.swingx.designer.jibxhelpers.ColorMapper"
   15.36 +             unmarshaller="org.jdesktop.swingx.designer.jibxhelpers.ColorMapper"/>
   15.37 +    <mapping name="matte" class="org.jdesktop.swingx.designer.paint.Matte" post-set="postSet">
   15.38 +        <value name="red" field="red" style="attribute"/>
   15.39 +        <value name="green" field="green" style="attribute"/>
   15.40 +        <value name="blue" field="blue" style="attribute"/>
   15.41 +        <value name="alpha" field="alpha" style="attribute"/>
   15.42 +        <value name="uiDefaultParentName" field="uiDefaultParentName" style="attribute" usage="optional"/>
   15.43 +        <value name="componentPropertyName" field="componentPropertyName" style="attribute" usage="optional"/>
   15.44 +        <value name="hueOffset" field="hueOffset" style="attribute"/>
   15.45 +        <value name="saturationOffset" field="saturationOffset" style="attribute"/>
   15.46 +        <value name="brightnessOffset" field="brightnessOffset" style="attribute"/>
   15.47 +        <value name="alphaOffset" field="alphaOffset" style="attribute"/>
   15.48 +        <value name="uiResource" field="uiResource" style="attribute" usage="optional" default="true"/>
   15.49 +    </mapping>
   15.50 +    <mapping class="org.jdesktop.swingx.designer.paint.AbstractGradient" abstract="true">
   15.51 +        <value name="cycleMethod" field="cycleMethod" style="attribute"/>
   15.52 +        <collection field="stops" set-method="setStops" pre-set="clear" create-type="java.util.ArrayList">
   15.53 +            <structure name="stop" type="org.jdesktop.swingx.designer.paint.GradientStop">
   15.54 +                <value name="position" field="position" style="attribute"/>
   15.55 +                <value name="midpoint" field="midpoint" style="attribute"/>
   15.56 +                <structure field="color" set-method="setColor"/>
   15.57 +            </structure>
   15.58 +        </collection>
   15.59 +    </mapping>
   15.60 +    <mapping name="gradient" class="org.jdesktop.swingx.designer.paint.Gradient"
   15.61 +             extends="org.jdesktop.swingx.designer.paint.AbstractGradient">
   15.62 +        <structure map-as="org.jdesktop.swingx.designer.paint.AbstractGradient"/>
   15.63 +    </mapping>
   15.64 +    <mapping name="radialGradient" class="org.jdesktop.swingx.designer.paint.RadialGradient"
   15.65 +             extends="org.jdesktop.swingx.designer.paint.AbstractGradient">
   15.66 +        <structure map-as="org.jdesktop.swingx.designer.paint.AbstractGradient"/>
   15.67 +    </mapping>
   15.68 +    <!-- == SHAPES =========================================================================================== -->
   15.69 +    <mapping class="org.jdesktop.swingx.designer.SimpleShape" abstract="true">
   15.70 +        <!--protected AffineTransform transform = new AffineTransform();-->
   15.71 +    </mapping>
   15.72 +    <mapping class="org.jdesktop.swingx.designer.PaintedShape" abstract="true"
   15.73 +             extends="org.jdesktop.swingx.designer.SimpleShape">
   15.74 +        <structure map-as="org.jdesktop.swingx.designer.SimpleShape"/>
   15.75 +        <structure field="paint"/>
   15.76 +        <structure name="paintPoints">
   15.77 +            <value name="x1" get-method="getPaintX1" set-method="setPaintX1" style="attribute"/>
   15.78 +            <value name="y1" get-method="getPaintY1" set-method="setPaintY1" style="attribute"/>
   15.79 +            <value name="x2" get-method="getPaintX2" set-method="setPaintX2" style="attribute"/>
   15.80 +            <value name="y2" get-method="getPaintY2" set-method="setPaintY2" style="attribute"/>
   15.81 +        </structure>
   15.82 +    </mapping>
   15.83 +    <mapping name="rectangle" class="org.jdesktop.swingx.designer.RectangleShape"
   15.84 +             extends="org.jdesktop.swingx.designer.PaintedShape">
   15.85 +        <structure map-as="org.jdesktop.swingx.designer.PaintedShape"/>
   15.86 +        <value name="x1" get-method="getX1" set-method="setX1" style="attribute"/>
   15.87 +        <value name="x2" get-method="getX2" set-method="setX2" style="attribute"/>
   15.88 +        <value name="y1" get-method="getY1" set-method="setY1" style="attribute"/>
   15.89 +        <value name="y2" get-method="getY2" set-method="setY2" style="attribute"/>
   15.90 +        <value name="rounding" get-method="getRounding" set-method="setRounding" style="attribute"/>
   15.91 +    </mapping>
   15.92 +    <mapping name="ellipse" class="org.jdesktop.swingx.designer.EllipseShape"
   15.93 +             extends="org.jdesktop.swingx.designer.PaintedShape">
   15.94 +        <structure map-as="org.jdesktop.swingx.designer.PaintedShape"/>
   15.95 +        <value name="x1" get-method="getX1" set-method="setX1" style="attribute"/>
   15.96 +        <value name="x2" get-method="getX2" set-method="setX2" style="attribute"/>
   15.97 +        <value name="y1" get-method="getY1" set-method="setY1" style="attribute"/>
   15.98 +        <value name="y2" get-method="getY2" set-method="setY2" style="attribute"/>
   15.99 +    </mapping>
  15.100 +    <mapping name="path" class="org.jdesktop.swingx.designer.PathShape"
  15.101 +             extends="org.jdesktop.swingx.designer.PaintedShape">
  15.102 +        <structure map-as="org.jdesktop.swingx.designer.PaintedShape"/>
  15.103 +        <collection name="points" get-method="getBezierControlPoints"
  15.104 +                    set-method="setControlPoints" create-type="java.util.ArrayList">
  15.105 +            <structure name="point" type="org.jdesktop.swingx.designer.BezierControlPoint">
  15.106 +                <value name="x" get-method="getX" set-method="setX" style="attribute"/>
  15.107 +                <value name="y" get-method="getY" set-method="setY" style="attribute"/>
  15.108 +                <value name="cp1x" get-method="getCp1X" set-method="setCp1X" style="attribute"/>
  15.109 +                <value name="cp1y" get-method="getCp1Y" set-method="setCp1Y" style="attribute"/>
  15.110 +                <value name="cp2x" get-method="getCp2X" set-method="setCp2X" style="attribute"/>
  15.111 +                <value name="cp2y" get-method="getCp2Y" set-method="setCp2Y" style="attribute"/>
  15.112 +            </structure>
  15.113 +        </collection>
  15.114 +    </mapping>
  15.115 +    <!-- == EFFECTS =========================================================================================== -->
  15.116 +    <mapping class="org.jdesktop.swingx.designer.effects.ShadowEffect" abstract="true">
  15.117 +        <structure field="color"/>
  15.118 +        <value name="blendingMode" field="blendingMode" style="attribute"/>
  15.119 +        <value name="opacity" field="opacity" style="attribute"/>
  15.120 +        <value name="angle" field="angle" style="attribute"/>
  15.121 +        <value name="distance" field="distance" style="attribute"/>
  15.122 +        <value name="spread" field="spread" style="attribute"/>
  15.123 +        <value name="size" field="size" style="attribute"/>
  15.124 +    </mapping>
  15.125 +    <mapping name="dropShadow" class="org.jdesktop.swingx.designer.effects.DropShadowEffect"
  15.126 +             extends="org.jdesktop.swingx.designer.effects.ShadowEffect">
  15.127 +        <structure map-as="org.jdesktop.swingx.designer.effects.ShadowEffect"/>
  15.128 +    </mapping>
  15.129 +    <mapping name="innerShadow" class="org.jdesktop.swingx.designer.effects.InnerShadowEffect"
  15.130 +             extends="org.jdesktop.swingx.designer.effects.ShadowEffect">
  15.131 +        <structure map-as="org.jdesktop.swingx.designer.effects.ShadowEffect"/>
  15.132 +    </mapping>
  15.133 +    <mapping name="innerGlow" class="org.jdesktop.swingx.designer.effects.InnerGlowEffect"
  15.134 +             extends="org.jdesktop.swingx.designer.effects.ShadowEffect">
  15.135 +        <structure map-as="org.jdesktop.swingx.designer.effects.ShadowEffect"/>
  15.136 +    </mapping>
  15.137 +    <mapping name="outerGlow" class="org.jdesktop.swingx.designer.effects.OuterGlowEffect"
  15.138 +             extends="org.jdesktop.swingx.designer.effects.ShadowEffect">
  15.139 +        <structure map-as="org.jdesktop.swingx.designer.effects.ShadowEffect"/>
  15.140 +    </mapping>
  15.141 +    <!-- == TEMPLATE LAYER ================================================================================== -->
  15.142 +    <mapping name="templateLayer" class="org.jdesktop.swingx.designer.TemplateLayer"
  15.143 +             extends="org.jdesktop.swingx.designer.Layer" post-set="postInit">
  15.144 +        <structure map-as="org.jdesktop.swingx.designer.Layer"/>
  15.145 +        <value name="fileName" field="fileName" style="attribute"/>
  15.146 +    </mapping>
  15.147 +    <!-- == LAYER =========================================================================================== -->
  15.148 +    <mapping name="layer" class="org.jdesktop.swingx.designer.Layer"
  15.149 +             extends="org.jdesktop.swingx.designer.SimpleShape" post-set="postInit">
  15.150 +        <structure map-as="org.jdesktop.swingx.designer.SimpleShape"/>
  15.151 +        <value name="name" field="name" style="attribute"/>
  15.152 +        <value name="type" field="type" style="attribute" default="standard"/>
  15.153 +        <value name="opacity" field="opacity"/>
  15.154 +        <value name="fillOpacity" field="fillOpacity"/>
  15.155 +        <value name="blendingMode" field="blendingMode"/>
  15.156 +        <value name="locked" field="locked"/>
  15.157 +        <value name="visible" field="visible"/>
  15.158 +        <structure name="shapes">
  15.159 +            <collection field="shapes" create-type="java.util.ArrayList"/>
  15.160 +        </structure>
  15.161 +        <structure name="effects">
  15.162 +            <collection field="effects" create-type="java.util.ArrayList"/>
  15.163 +        </structure>
  15.164 +    </mapping>
  15.165 +    <!-- == CANVAS =========================================================================================== -->
  15.166 +    <mapping name="canvas" class="org.jdesktop.swingx.designer.Canvas" pre-set="preSet" post-set="setupLayers">
  15.167 +        <structure name="size" get-method="getSize" set-method="setSize"
  15.168 +                   marshaller="org.jdesktop.swingx.designer.jibxhelpers.DimensionMapper"
  15.169 +                   unmarshaller="org.jdesktop.swingx.designer.jibxhelpers.DimensionMapper"/>
  15.170 +        <value name="nextLayerNameIndex" field="nextLayerNameIndex"/>
  15.171 +        <structure name="stretchingInsets" field="stretchingInsets"
  15.172 +                   marshaller="org.jdesktop.swingx.designer.jibxhelpers.InsetsMapper"
  15.173 +                   unmarshaller="org.jdesktop.swingx.designer.jibxhelpers.InsetsMapper"/>
  15.174 +        <collection field="layers" create-type="java.util.ArrayList"/>
  15.175 +    </mapping>
  15.176 +</binding>
    16.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/DoubleBean.java	Wed Apr 29 00:27:46 2009 -0700
    16.3 @@ -0,0 +1,69 @@
    16.4 +/*
    16.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    16.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    16.7 + *
    16.8 + * This code is free software; you can redistribute it and/or modify it
    16.9 + * under the terms of the GNU General Public License version 2 only, as
   16.10 + * published by the Free Software Foundation.  Sun designates this
   16.11 + * particular file as subject to the "Classpath" exception as provided
   16.12 + * by Sun in the LICENSE file that accompanied this code.
   16.13 + *
   16.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   16.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   16.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   16.17 + * version 2 for more details (a copy is included in the LICENSE file that
   16.18 + * accompanied this code).
   16.19 + *
   16.20 + * You should have received a copy of the GNU General Public License version
   16.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   16.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   16.23 + *
   16.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   16.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   16.26 + * have any questions.
   16.27 + */
   16.28 +package org.jdesktop.swingx.designer;
   16.29 +
   16.30 +import org.jdesktop.beans.AbstractBean;
   16.31 +
   16.32 +/**
   16.33 + * DoubleBean - Simple bean for a observable double value
   16.34 + *
   16.35 + * @author Created by Jasper Potts (May 25, 2007)
   16.36 + */
   16.37 +public class DoubleBean extends AbstractBean {
   16.38 +    private double value = 0;
   16.39 +
   16.40 +    public DoubleBean() {}
   16.41 +
   16.42 +    public DoubleBean(double value) {
   16.43 +        this.value = value;
   16.44 +    }
   16.45 +
   16.46 +    public double getValue() {
   16.47 +        return value;
   16.48 +    }
   16.49 +
   16.50 +    public void setValue(double value) {
   16.51 +        double old = this.value;
   16.52 +        this.value = value;
   16.53 +        firePropertyChange("value", old, this.value);
   16.54 +    }
   16.55 +
   16.56 +
   16.57 +    public boolean equals(Object o) {
   16.58 +        if (this == o) return true;
   16.59 +        if (o == null || getClass() != o.getClass()) return false;
   16.60 +
   16.61 +        DoubleBean that = (DoubleBean) o;
   16.62 +
   16.63 +        if (Double.compare(that.value, value) != 0) return false;
   16.64 +
   16.65 +        return true;
   16.66 +    }
   16.67 +
   16.68 +    public int hashCode() {
   16.69 +        long temp = value != +0.0d ? Double.doubleToLongBits(value) : 0L;
   16.70 +        return (int) (temp ^ (temp >>> 32));
   16.71 +    }
   16.72 +}
    17.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/EllipseShape.java	Wed Apr 29 00:27:46 2009 -0700
    17.3 @@ -0,0 +1,189 @@
    17.4 +/*
    17.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    17.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    17.7 + *
    17.8 + * This code is free software; you can redistribute it and/or modify it
    17.9 + * under the terms of the GNU General Public License version 2 only, as
   17.10 + * published by the Free Software Foundation.  Sun designates this
   17.11 + * particular file as subject to the "Classpath" exception as provided
   17.12 + * by Sun in the LICENSE file that accompanied this code.
   17.13 + *
   17.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   17.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   17.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   17.17 + * version 2 for more details (a copy is included in the LICENSE file that
   17.18 + * accompanied this code).
   17.19 + *
   17.20 + * You should have received a copy of the GNU General Public License version
   17.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   17.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   17.23 + *
   17.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   17.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   17.26 + * have any questions.
   17.27 + */
   17.28 +package org.jdesktop.swingx.designer;
   17.29 +
   17.30 +import javax.swing.*;
   17.31 +import java.awt.*;
   17.32 +import java.awt.geom.Ellipse2D;
   17.33 +import java.awt.geom.Point2D;
   17.34 +import java.awt.geom.Rectangle2D;
   17.35 +import java.beans.PropertyChangeEvent;
   17.36 +import java.beans.PropertyChangeListener;
   17.37 +import java.util.ArrayList;
   17.38 +import java.util.List;
   17.39 +
   17.40 +/**
   17.41 + * EllipseShape
   17.42 + *
   17.43 + * @author Created by Jasper Potts (May 22, 2007)
   17.44 + */
   17.45 +public class EllipseShape extends PaintedShape {
   17.46 +
   17.47 +    private DoubleBean x1 = new DoubleBean();
   17.48 +    private DoubleBean x2 = new DoubleBean();
   17.49 +    private DoubleBean y1 = new DoubleBean();
   17.50 +    private DoubleBean y2 = new DoubleBean();
   17.51 +    private ControlPoint tl = new ControlPoint(x1, y1);
   17.52 +    private ControlPoint tr = new ControlPoint(x2, y1);
   17.53 +    private ControlPoint bl = new ControlPoint(x1, y2);
   17.54 +    private ControlPoint br = new ControlPoint(x2, y2);
   17.55 +
   17.56 +    // =================================================================================================================
   17.57 +    // Constructors
   17.58 +
   17.59 +    /** private noargs constructor for JIBX */
   17.60 +    private EllipseShape() {
   17.61 +        this(null);
   17.62 +    }
   17.63 +
   17.64 +    public EllipseShape(UIDefaults canvasUiDefaults) {
   17.65 +        super(canvasUiDefaults);
   17.66 +        PropertyChangeListener listener = new PropertyChangeListener() {
   17.67 +            public void propertyChange(PropertyChangeEvent evt) {
   17.68 +                firePropertyChange("bounds", null, getBounds(0));
   17.69 +            }
   17.70 +        };
   17.71 +        x1.addPropertyChangeListener(listener);
   17.72 +        y1.addPropertyChangeListener(listener);
   17.73 +        x2.addPropertyChangeListener(listener);
   17.74 +        y2.addPropertyChangeListener(listener);
   17.75 +    }
   17.76 +
   17.77 +    public EllipseShape(double x, double y, double w, double h) {
   17.78 +        this();
   17.79 +        x1.setValue(x);
   17.80 +        y1.setValue(y);
   17.81 +        x2.setValue(x + w);
   17.82 +        y2.setValue(y + h);
   17.83 +    }
   17.84 +
   17.85 +    public Rectangle2D getBounds(double pixelSize) {
   17.86 +        double left = Math.min(x1.getValue(), x2.getValue());
   17.87 +        double right = Math.max(x1.getValue(), x2.getValue());
   17.88 +        double top = Math.min(y1.getValue(), y2.getValue());
   17.89 +        double bottom = Math.max(y1.getValue(), y2.getValue());
   17.90 +        return new Rectangle2D.Double(left, top, right - left, bottom - top);
   17.91 +    }
   17.92 +
   17.93 +    public Ellipse2D getShape() {
   17.94 +        double left = Math.min(x1.getValue(), x2.getValue());
   17.95 +        double right = Math.max(x1.getValue(), x2.getValue());
   17.96 +        double top = Math.min(y1.getValue(), y2.getValue());
   17.97 +        double bottom = Math.max(y1.getValue(), y2.getValue());
   17.98 +        return new Ellipse2D.Double(left, top, right - left, bottom - top);
   17.99 +    }
  17.100 +
  17.101 +    public boolean isHit(Point2D p, double pixelSize) {
  17.102 +        return getBounds(pixelSize).contains(p);
  17.103 +    }
  17.104 +
  17.105 +    public void paint(Graphics2D g2, double pixelSize) {
  17.106 +        g2.setPaint(getPaint());
  17.107 +        g2.fill(getShape());
  17.108 +    }
  17.109 +
  17.110 +    public void setFrame(double x1, double y1, double x2, double y2) {
  17.111 +        this.x1.setValue(x1);
  17.112 +        this.y1.setValue(y1);
  17.113 +        this.x2.setValue(x2);
  17.114 +        this.y2.setValue(y2);
  17.115 +    }
  17.116 +
  17.117 +    @Override
  17.118 +    public String toString() {
  17.119 +        Rectangle2D bounds = getBounds(0);
  17.120 +        return "ELLIPSE { x=" +  bounds.getX() + ", y=" + bounds.getY() + ", w=" + bounds.getWidth() + ", h=" + bounds.getHeight() + " }";
  17.121 +    }
  17.122 +
  17.123 +    public List<ControlPoint> getControlPoints() {
  17.124 +        List<ControlPoint> points = new ArrayList<ControlPoint>();
  17.125 +        points.addAll(super.getControlPoints());
  17.126 +        points.add(tl);
  17.127 +        points.add(tr);
  17.128 +        points.add(bl);
  17.129 +        points.add(br);
  17.130 +        return points;
  17.131 +    }
  17.132 +
  17.133 +    public void paintControls(Graphics2D g2, double pixelSize, boolean paintControlLines) {
  17.134 +        if (paintControlLines) {
  17.135 +            g2.setStroke(new BasicStroke((float) pixelSize));
  17.136 +            g2.setColor(GraphicsHelper.CONTROL_LINE);
  17.137 +            g2.draw(getShape());
  17.138 +        }
  17.139 +        tl.paintControls(g2, pixelSize, true);
  17.140 +        tr.paintControls(g2, pixelSize, true);
  17.141 +        bl.paintControls(g2, pixelSize, true);
  17.142 +        br.paintControls(g2, pixelSize, true);
  17.143 +//        super.paintControls(g2, pixelSize, paintControlLines);
  17.144 +    }
  17.145 +
  17.146 +    public void move(double moveX, double moveY, boolean snapPixels) {
  17.147 +        if (snapPixels) {
  17.148 +            x1.setValue(Math.round(x1.getValue() + moveX));
  17.149 +            x2.setValue(Math.round(x2.getValue() + moveX));
  17.150 +            y1.setValue(Math.round(y1.getValue() + moveY));
  17.151 +            y2.setValue(Math.round(y2.getValue() + moveY));
  17.152 +        } else {
  17.153 +            x1.setValue(x1.getValue() + moveX);
  17.154 +            x2.setValue(x2.getValue() + moveX);
  17.155 +            y1.setValue(y1.getValue() + moveY);
  17.156 +            y2.setValue(y2.getValue() + moveY);
  17.157 +        }
  17.158 +    }
  17.159 +
  17.160 +    public double getX1() {
  17.161 +        return x1.getValue();
  17.162 +    }
  17.163 +
  17.164 +    public void setX1(double x1) {
  17.165 +        this.x1.setValue(x1);
  17.166 +    }
  17.167 +
  17.168 +    public double getX2() {
  17.169 +        return x2.getValue();
  17.170 +    }
  17.171 +
  17.172 +    public void setX2(double x2) {
  17.173 +        this.x2.setValue(x2);
  17.174 +    }
  17.175 +
  17.176 +    public double getY1() {
  17.177 +        return y1.getValue();
  17.178 +    }
  17.179 +
  17.180 +    public void setY1(double y1) {
  17.181 +        this.y1.setValue(y1);
  17.182 +    }
  17.183 +
  17.184 +    public double getY2() {
  17.185 +        return y2.getValue();
  17.186 +    }
  17.187 +
  17.188 +    public void setY2(double y2) {
  17.189 +        this.y2.setValue(y2);
  17.190 +    }
  17.191 +
  17.192 +}
    18.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/GraphicsHelper.java	Wed Apr 29 00:27:46 2009 -0700
    18.3 @@ -0,0 +1,45 @@
    18.4 +/*
    18.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    18.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    18.7 + *
    18.8 + * This code is free software; you can redistribute it and/or modify it
    18.9 + * under the terms of the GNU General Public License version 2 only, as
   18.10 + * published by the Free Software Foundation.  Sun designates this
   18.11 + * particular file as subject to the "Classpath" exception as provided
   18.12 + * by Sun in the LICENSE file that accompanied this code.
   18.13 + *
   18.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   18.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   18.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   18.17 + * version 2 for more details (a copy is included in the LICENSE file that
   18.18 + * accompanied this code).
   18.19 + *
   18.20 + * You should have received a copy of the GNU General Public License version
   18.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   18.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   18.23 + *
   18.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   18.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   18.26 + * have any questions.
   18.27 + */
   18.28 +package org.jdesktop.swingx.designer;
   18.29 +
   18.30 +import java.awt.Color;
   18.31 +
   18.32 +/**
   18.33 + * GraphicsHelper
   18.34 + *
   18.35 + * @author Created by Jasper Potts (May 29, 2007)
   18.36 + */
   18.37 +public class GraphicsHelper {
   18.38 +    public static final Color FILL_LINE = Color.BLUE;
   18.39 +    public static final Color FILL_CP_LINE = Color.BLUE;
   18.40 +    public static final Color FILL_CP_FILL = Color.WHITE;
   18.41 +    public static final Color CONTROL_LINE = Color.RED;
   18.42 +    public static final Color CONTROL_POINT_LINE = Color.RED;
   18.43 +    public static final Color CONTROL_POINT_FILL = Color.WHITE;
   18.44 +    public static final Color BEZIER_CONTROL_POINT_LINE = CONTROL_POINT_LINE;
   18.45 +    public static final Color BEZIER_CONTROL_POINT_FILL = CONTROL_POINT_FILL;
   18.46 +    public static final Color BEZIER_CONTROL_LINE = Color.DARK_GRAY;
   18.47 +
   18.48 +}
    19.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/Layer.java	Wed Apr 29 00:27:46 2009 -0700
    19.3 @@ -0,0 +1,443 @@
    19.4 +/*
    19.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    19.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    19.7 + *
    19.8 + * This code is free software; you can redistribute it and/or modify it
    19.9 + * under the terms of the GNU General Public License version 2 only, as
   19.10 + * published by the Free Software Foundation.  Sun designates this
   19.11 + * particular file as subject to the "Classpath" exception as provided
   19.12 + * by Sun in the LICENSE file that accompanied this code.
   19.13 + *
   19.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   19.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   19.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   19.17 + * version 2 for more details (a copy is included in the LICENSE file that
   19.18 + * accompanied this code).
   19.19 + *
   19.20 + * You should have received a copy of the GNU General Public License version
   19.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   19.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   19.23 + *
   19.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   19.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   19.26 + * have any questions.
   19.27 + */
   19.28 +package org.jdesktop.swingx.designer;
   19.29 +
   19.30 +import org.jdesktop.swingx.designer.effects.Effect;
   19.31 +
   19.32 +import java.awt.Dimension;
   19.33 +import java.awt.Graphics2D;
   19.34 +import java.awt.Shape;
   19.35 +import java.awt.geom.Point2D;
   19.36 +import java.awt.geom.Rectangle2D;
   19.37 +import java.awt.image.BufferedImage;
   19.38 +import java.beans.PropertyChangeEvent;
   19.39 +import java.beans.PropertyChangeListener;
   19.40 +import java.util.ArrayList;
   19.41 +import java.util.Collection;
   19.42 +import java.util.Collections;
   19.43 +import java.util.Iterator;
   19.44 +import java.util.List;
   19.45 +
   19.46 +/**
   19.47 + * Layer
   19.48 + *
   19.49 + * @author Created by Jasper Potts (May 22, 2007)
   19.50 + */
   19.51 +public class Layer extends SimpleShape implements Iterable<SimpleShape>, LayerContainer {
   19.52 +    public static enum LayerType {
   19.53 +        standard, template
   19.54 +    }
   19.55 +
   19.56 +    private String name;
   19.57 +    protected LayerType type = LayerType.standard;
   19.58 +    /** List of shapes in this layer, first shape is painted on top */
   19.59 +    private List<SimpleShape> shapes = new ArrayList<SimpleShape>();
   19.60 +    private List<Effect> effects = new ArrayList<Effect>();
   19.61 +    private double opacity = 1;
   19.62 +    private double fillOpacity = 1;
   19.63 +    private BlendingMode blendingMode = BlendingMode.NORMAL;
   19.64 +    private boolean locked = false;
   19.65 +    private boolean visible = true;
   19.66 +    private PropertyChangeListener shapeChangeListener = new PropertyChangeListener() {
   19.67 +        public void propertyChange(PropertyChangeEvent evt) {
   19.68 +            int index = shapes.indexOf((SimpleShape) evt.getSource());
   19.69 +            firePropertyChange("shapes[" + index + "]." + evt.getPropertyName(), evt.getOldValue(), evt.getNewValue());
   19.70 +        }
   19.71 +    };
   19.72 +    private PropertyChangeListener effectChangeListener = new PropertyChangeListener() {
   19.73 +        public void propertyChange(PropertyChangeEvent evt) {
   19.74 +            int index = effects.indexOf((Effect) evt.getSource());
   19.75 +            System.out.println(
   19.76 +                    "Layer.propertyChange EFFECT PROPERTY CHANGED " + evt.getSource() + " -- " + evt.getPropertyName());
   19.77 +            firePropertyChange("effects[" + index + "]." + evt.getPropertyName(), evt.getOldValue(), evt.getNewValue());
   19.78 +        }
   19.79 +    };
   19.80 +    private BufferedImage buffer = null;
   19.81 +    // =================================================================================================================
   19.82 +    // Constructors
   19.83 +
   19.84 +    public Layer() {
   19.85 +    }
   19.86 +
   19.87 +    public Layer(String name) {
   19.88 +        this();
   19.89 +        this.name = name;
   19.90 +    }
   19.91 +
   19.92 +    /** Called by JIBX after populating this layer so we can add listeners to children */
   19.93 +    protected void postInit() {
   19.94 +        for (SimpleShape shape : shapes) {
   19.95 +            shape.addPropertyChangeListener(shapeChangeListener);
   19.96 +            shape.setParent(this);
   19.97 +        }
   19.98 +        for (Effect effect : effects) {
   19.99 +            effect.addPropertyChangeListener(effectChangeListener);
  19.100 +        }
  19.101 +    }
  19.102 +
  19.103 +    // =================================================================================================================
  19.104 +    // Bean Methods
  19.105 +
  19.106 +    public LayerType getType() {
  19.107 +        return type;
  19.108 +    }
  19.109 +
  19.110 +    public boolean isLocked() {
  19.111 +        return locked;
  19.112 +    }
  19.113 +
  19.114 +    public void setLocked(boolean locked) {
  19.115 +        boolean old = isLocked();
  19.116 +        this.locked = locked;
  19.117 +        firePropertyChange("locked", old, isLocked());
  19.118 +    }
  19.119 +
  19.120 +    public boolean isVisible() {
  19.121 +        return visible;
  19.122 +    }
  19.123 +
  19.124 +    public void setVisible(boolean visible) {
  19.125 +        boolean old = isVisible();
  19.126 +        this.visible = visible;
  19.127 +        firePropertyChange("visible", old, isVisible());
  19.128 +    }
  19.129 +
  19.130 +    public String getName() {
  19.131 +        return name;
  19.132 +    }
  19.133 +
  19.134 +    public void setName(String name) {
  19.135 +        String old = getName();
  19.136 +        this.name = name;
  19.137 +        firePropertyChange("name", old, getName());
  19.138 +    }
  19.139 +
  19.140 +    public void setParent(LayerContainer parent) {
  19.141 +        super.setParent(parent);
  19.142 +        // generate a name if null
  19.143 +        if (name == null) {
  19.144 +            Canvas c = null;
  19.145 +            LayerContainer p = parent;
  19.146 +            while (true) {
  19.147 +                if (p instanceof Canvas) {
  19.148 +                    c = (Canvas) p;
  19.149 +                    break;
  19.150 +                } else if (p == null) {
  19.151 +                    break;
  19.152 +                }
  19.153 +                p = p.getParent();
  19.154 +            }
  19.155 +            if (c != null) {
  19.156 +                setName("Layer " + c.getNextLayerNameIndex());
  19.157 +            }
  19.158 +        }
  19.159 +    }
  19.160 +
  19.161 +    /**
  19.162 +     * Add shape to top of layer so it paints above all other shapes
  19.163 +     *
  19.164 +     * @param shape The shape to add
  19.165 +     */
  19.166 +    public void add(SimpleShape shape) {
  19.167 +        shapes.add(0, shape);
  19.168 +        shape.setParent(this);
  19.169 +        shape.addPropertyChangeListener(shapeChangeListener);
  19.170 +        fireIndexedPropertyChange("shapes", 0, null, shape);
  19.171 +    }
  19.172 +
  19.173 +    public void remove(SimpleShape shape) {
  19.174 +        int index = shapes.indexOf(shape);
  19.175 +        if (index != -1) {
  19.176 +            shapes.remove(shape);
  19.177 +            shape.setParent(null);
  19.178 +            fireIndexedPropertyChange("shapes", index, shape, null);
  19.179 +        }
  19.180 +    }
  19.181 +
  19.182 +    /**
  19.183 +     * Returns an unmodifianle iterator over a set of elements of type SimpleShape.
  19.184 +     *
  19.185 +     * @return an Iterator.
  19.186 +     */
  19.187 +    public Iterator<SimpleShape> iterator() {
  19.188 +        return Collections.unmodifiableList(shapes).iterator();
  19.189 +    }
  19.190 +
  19.191 +
  19.192 +    public List<Effect> getEffects() {
  19.193 +        return Collections.unmodifiableList(effects);
  19.194 +    }
  19.195 +
  19.196 +    public void addEffect(Effect effect) {
  19.197 +        int index = effects.size();
  19.198 +        effects.add(effect);
  19.199 +        effect.addPropertyChangeListener(effectChangeListener);
  19.200 +        fireIndexedPropertyChange("effects", index, null, effects);
  19.201 +    }
  19.202 +
  19.203 +    public void removeEffect(Effect effect) {
  19.204 +        int index = effects.indexOf(effect);
  19.205 +        if (index != -1) {
  19.206 +            effects.remove(effect);
  19.207 +            effect.removePropertyChangeListener(effectChangeListener);
  19.208 +            fireIndexedPropertyChange("effects", index, effect, null);
  19.209 +        }
  19.210 +    }
  19.211 +
  19.212 +    public double getOpacity() {
  19.213 +        return opacity;
  19.214 +    }
  19.215 +
  19.216 +    public void setOpacity(double opacity) {
  19.217 +        if (opacity < 0 || opacity > 1) return;
  19.218 +        double old = getOpacity();
  19.219 +        this.opacity = opacity;
  19.220 +        firePropertyChange("opacity", old, getOpacity());
  19.221 +    }
  19.222 +
  19.223 +    public double getFillOpacity() {
  19.224 +        return fillOpacity;
  19.225 +    }
  19.226 +
  19.227 +    public void setFillOpacity(double fillOpacity) {
  19.228 +        if (fillOpacity < 0 || fillOpacity > 1) return;
  19.229 +        double old = getFillOpacity();
  19.230 +        this.fillOpacity = fillOpacity;
  19.231 +        firePropertyChange("fillOpacity", old, getFillOpacity());
  19.232 +    }
  19.233 +
  19.234 +    public BlendingMode getBlendingMode() {
  19.235 +        return blendingMode;
  19.236 +    }
  19.237 +
  19.238 +    public void setBlendingMode(BlendingMode blendingMode) {
  19.239 +        BlendingMode old = getBlendingMode();
  19.240 +        this.blendingMode = blendingMode;
  19.241 +        firePropertyChange("blendingMode", old, getBlendingMode());
  19.242 +    }
  19.243 +
  19.244 +    // =================================================================================================================
  19.245 +    // Layer Methods
  19.246 +
  19.247 +    /**
  19.248 +     * Get the parent canvas that contains this layer
  19.249 +     *
  19.250 +     * @return Parant canvas, or null if the layer is not in a canvas
  19.251 +     */
  19.252 +    public Canvas getCanvas() {
  19.253 +        LayerContainer lc = this;
  19.254 +        while (lc != null) {
  19.255 +            if (lc instanceof Canvas) return (Canvas) lc;
  19.256 +            lc = lc.getParent();
  19.257 +        }
  19.258 +        return null;
  19.259 +    }
  19.260 +
  19.261 +    public List<SimpleShape> getShapes() {
  19.262 +        return new ArrayList<SimpleShape>(shapes);
  19.263 +    }
  19.264 +
  19.265 +    public List<SimpleShape> getIntersectingShapes(Point2D p, double pixelSize) {
  19.266 +        if (isLocked() || !isVisible()) return Collections.emptyList();
  19.267 +        List<SimpleShape> intersectingShapes = new ArrayList<SimpleShape>();
  19.268 +        for (SimpleShape shape : shapes) {
  19.269 +            if (shape instanceof Layer) {
  19.270 +                intersectingShapes.addAll(((Layer) shape).getIntersectingShapes(p, pixelSize));
  19.271 +            } else {
  19.272 +                if (shape.isHit(p, pixelSize)) intersectingShapes.add(shape);
  19.273 +            }
  19.274 +        }
  19.275 +        return intersectingShapes;
  19.276 +    }
  19.277 +
  19.278 +    public List<SimpleShape> getIntersectingShapes(Rectangle2D rect, double pixelSize) {
  19.279 +        if (isLocked() || !isVisible()) return Collections.emptyList();
  19.280 +        List<SimpleShape> intersectingShapes = new ArrayList<SimpleShape>();
  19.281 +        for (SimpleShape shape : shapes) {
  19.282 +            if (shape instanceof Layer) {
  19.283 +                intersectingShapes.addAll(((Layer) shape).getIntersectingShapes(rect, pixelSize));
  19.284 +            } else {
  19.285 +                if (shape.intersects(rect, pixelSize)) intersectingShapes.add(shape);
  19.286 +            }
  19.287 +        }
  19.288 +        return intersectingShapes;
  19.289 +
  19.290 +    }
  19.291 +
  19.292 +    public boolean isEmpty() {
  19.293 +        return shapes.isEmpty();
  19.294 +    }
  19.295 +
  19.296 +    // =================================================================================================================
  19.297 +    // SimpleShape Methods
  19.298 +
  19.299 +    public Rectangle2D getBounds(double pixelSize) {
  19.300 +        Rectangle2D.Double rect = new Rectangle2D.Double();
  19.301 +        for (SimpleShape shape : shapes) {
  19.302 +            rect.add(shape.getBounds(pixelSize));
  19.303 +        }
  19.304 +        return rect;
  19.305 +    }
  19.306 +
  19.307 +
  19.308 +    public Shape getShape() {
  19.309 +        return getBounds(0);
  19.310 +    }
  19.311 +
  19.312 +    public boolean isHit(Point2D p, double pixelSize) {
  19.313 +        if (isLocked() || !isVisible()) return false;
  19.314 +        for (SimpleShape shape : shapes) {
  19.315 +            if (shape.isHit(p, pixelSize)) return true;
  19.316 +        }
  19.317 +        return false;
  19.318 +    }
  19.319 +
  19.320 +    public boolean intersects(Rectangle2D rect, double pixelSize) {
  19.321 +        if (isLocked() || !isVisible()) return false;
  19.322 +        for (SimpleShape shape : shapes) {
  19.323 +            if (shape.intersects(rect, pixelSize)) return true;
  19.324 +        }
  19.325 +        return false;
  19.326 +    }
  19.327 +
  19.328 +    public List<ControlPoint> getControlPoints() {
  19.329 +        return Collections.emptyList();
  19.330 +    }
  19.331 +
  19.332 +    public void paint(Graphics2D g2, double pixelSize) {
  19.333 +    }
  19.334 +
  19.335 +    public void paintControls(Graphics2D g2, double pixelSize, boolean paintControlLines) {
  19.336 +
  19.337 +    }
  19.338 +
  19.339 +    public String toString() {
  19.340 +        return getName();
  19.341 +    }
  19.342 +
  19.343 +    // =================================================================================================================
  19.344 +    // LayerContainer Methods
  19.345 +
  19.346 +    public void addLayer(int i, Layer layer) {
  19.347 +        // get existing layer at index i
  19.348 +        Layer existingLayer = getLayer(i);
  19.349 +        if (existingLayer == null) {
  19.350 +            addLayer(layer);
  19.351 +        } else {
  19.352 +            int index = indexOfLayer(existingLayer);
  19.353 +            shapes.add(index, layer);
  19.354 +            layer.setParent(this);
  19.355 +            layer.addPropertyChangeListener(shapeChangeListener);
  19.356 +            fireIndexedPropertyChange("layers", index, null, layer);
  19.357 +        }
  19.358 +    }
  19.359 +
  19.360 +    public void addLayer(Layer layer) {
  19.361 +        shapes.add(layer);
  19.362 +        layer.setParent(this);
  19.363 +        layer.addPropertyChangeListener(shapeChangeListener);
  19.364 +        int index = indexOfLayer(layer);
  19.365 +        fireIndexedPropertyChange("layers", index, null, layer);
  19.366 +    }
  19.367 +
  19.368 +    public Layer getLayer(int index) {
  19.369 +        int i = -1;
  19.370 +        for (SimpleShape shape : shapes) {
  19.371 +            if (shape instanceof Layer) i++;
  19.372 +            if (i == index) return (Layer) shape;
  19.373 +        }
  19.374 +        return null;
  19.375 +    }
  19.376 +
  19.377 +    public int getLayerCount() {
  19.378 +        int count = 0;
  19.379 +        for (SimpleShape shape : shapes) {
  19.380 +            if (shape instanceof Layer) count++;
  19.381 +        }
  19.382 +        return count;
  19.383 +    }
  19.384 +
  19.385 +
  19.386 +    public Collection<Layer> getLayers() {
  19.387 +        List<Layer> layers = new ArrayList<Layer>();
  19.388 +        for (SimpleShape shape : shapes) {
  19.389 +            if (shape instanceof Layer) layers.add((Layer) shape);
  19.390 +        }
  19.391 +        return Collections.unmodifiableList(layers);
  19.392 +    }
  19.393 +
  19.394 +    public Iterator<Layer> getLayerIterator() {
  19.395 +        return new Iterator<Layer>() {
  19.396 +            private int index = 0;
  19.397 +
  19.398 +            public boolean hasNext() {
  19.399 +                for (int i = index; i < shapes.size(); i++) {
  19.400 +                    if (shapes.get(i) instanceof Layer) {
  19.401 +                        return true;
  19.402 +                    }
  19.403 +                }
  19.404 +                return false;
  19.405 +            }
  19.406 +
  19.407 +            public Layer next() {
  19.408 +                for (; index < shapes.size(); index++) {
  19.409 +                    if (shapes.get(index) instanceof Layer) {
  19.410 +                        Layer nextLayer = (Layer) shapes.get(index);
  19.411 +                        index++; // increment index so we don't find the same one again
  19.412 +                        return nextLayer;
  19.413 +                    }
  19.414 +                }
  19.415 +                return null;
  19.416 +            }
  19.417 +
  19.418 +            public void remove() {
  19.419 +                throw new UnsupportedOperationException();
  19.420 +            }
  19.421 +        };
  19.422 +    }
  19.423 +
  19.424 +    public int indexOfLayer(Layer layer) {
  19.425 +        int i = -1;
  19.426 +        for (SimpleShape s : shapes) {
  19.427 +            if (s instanceof Layer) i++;
  19.428 +            if (s == layer) return i;
  19.429 +        }
  19.430 +        return -1;
  19.431 +    }
  19.432 +
  19.433 +    public void removeLayer(Layer layer) {
  19.434 +        int index = indexOfLayer(layer);
  19.435 +        if (index != -1) {
  19.436 +            shapes.remove(layer);
  19.437 +            layer.removePropertyChangeListener(shapeChangeListener);
  19.438 +            fireIndexedPropertyChange("layers", index, layer, null);
  19.439 +        }
  19.440 +    }
  19.441 +
  19.442 +
  19.443 +    public Dimension getRootSize() {
  19.444 +        return getParent().getRootSize();
  19.445 +    }
  19.446 +}
    20.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/LayerContainer.java	Wed Apr 29 00:27:46 2009 -0700
    20.3 @@ -0,0 +1,67 @@
    20.4 +/*
    20.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    20.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    20.7 + *
    20.8 + * This code is free software; you can redistribute it and/or modify it
    20.9 + * under the terms of the GNU General Public License version 2 only, as
   20.10 + * published by the Free Software Foundation.  Sun designates this
   20.11 + * particular file as subject to the "Classpath" exception as provided
   20.12 + * by Sun in the LICENSE file that accompanied this code.
   20.13 + *
   20.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   20.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   20.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   20.17 + * version 2 for more details (a copy is included in the LICENSE file that
   20.18 + * accompanied this code).
   20.19 + *
   20.20 + * You should have received a copy of the GNU General Public License version
   20.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   20.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   20.23 + *
   20.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   20.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   20.26 + * have any questions.
   20.27 + */
   20.28 +package org.jdesktop.swingx.designer;
   20.29 +
   20.30 +import java.awt.Dimension;
   20.31 +import java.beans.PropertyChangeListener;
   20.32 +import java.util.Collection;
   20.33 +import java.util.Iterator;
   20.34 +
   20.35 +/**
   20.36 + * LayerContainer
   20.37 + *
   20.38 + * @author Created by Jasper Potts (May 31, 2007)
   20.39 + */
   20.40 +public interface LayerContainer {
   20.41 +    public void addPropertyChangeListener(PropertyChangeListener listener);
   20.42 +
   20.43 +    public void removePropertyChangeListener(PropertyChangeListener listener);
   20.44 +
   20.45 +    public LayerContainer getParent();
   20.46 +
   20.47 +    public void addLayer(Layer layer);
   20.48 +
   20.49 +    public void addLayer(int i, Layer layer);
   20.50 +
   20.51 +    public void removeLayer(Layer layer);
   20.52 +
   20.53 +    public int getLayerCount();
   20.54 +
   20.55 +    public Layer getLayer(int index);
   20.56 +
   20.57 +    public int indexOfLayer(Layer layer);
   20.58 +
   20.59 +    public Iterator<Layer> getLayerIterator();
   20.60 +
   20.61 +    public Collection<Layer> getLayers();
   20.62 +
   20.63 +    /**
   20.64 +     * Get the size in pixels of the root of the layer tree, this is usualy a canvas
   20.65 +     *
   20.66 +     * @return The size of the whole layer tree
   20.67 +     */
   20.68 +    public Dimension getRootSize();
   20.69 +
   20.70 +}
    21.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    21.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/PaintedShape.java	Wed Apr 29 00:27:46 2009 -0700
    21.3 @@ -0,0 +1,289 @@
    21.4 +/*
    21.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    21.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    21.7 + *
    21.8 + * This code is free software; you can redistribute it and/or modify it
    21.9 + * under the terms of the GNU General Public License version 2 only, as
   21.10 + * published by the Free Software Foundation.  Sun designates this
   21.11 + * particular file as subject to the "Classpath" exception as provided
   21.12 + * by Sun in the LICENSE file that accompanied this code.
   21.13 + *
   21.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   21.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   21.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   21.17 + * version 2 for more details (a copy is included in the LICENSE file that
   21.18 + * accompanied this code).
   21.19 + *
   21.20 + * You should have received a copy of the GNU General Public License version
   21.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   21.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   21.23 + *
   21.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   21.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   21.26 + * have any questions.
   21.27 + */
   21.28 +package org.jdesktop.swingx.designer;
   21.29 +
   21.30 +import org.jdesktop.swingx.designer.paint.Matte;
   21.31 +import org.jdesktop.swingx.designer.paint.PaintModel;
   21.32 +
   21.33 +import javax.swing.UIDefaults;
   21.34 +import java.awt.BasicStroke;
   21.35 +import java.awt.Color;
   21.36 +import java.awt.GradientPaint;
   21.37 +import java.awt.Graphics2D;
   21.38 +import java.awt.LinearGradientPaint;
   21.39 +import java.awt.Paint;
   21.40 +import java.awt.RadialGradientPaint;
   21.41 +import java.awt.Shape;
   21.42 +import java.awt.geom.Ellipse2D;
   21.43 +import java.awt.geom.Line2D;
   21.44 +import java.awt.geom.Point2D;
   21.45 +import java.awt.geom.Rectangle2D;
   21.46 +import java.beans.PropertyChangeEvent;
   21.47 +import java.beans.PropertyChangeListener;
   21.48 +import java.util.Arrays;
   21.49 +import java.util.Collections;
   21.50 +import java.util.List;
   21.51 +
   21.52 +/**
   21.53 + * PaintedShape
   21.54 + *
   21.55 + * @author Created by Jasper Potts (May 22, 2007)
   21.56 + */
   21.57 +public abstract class PaintedShape extends SimpleShape {
   21.58 +
   21.59 +    private PaintModel paint;
   21.60 +    // control points for paint control types
   21.61 +    private DoubleBean px1 = new DoubleBean(0.25);
   21.62 +    private DoubleBean px2 = new DoubleBean(0.75);
   21.63 +    private DoubleBean py1 = new DoubleBean(0);
   21.64 +    private DoubleBean py2 = new DoubleBean(1);
   21.65 +    private ControlPoint ptl = new PaintControlPoint(px1, py1);
   21.66 +    private ControlPoint ptr = new PaintControlPoint(px2, py1);
   21.67 +    private ControlPoint pbl = new PaintControlPoint(px1, py2);
   21.68 +    private ControlPoint pbr = new PaintControlPoint(px2, py2);
   21.69 +    private PropertyChangeListener paintListener = new PropertyChangeListener() {
   21.70 +        public void propertyChange(PropertyChangeEvent evt) {
   21.71 +            firePropertyChange("paint." + evt.getPropertyName(), evt.getOldValue(), evt.getNewValue());
   21.72 +        }
   21.73 +    };
   21.74 +
   21.75 +    protected PaintedShape() {
   21.76 +        px1.addPropertyChangeListener(new PropertyChangeListener() {
   21.77 +            public void propertyChange(PropertyChangeEvent evt) {
   21.78 +                firePropertyChange("x1", evt.getOldValue(), evt.getNewValue());
   21.79 +            }
   21.80 +        });
   21.81 +        py1.addPropertyChangeListener(new PropertyChangeListener() {
   21.82 +            public void propertyChange(PropertyChangeEvent evt) {
   21.83 +                firePropertyChange("y1", evt.getOldValue(), evt.getNewValue());
   21.84 +            }
   21.85 +        });
   21.86 +        px2.addPropertyChangeListener(new PropertyChangeListener() {
   21.87 +            public void propertyChange(PropertyChangeEvent evt) {
   21.88 +                firePropertyChange("x2", evt.getOldValue(), evt.getNewValue());
   21.89 +            }
   21.90 +        });
   21.91 +        py2.addPropertyChangeListener(new PropertyChangeListener() {
   21.92 +            public void propertyChange(PropertyChangeEvent evt) {
   21.93 +                firePropertyChange("y2", evt.getOldValue(), evt.getNewValue());
   21.94 +            }
   21.95 +        });
   21.96 +    }
   21.97 +
   21.98 +    protected PaintedShape(UIDefaults canvasUiDefaults) {
   21.99 +        this();
  21.100 +        setPaintModel(new Matte(Color.ORANGE, canvasUiDefaults));
  21.101 +    }
  21.102 +
  21.103 +    public PaintModel getPaintModel() {
  21.104 +        return paint;
  21.105 +    }
  21.106 +
  21.107 +    public void setPaintModel(PaintModel paint) {
  21.108 +        PaintModel old = getPaintModel();
  21.109 +        if (old != null) old.removePropertyChangeListener(paintListener);
  21.110 +        this.paint = paint;
  21.111 +        this.paint.addPropertyChangeListener(paintListener);
  21.112 +        firePropertyChange("paintModel", old, getPaintModel());
  21.113 +    }
  21.114 +
  21.115 +    public Paint getPaint() {
  21.116 +        Paint p = getPaintModel().getPaint();
  21.117 +        if (p instanceof Color) {
  21.118 +            return p;
  21.119 +        }
  21.120 +        //resize p as necessary to fit the bounds of this PaintedShape
  21.121 +        Rectangle2D bounds = getBounds(0);
  21.122 +        if (p instanceof LinearGradientPaint) {
  21.123 +            LinearGradientPaint lgp = (LinearGradientPaint) p;
  21.124 +            return new LinearGradientPaint(
  21.125 +                    convertLocalPoint(ptl.getPosition(), bounds),
  21.126 +                    convertLocalPoint(pbr.getPosition(), bounds),
  21.127 +                    lgp.getFractions(),
  21.128 +                    lgp.getColors());
  21.129 +        } else if (p instanceof RadialGradientPaint) {
  21.130 +            RadialGradientPaint rgp = (RadialGradientPaint) p;
  21.131 +            Point2D outer = convertLocalPoint(ptl.getPosition(), bounds);
  21.132 +            Point2D center = convertLocalPoint(pbr.getPosition(), bounds);
  21.133 +            double deltaX = Math.abs(center.getX() - outer.getX());
  21.134 +            double deltaY = Math.abs(center.getY() - outer.getY());
  21.135 +            float radius = (float) Math.sqrt((deltaX * deltaX) + (deltaY * deltaY));
  21.136 +            return new RadialGradientPaint(
  21.137 +                    center,
  21.138 +                    radius,
  21.139 +                    rgp.getFractions(),
  21.140 +                    rgp.getColors());
  21.141 +        } else {
  21.142 +            return p;
  21.143 +        }
  21.144 +    }
  21.145 +
  21.146 +    public List<? extends ControlPoint> getControlPoints() {
  21.147 +        switch (paint.getPaintControlType()) {
  21.148 +            case control_line:
  21.149 +                return Arrays.asList(ptl, pbr);
  21.150 +            case control_rect:
  21.151 +                return Arrays.asList(ptl, ptr, pbl, pbr);
  21.152 +            default:
  21.153 +                return Collections.emptyList();
  21.154 +        }
  21.155 +    }
  21.156 +
  21.157 +    public void paintFillControls(Graphics2D g2, double pixelSize, boolean paintControlLines) {
  21.158 +        switch (paint.getPaintControlType()) {
  21.159 +            case control_line:
  21.160 +                Point2D p1 = convertLocalPoint(ptl.getPosition(), PaintedShape.this.getBounds(0));
  21.161 +                Point2D p2 = convertLocalPoint(pbr.getPosition(), PaintedShape.this.getBounds(0));
  21.162 +                g2.setStroke(new BasicStroke((float) pixelSize));
  21.163 +                g2.setColor(GraphicsHelper.FILL_LINE);
  21.164 +                g2.draw(new Line2D.Double(p1.getX(), p1.getY(), p2.getX(), p2.getY()));
  21.165 +                ptl.paintControls(g2, pixelSize, true);
  21.166 +                pbr.paintControls(g2, pixelSize, true);
  21.167 +                break;
  21.168 +            case control_rect:
  21.169 +                g2.setStroke(new BasicStroke((float) pixelSize));
  21.170 +                g2.setColor(GraphicsHelper.FILL_LINE);
  21.171 +                g2.draw(new Rectangle2D.Double(
  21.172 +                        px1.getValue(),
  21.173 +                        py1.getValue(),
  21.174 +                        px2.getValue() - px1.getValue(),
  21.175 +                        py2.getValue() - py1.getValue()));
  21.176 +                ptl.paintControls(g2, pixelSize, true);
  21.177 +                ptr.paintControls(g2, pixelSize, true);
  21.178 +                pbl.paintControls(g2, pixelSize, true);
  21.179 +                pbr.paintControls(g2, pixelSize, true);
  21.180 +                break;
  21.181 +        }
  21.182 +    }
  21.183 +
  21.184 +    public void move(double moveX, double moveY, boolean snapPixels) {
  21.185 +        for (ControlPoint controlPoint : getControlPoints()) {
  21.186 +            if (!(controlPoint instanceof PaintControlPoint)) controlPoint.move(moveX, moveY, snapPixels);
  21.187 +        }
  21.188 +    }
  21.189 +
  21.190 +    public double getPaintX1() {
  21.191 +        return px1.getValue();
  21.192 +    }
  21.193 +
  21.194 +    public void setPaintX1(double x1) {
  21.195 +        this.px1.setValue(x1);
  21.196 +    }
  21.197 +
  21.198 +    public double getPaintX2() {
  21.199 +        return px2.getValue();
  21.200 +    }
  21.201 +
  21.202 +    public void setPaintX2(double x2) {
  21.203 +        this.px2.setValue(x2);
  21.204 +    }
  21.205 +
  21.206 +    public double getPaintY1() {
  21.207 +        return py1.getValue();
  21.208 +    }
  21.209 +
  21.210 +    public void setPaintY1(double y1) {
  21.211 +        this.py1.setValue(y1);
  21.212 +    }
  21.213 +
  21.214 +    public double getPaintY2() {
  21.215 +        return py2.getValue();
  21.216 +    }
  21.217 +
  21.218 +    public void setPaintY2(double y2) {
  21.219 +        this.py2.setValue(y2);
  21.220 +    }
  21.221 +
  21.222 +    // =================================================================================================================
  21.223 +    // Private helper methods
  21.224 +
  21.225 +    private Point2D convertLocalPoint(Point2D point, Rectangle2D bounds) {
  21.226 +        point.setLocation(
  21.227 +                bounds.getX() + (point.getX() * bounds.getWidth()),
  21.228 +                bounds.getY() + (point.getY() * bounds.getHeight())
  21.229 +        );
  21.230 +        return point;
  21.231 +    }
  21.232 +
  21.233 +    private Point2D convertScreenPoint(Point2D point, Rectangle2D bounds) {
  21.234 +        return new Point2D.Double(
  21.235 +                (point.getX() - bounds.getX()) / bounds.getWidth(),
  21.236 +                (point.getY() - bounds.getY()) / bounds.getHeight()
  21.237 +        );
  21.238 +    }
  21.239 +
  21.240 +    // =================================================================================================================
  21.241 +    // Gradient ControlPoint
  21.242 +
  21.243 +    /**
  21.244 +     * A Special ControlPoint thats internal values are in coordinates relative to the shapes bounds. With 0,0 being the
  21.245 +     * top left of the shape and 1.0X == shape width and 1.0Y == shapes height.
  21.246 +     */
  21.247 +    public class PaintControlPoint extends ControlPoint {
  21.248 +        public PaintControlPoint() {
  21.249 +            super(GraphicsHelper.FILL_CP_FILL, GraphicsHelper.FILL_CP_LINE);
  21.250 +        }
  21.251 +
  21.252 +        public PaintControlPoint(DoubleBean x, DoubleBean y) {
  21.253 +            super(x, y, GraphicsHelper.FILL_CP_FILL, GraphicsHelper.FILL_CP_LINE);
  21.254 +        }
  21.255 +
  21.256 +        public void paintControls(Graphics2D g2, double pixelSize, boolean paintControlLines) {
  21.257 +            Point2D p = convertLocalPoint(getPosition(), PaintedShape.this.getBounds(0));
  21.258 +            g2.setStroke(new BasicStroke((float) pixelSize));
  21.259 +            double size = pixelSize * 4d;
  21.260 +            Shape s = new Ellipse2D.Double(p.getX() - size, p.getY() - size,
  21.261 +                    size * 2, size * 2);
  21.262 +            g2.setPaint(new GradientPaint(
  21.263 +                    (float) p.getX(), (float) (p.getY() - size), Color.CYAN,
  21.264 +                    (float) p.getX(), (float) (p.getY() + size), Color.WHITE
  21.265 +            ));
  21.266 +            g2.fill(s);
  21.267 +            g2.setColor(GraphicsHelper.FILL_CP_LINE);
  21.268 +            g2.draw(s);
  21.269 +        }
  21.270 +
  21.271 +        public void move(double moveX, double moveY, boolean snapPixels) {
  21.272 +            Rectangle2D bounds = PaintedShape.this.getBounds(0);
  21.273 +            moveX = moveX / bounds.getWidth();
  21.274 +            moveY = moveY / bounds.getHeight();
  21.275 +            if (snapPixels) {
  21.276 +                // snap to neareast 0.5
  21.277 +                double newX = Math.round((x.getValue() + moveX) * 2d) / 2d;
  21.278 +                double newY = Math.round((y.getValue() + moveY) * 2d) / 2d;
  21.279 +                setPosition(newX, newY);
  21.280 +            } else {
  21.281 +                setPosition(x.getValue() + moveX, y.getValue() + moveY);
  21.282 +            }
  21.283 +        }
  21.284 +
  21.285 +        public Rectangle2D getBounds(double pixelSize) {
  21.286 +            Point2D p = convertLocalPoint(getPosition(), PaintedShape.this.getBounds(0));
  21.287 +            double size = pixelSize * 4d;
  21.288 +            return new Rectangle2D.Double(p.getX() - size, p.getY() - size,
  21.289 +                    size * 2, size * 2);
  21.290 +        }
  21.291 +    }
  21.292 +}
    22.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    22.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/PathShape.java	Wed Apr 29 00:27:46 2009 -0700
    22.3 @@ -0,0 +1,194 @@
    22.4 +/*
    22.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    22.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    22.7 + *
    22.8 + * This code is free software; you can redistribute it and/or modify it
    22.9 + * under the terms of the GNU General Public License version 2 only, as
   22.10 + * published by the Free Software Foundation.  Sun designates this
   22.11 + * particular file as subject to the "Classpath" exception as provided
   22.12 + * by Sun in the LICENSE file that accompanied this code.
   22.13 + *
   22.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   22.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   22.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   22.17 + * version 2 for more details (a copy is included in the LICENSE file that
   22.18 + * accompanied this code).
   22.19 + *
   22.20 + * You should have received a copy of the GNU General Public License version
   22.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   22.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   22.23 + *
   22.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   22.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   22.26 + * have any questions.
   22.27 + */
   22.28 +package org.jdesktop.swingx.designer;
   22.29 +
   22.30 +import javax.swing.*;
   22.31 +import java.awt.*;
   22.32 +import java.awt.geom.GeneralPath;
   22.33 +import java.awt.geom.Point2D;
   22.34 +import java.awt.geom.Rectangle2D;
   22.35 +import java.beans.PropertyChangeEvent;
   22.36 +import java.beans.PropertyChangeListener;
   22.37 +import java.util.ArrayList;
   22.38 +import java.util.List;
   22.39 +
   22.40 +/**
   22.41 + * PathShape
   22.42 + *
   22.43 + * @author Created by Jasper Potts (May 29, 2007)
   22.44 + */
   22.45 +public class PathShape extends PaintedShape {
   22.46 +
   22.47 +    private Shape cachedShape = null;
   22.48 +    private List<BezierControlPoint> controlPoints = new ArrayList<BezierControlPoint>();
   22.49 +    private PropertyChangeListener cpListener = new PropertyChangeListener() {
   22.50 +        public void propertyChange(PropertyChangeEvent evt) {
   22.51 +            rebuildShape();
   22.52 +        }
   22.53 +    };
   22.54 +
   22.55 +    // =================================================================================================================
   22.56 +    // Constructors
   22.57 +
   22.58 +    /** private noargs constructor for JIBX */
   22.59 +    private PathShape() {
   22.60 +        this(null);
   22.61 +    }
   22.62 +
   22.63 +    public PathShape(UIDefaults canvasUiDefaults) {
   22.64 +        super(canvasUiDefaults);
   22.65 +    }
   22.66 +
   22.67 +    public BezierControlPoint addPoint(double x, double y) {
   22.68 +        BezierControlPoint cp = new BezierControlPoint(x, y);
   22.69 +        controlPoints.add(cp);
   22.70 +        cp.addPropertyChangeListener(cpListener);
   22.71 +        // update shape
   22.72 +        rebuildShape();
   22.73 +        // return new control point
   22.74 +        return cp;
   22.75 +    }
   22.76 +
   22.77 +    public Shape getShape() {
   22.78 +        if (cachedShape == null) {
   22.79 +            rebuildShape();
   22.80 +        }
   22.81 +        return cachedShape;
   22.82 +    }
   22.83 +
   22.84 +    private void rebuildShape() {
   22.85 +        GeneralPath path = new GeneralPath();
   22.86 +        BezierControlPoint first, last;
   22.87 +        first = last = controlPoints.get(0);
   22.88 +        path.moveTo((float) first.getX(), (float) first.getY());
   22.89 +        for (int i = 0; i < controlPoints.size(); i++) {
   22.90 +            BezierControlPoint controlPoint = controlPoints.get(i);
   22.91 +            if (last.getCp2().isSharp() && controlPoint.getCp1().isSharp()) {
   22.92 +                path.lineTo(controlPoint.getX(), controlPoint.getY());
   22.93 +            } else {
   22.94 +                path.curveTo(
   22.95 +                        (float) last.getCp2().getX(), (float) last.getCp2().getY(),
   22.96 +                        (float) controlPoint.getCp1().getX(), (float) controlPoint.getCp1().getY(),
   22.97 +                        (float) controlPoint.getX(), (float) controlPoint.getY()
   22.98 +                );
   22.99 +            }
  22.100 +            last = controlPoint;
  22.101 +        }
  22.102 +        // close path
  22.103 +        if (last.getCp2().isSharp() && first.getCp1().isSharp()) {
  22.104 +            path.lineTo(first.getX(), first.getY());
  22.105 +        } else {
  22.106 +            path.curveTo(
  22.107 +                    (float) last.getCp2().getX(), (float) last.getCp2().getY(),
  22.108 +                    (float) first.getCp1().getX(), (float) first.getCp1().getY(),
  22.109 +                    (float) first.getX(), (float) first.getY()
  22.110 +            );
  22.111 +        }
  22.112 +        path.closePath();
  22.113 +        // fire change
  22.114 +        cachedShape = path;
  22.115 +        firePropertyChange("shape", null, cachedShape);
  22.116 +    }
  22.117 +
  22.118 +    @Override
  22.119 +    public String toString() {
  22.120 +        String p = "PATH {\n";
  22.121 +        BezierControlPoint first, last;
  22.122 +        first = last = controlPoints.get(0);
  22.123 +        p += "   path.moveTo(" + first.getX() + "," + first.getY() + ");";
  22.124 +        for (int i = 0; i < controlPoints.size(); i++) {
  22.125 +            BezierControlPoint controlPoint = controlPoints.get(i);
  22.126 +            p += "   path.curveTo(" +
  22.127 +                    (float) last.getCp2().getX() + "," + (float) last.getCp2().getY() + "," +
  22.128 +                    (float) controlPoint.getCp1().getX() + "," + (float) controlPoint.getCp1().getY() + "," +
  22.129 +                    (float) controlPoint.getX() + "," + (float) controlPoint.getY() +
  22.130 +                    ");\n";
  22.131 +            last = controlPoint;
  22.132 +        }
  22.133 +        // close path
  22.134 +        p += "   path.curveTo(" +
  22.135 +                (float) last.getCp2().getX() + "," + (float) last.getCp2().getY() + "," +
  22.136 +                (float) first.getCp1().getX() + "," + (float) first.getCp1().getY() + "," +
  22.137 +                (float) first.getX() + "," + (float) first.getY() +
  22.138 +                ");\n";
  22.139 +        p += "}\n";
  22.140 +        return p;
  22.141 +    }
  22.142 +
  22.143 +    // =================================================================================================================
  22.144 +    // Shape Methods
  22.145 +
  22.146 +    public Rectangle2D getBounds(double pixelSize) {
  22.147 +        return getShape().getBounds2D();
  22.148 +    }
  22.149 +
  22.150 +    public List<? extends ControlPoint> getControlPoints() {
  22.151 +        List<ControlPoint> pts = new ArrayList<ControlPoint>();
  22.152 +        for (BezierControlPoint controlPoint : controlPoints) {
  22.153 +            pts.add(controlPoint);
  22.154 +        }
  22.155 +        for (ControlPoint controlPoint : super.getControlPoints()) {
  22.156 +            pts.add(controlPoint);
  22.157 +        }
  22.158 +        return pts;
  22.159 +    }
  22.160 +
  22.161 +    public void setControlPoints(List<BezierControlPoint> controlPoints) {
  22.162 +        List<BezierControlPoint> old = this.controlPoints;
  22.163 +        for (BezierControlPoint cp : old) {
  22.164 +            cp.removePropertyChangeListener(cpListener);
  22.165 +        }
  22.166 +        this.controlPoints = controlPoints;
  22.167 +        for (BezierControlPoint cp : this.controlPoints) {
  22.168 +            cp.addPropertyChangeListener(cpListener);
  22.169 +        }
  22.170 +        // update shape
  22.171 +        rebuildShape();
  22.172 +    }
  22.173 +
  22.174 +    public boolean isHit(Point2D p, double pixelSize) {
  22.175 +        return getShape().contains(p);
  22.176 +    }
  22.177 +
  22.178 +    public void paint(Graphics2D g2, double pixelSize) {
  22.179 +        g2.setPaint(getPaint());
  22.180 +        g2.fill(getShape());
  22.181 +    }
  22.182 +
  22.183 +    public void paintControls(Graphics2D g2, double pixelSize, boolean paintControlLines) {
  22.184 +        if (paintControlLines) {
  22.185 +            g2.setStroke(new BasicStroke((float) pixelSize));
  22.186 +            g2.setColor(GraphicsHelper.CONTROL_LINE);
  22.187 +            g2.draw(getShape());
  22.188 +        }
  22.189 +        for (BezierControlPoint controlPoint : controlPoints) {
  22.190 +            if (!controlPoint.isSharpCorner()) controlPoint.paintControls(g2, pixelSize, true);
  22.191 +        }
  22.192 +    }
  22.193 +
  22.194 +    public List<BezierControlPoint> getBezierControlPoints() {
  22.195 +        return controlPoints;
  22.196 +    }
  22.197 +}
    23.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    23.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/RectangleShape.java	Wed Apr 29 00:27:46 2009 -0700
    23.3 @@ -0,0 +1,266 @@
    23.4 +/*
    23.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    23.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    23.7 + *
    23.8 + * This code is free software; you can redistribute it and/or modify it
    23.9 + * under the terms of the GNU General Public License version 2 only, as
   23.10 + * published by the Free Software Foundation.  Sun designates this
   23.11 + * particular file as subject to the "Classpath" exception as provided
   23.12 + * by Sun in the LICENSE file that accompanied this code.
   23.13 + *
   23.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   23.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   23.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   23.17 + * version 2 for more details (a copy is included in the LICENSE file that
   23.18 + * accompanied this code).
   23.19 + *
   23.20 + * You should have received a copy of the GNU General Public License version
   23.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   23.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   23.23 + *
   23.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   23.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   23.26 + * have any questions.
   23.27 + */
   23.28 +package org.jdesktop.swingx.designer;
   23.29 +
   23.30 +import javax.swing.*;
   23.31 +import java.awt.*;
   23.32 +import java.awt.geom.Ellipse2D;
   23.33 +import java.awt.geom.Point2D;
   23.34 +import java.awt.geom.Rectangle2D;
   23.35 +import java.awt.geom.RoundRectangle2D;
   23.36 +import java.beans.PropertyChangeEvent;
   23.37 +import java.beans.PropertyChangeListener;
   23.38 +import java.util.ArrayList;
   23.39 +import java.util.List;
   23.40 +
   23.41 +/**
   23.42 + * RectangleShape
   23.43 + *
   23.44 + * @author Created by Jasper Potts (May 22, 2007)
   23.45 + */
   23.46 +public class RectangleShape extends PaintedShape {
   23.47 +
   23.48 +    private DoubleBean x1 = new DoubleBean();
   23.49 +    private DoubleBean x2 = new DoubleBean();
   23.50 +    private DoubleBean y1 = new DoubleBean();
   23.51 +    private DoubleBean y2 = new DoubleBean();
   23.52 +    private ControlPoint tl = new ControlPoint(x1, y1);
   23.53 +    private ControlPoint tr = new ControlPoint(x2, y1);
   23.54 +    private ControlPoint bl = new ControlPoint(x1, y2);
   23.55 +    private ControlPoint br = new ControlPoint(x2, y2);
   23.56 +    private DoubleBean roundingX = new DoubleBean() {
   23.57 +        public void setValue(double value) {
   23.58 +            // contrain y = y1 and x is between x1+1 and (x2-x1)/2
   23.59 +            boolean x1isLess = x1.getValue() < x2.getValue();
   23.60 +            double min = x1isLess ? x1.getValue() + 1 : x1.getValue() - 1;
   23.61 +            double max = x1isLess ? x1.getValue() + ((x2.getValue() - x1.getValue()) / 2) :
   23.62 +                    x2.getValue() + ((x1.getValue() - x2.getValue()) / 2);
   23.63 +            double newX = value;
   23.64 +            if (newX < min) newX = min;
   23.65 +            if (newX > max) newX = max;
   23.66 +            super.setValue(newX);
   23.67 +        }
   23.68 +    };
   23.69 +    private ControlPoint rounding = new ControlPoint(roundingX, y1) {
   23.70 +        public void paintControls(Graphics2D g2, double pixelSize, boolean paintControlLines) {
   23.71 +            double size = pixelSize * 3d;
   23.72 +            Shape s = new Ellipse2D.Double(getX() - size, getY() - size,
   23.73 +                    size * 2, size * 2);
   23.74 +            g2.setColor(GraphicsHelper.BEZIER_CONTROL_POINT_FILL);
   23.75 +            g2.fill(s);
   23.76 +            g2.setColor(GraphicsHelper.BEZIER_CONTROL_POINT_LINE);
   23.77 +            g2.draw(s);
   23.78 +        }
   23.79 +
   23.80 +        public void setPosition(Point2D position) {
   23.81 +            // only alow X to change
   23.82 +            x.setValue(position.getX());
   23.83 +        }
   23.84 +
   23.85 +    };
   23.86 +
   23.87 +    // =================================================================================================================
   23.88 +    // Constructors
   23.89 +
   23.90 +    /** private noargs constructor for JIBX */
   23.91 +    private RectangleShape() {
   23.92 +        this(null);
   23.93 +    }
   23.94 +
   23.95 +    public RectangleShape(UIDefaults canvasUiDefaults) {
   23.96 +        super(canvasUiDefaults);
   23.97 +        x1.addPropertyChangeListener(new PropertyChangeListener() {
   23.98 +            public void propertyChange(PropertyChangeEvent evt) {
   23.99 +                // keep rounding point in sync
  23.100 +                roundingX.setValue(roundingX.getValue() +
  23.101 +                        ((Double) evt.getNewValue() - (Double) evt.getOldValue()));
  23.102 +                firePropertyChange("bounds", null, getBounds(0));
  23.103 +            }
  23.104 +        });
  23.105 +        x2.addPropertyChangeListener(new PropertyChangeListener() {
  23.106 +            public void propertyChange(PropertyChangeEvent evt) {
  23.107 +                // keep rounding point in sync
  23.108 +                double distanceFromX1 = Math.abs(roundingX.getValue() - x1.getValue());
  23.109 +                roundingX.setValue(
  23.110 +                        (x1.getValue() < x2.getValue()) ? x1.getValue() + distanceFromX1 :
  23.111 +                                x1.getValue() - distanceFromX1
  23.112 +                );
  23.113 +                firePropertyChange("bounds", null, getBounds(0));
  23.114 +            }
  23.115 +        });
  23.116 +        PropertyChangeListener listener = new PropertyChangeListener() {
  23.117 +            public void propertyChange(PropertyChangeEvent evt) {
  23.118 +                firePropertyChange("bounds", null, getBounds(0));
  23.119 +            }
  23.120 +        };
  23.121 +        y1.addPropertyChangeListener(listener);
  23.122 +        y2.addPropertyChangeListener(listener);
  23.123 +        rounding.addPropertyChangeListener(listener);
  23.124 +    }
  23.125 +
  23.126 +    public RectangleShape(double x, double y, double w, double h) {
  23.127 +        this();
  23.128 +        x1.setValue(x);
  23.129 +        y1.setValue(y);
  23.130 +        x2.setValue(x + w);
  23.131 +        y2.setValue(y + h);
  23.132 +    }
  23.133 +
  23.134 +    public Shape getShape() {
  23.135 +        double rounding = getRounding();
  23.136 +        double left = Math.min(x1.getValue(), x2.getValue());
  23.137 +        double right = Math.max(x1.getValue(), x2.getValue());
  23.138 +        double top = Math.min(y1.getValue(), y2.getValue());
  23.139 +        double bottom = Math.max(y1.getValue(), y2.getValue());
  23.140 +        if (rounding > 0) {
  23.141 +            return new RoundRectangle2D.Double(
  23.142 +                    left, top, right - left, bottom - top, rounding, rounding
  23.143 +            );
  23.144 +        } else {
  23.145 +            return new Rectangle2D.Double(left, top, right - left, bottom - top);
  23.146 +        }
  23.147 +    }
  23.148 +
  23.149 +    public double getRounding() {
  23.150 +        double rounding = Math.abs(roundingX.getValue() - x1.getValue()) * 2;
  23.151 +        return rounding > 2 ? rounding : 0;
  23.152 +    }
  23.153 +
  23.154 +    public void setRounding(double rounding) {
  23.155 +        if (rounding > 0 && rounding < 2) rounding = 0;
  23.156 +        roundingX.setValue((rounding / 2d) + x1.getValue());
  23.157 +    }
  23.158 +
  23.159 +    public boolean isRounded() {
  23.160 +        return getRounding() > 0;
  23.161 +    }
  23.162 +
  23.163 +    public double getX1() {
  23.164 +        return x1.getValue();
  23.165 +    }
  23.166 +
  23.167 +    public void setX1(double x1) {
  23.168 +        this.x1.setValue(x1);
  23.169 +    }
  23.170 +
  23.171 +    public double getX2() {
  23.172 +        return x2.getValue();
  23.173 +    }
  23.174 +
  23.175 +    public void setX2(double x2) {
  23.176 +        this.x2.setValue(x2);
  23.177 +    }
  23.178 +
  23.179 +    public double getY1() {
  23.180 +        return y1.getValue();
  23.181 +    }
  23.182 +
  23.183 +    public void setY1(double y1) {
  23.184 +        this.y1.setValue(y1);
  23.185 +    }
  23.186 +
  23.187 +    public double getY2() {
  23.188 +        return y2.getValue();
  23.189 +    }
  23.190 +
  23.191 +    public void setY2(double y2) {
  23.192 +        this.y2.setValue(y2);
  23.193 +    }
  23.194 +
  23.195 +    // =================================================================================================================
  23.196 +    // SimpleShape Methods
  23.197 +
  23.198 +    public Rectangle2D getBounds(double pixelSize) {
  23.199 +        double left = Math.min(x1.getValue(), x2.getValue());
  23.200 +        double right = Math.max(x1.getValue(), x2.getValue());
  23.201 +        double top = Math.min(y1.getValue(), y2.getValue());
  23.202 +        double bottom = Math.max(y1.getValue(), y2.getValue());
  23.203 +        return new Rectangle2D.Double(left, top, right - left, bottom - top);
  23.204 +    }
  23.205 +
  23.206 +    public boolean isHit(Point2D p, double pixelSize) {
  23.207 +        return getShape().contains(p);
  23.208 +    }
  23.209 +
  23.210 +    public void paint(Graphics2D g2, double pixelSize) {
  23.211 +        g2.setPaint(getPaint());
  23.212 +        g2.fill(getShape());
  23.213 +    }
  23.214 +
  23.215 +    public void setFrame(double x1, double y1, double x2, double y2) {
  23.216 +        this.x1.setValue(x1);
  23.217 +        this.y1.setValue(y1);
  23.218 +        this.x2.setValue(x2);
  23.219 +        this.y2.setValue(y2);
  23.220 +    }
  23.221 +
  23.222 +    @Override
  23.223 +    public String toString() {
  23.224 +        Rectangle2D bounds = getBounds(0);
  23.225 +        if (isRounded()) {
  23.226 +            return "ROUND RECT { x=" +  bounds.getX() + ", y=" + bounds.getY() + ", w=" + bounds.getWidth() + ", h=" + bounds.getHeight() + ", rounding=" + getRounding() + " }";
  23.227 +        } else {
  23.228 +            return "ROUND RECT { x=" +  bounds.getX() + ", y=" + bounds.getY() + ", w=" + bounds.getWidth() + ", h=" + bounds.getHeight() + " }";
  23.229 +        }
  23.230 +    }
  23.231 +
  23.232 +    public List<ControlPoint> getControlPoints() {
  23.233 +        List<ControlPoint> points = new ArrayList<ControlPoint>();
  23.234 +        points.addAll(super.getControlPoints());
  23.235 +        points.add(tl);
  23.236 +        points.add(tr);
  23.237 +        points.add(bl);
  23.238 +        points.add(br);
  23.239 +        points.add(rounding);
  23.240 +        return points;
  23.241 +    }
  23.242 +
  23.243 +    public void paintControls(Graphics2D g2, double pixelSize, boolean paintControlLines) {
  23.244 +        if (paintControlLines) {
  23.245 +            g2.setStroke(new BasicStroke((float) pixelSize));
  23.246 +            g2.setColor(GraphicsHelper.CONTROL_LINE);
  23.247 +            g2.draw(getShape());
  23.248 +        }
  23.249 +        tl.paintControls(g2, pixelSize, true);
  23.250 +        tr.paintControls(g2, pixelSize, true);
  23.251 +        bl.paintControls(g2, pixelSize, true);
  23.252 +        br.paintControls(g2, pixelSize, true);
  23.253 +        rounding.paintControls(g2, pixelSize, true);
  23.254 +    }
  23.255 +
  23.256 +    public void move(double moveX, double moveY, boolean snapPixels) {
  23.257 +        if (snapPixels) {
  23.258 +            x1.setValue(Math.round(x1.getValue() + moveX));
  23.259 +            x2.setValue(Math.round(x2.getValue() + moveX));
  23.260 +            y1.setValue(Math.round(y1.getValue() + moveY));
  23.261 +            y2.setValue(Math.round(y2.getValue() + moveY));
  23.262 +        } else {
  23.263 +            x1.setValue(x1.getValue() + moveX);
  23.264 +            x2.setValue(x2.getValue() + moveX);
  23.265 +            y1.setValue(y1.getValue() + moveY);
  23.266 +            y2.setValue(y2.getValue() + moveY);
  23.267 +        }
  23.268 +    }
  23.269 +}
    24.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    24.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/SimpleShape.java	Wed Apr 29 00:27:46 2009 -0700
    24.3 @@ -0,0 +1,81 @@
    24.4 +/*
    24.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    24.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    24.7 + *
    24.8 + * This code is free software; you can redistribute it and/or modify it
    24.9 + * under the terms of the GNU General Public License version 2 only, as
   24.10 + * published by the Free Software Foundation.  Sun designates this
   24.11 + * particular file as subject to the "Classpath" exception as provided
   24.12 + * by Sun in the LICENSE file that accompanied this code.
   24.13 + *
   24.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   24.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   24.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   24.17 + * version 2 for more details (a copy is included in the LICENSE file that
   24.18 + * accompanied this code).
   24.19 + *
   24.20 + * You should have received a copy of the GNU General Public License version
   24.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   24.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   24.23 + *
   24.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   24.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   24.26 + * have any questions.
   24.27 + */
   24.28 +package org.jdesktop.swingx.designer;
   24.29 +
   24.30 +import org.jdesktop.beans.AbstractBean;
   24.31 +
   24.32 +import java.awt.Graphics2D;
   24.33 +import java.awt.Shape;
   24.34 +import java.awt.geom.AffineTransform;
   24.35 +import java.awt.geom.Point2D;
   24.36 +import java.awt.geom.Rectangle2D;
   24.37 +import java.util.List;
   24.38 +
   24.39 +/**
   24.40 + * SimpleShape
   24.41 + *
   24.42 + * @author Created by Jasper Potts (May 22, 2007)
   24.43 + */
   24.44 +public abstract class SimpleShape extends AbstractBean {
   24.45 +
   24.46 +    protected AffineTransform transform = new AffineTransform();
   24.47 +    protected LayerContainer parent = null;
   24.48 +
   24.49 +    public void applyTransform(AffineTransform t) {
   24.50 +        transform.concatenate(t);
   24.51 +    }
   24.52 +
   24.53 +    public abstract Rectangle2D getBounds(double pixelSize);
   24.54 +
   24.55 +    public abstract void paint(Graphics2D g2, double pixelSize);
   24.56 +
   24.57 +    public abstract boolean isHit(Point2D p, double pixelSize);
   24.58 +
   24.59 +    public boolean intersects(Rectangle2D rect, double pixelSize) {
   24.60 +        return getBounds(pixelSize).intersects(rect);
   24.61 +    }
   24.62 +
   24.63 +    public abstract List<? extends ControlPoint> getControlPoints();
   24.64 +
   24.65 +    public abstract void paintControls(Graphics2D g2, double pixelSize, boolean paintControlLines);
   24.66 +
   24.67 +    public void move(double moveX, double moveY, boolean snapPixels) {
   24.68 +        for (ControlPoint controlPoint : getControlPoints()) {
   24.69 +            controlPoint.move(moveX, moveY, snapPixels);
   24.70 +        }
   24.71 +    }
   24.72 +
   24.73 +    public LayerContainer getParent() {
   24.74 +        return parent;
   24.75 +    }
   24.76 +
   24.77 +    public void setParent(LayerContainer parent) {
   24.78 +        LayerContainer old = getParent();
   24.79 +        this.parent = parent;
   24.80 +        firePropertyChange("parent", old, getParent());
   24.81 +    }
   24.82 +
   24.83 +    public abstract Shape getShape();
   24.84 +}
    25.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    25.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/TemplateLayer.java	Wed Apr 29 00:27:46 2009 -0700
    25.3 @@ -0,0 +1,142 @@
    25.4 +/*
    25.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    25.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    25.7 + *
    25.8 + * This code is free software; you can redistribute it and/or modify it
    25.9 + * under the terms of the GNU General Public License version 2 only, as
   25.10 + * published by the Free Software Foundation.  Sun designates this
   25.11 + * particular file as subject to the "Classpath" exception as provided
   25.12 + * by Sun in the LICENSE file that accompanied this code.
   25.13 + *
   25.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   25.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   25.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   25.17 + * version 2 for more details (a copy is included in the LICENSE file that
   25.18 + * accompanied this code).
   25.19 + *
   25.20 + * You should have received a copy of the GNU General Public License version
   25.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   25.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   25.23 + *
   25.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   25.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   25.26 + * have any questions.
   25.27 + */
   25.28 +package org.jdesktop.swingx.designer;
   25.29 +
   25.30 +import org.jdesktop.swingx.designer.effects.Effect;
   25.31 +
   25.32 +import javax.imageio.ImageIO;
   25.33 +import javax.swing.JOptionPane;
   25.34 +import javax.swing.SwingUtilities;
   25.35 +import java.awt.Color;
   25.36 +import java.awt.FontMetrics;
   25.37 +import java.awt.Graphics2D;
   25.38 +import java.awt.GraphicsConfiguration;
   25.39 +import java.awt.Image;
   25.40 +import java.awt.geom.Rectangle2D;
   25.41 +import java.awt.image.BufferedImage;
   25.42 +import java.io.File;
   25.43 +import java.io.IOException;
   25.44 +import java.lang.ref.SoftReference;
   25.45 +
   25.46 +/**
   25.47 + * TemplateLayer
   25.48 + *
   25.49 + * @author Created by Jasper Potts (Jul 2, 2007)
   25.50 + */
   25.51 +public class TemplateLayer extends Layer {
   25.52 +
   25.53 +    private String fileName;
   25.54 +    private transient SoftReference<BufferedImage> imgRef = null;
   25.55 +
   25.56 +    public TemplateLayer() {
   25.57 +        type = LayerType.template;
   25.58 +    }
   25.59 +
   25.60 +    public TemplateLayer(String fileName, BufferedImage templateImage) {
   25.61 +        super("Template");
   25.62 +        this.fileName = fileName;
   25.63 +        type = LayerType.template;
   25.64 +        if (templateImage != null) {
   25.65 +            imgRef = new SoftReference<BufferedImage>(templateImage);
   25.66 +        }
   25.67 +    }
   25.68 +
   25.69 +    // =================================================================================================================
   25.70 +    // Methods
   25.71 +
   25.72 +    public String getName() {
   25.73 +        return super.getName();
   25.74 +    }
   25.75 +
   25.76 +    /**
   25.77 +     * template layers are always locked
   25.78 +     *
   25.79 +     * @return <code>true</code>
   25.80 +     */
   25.81 +    public boolean isLocked() {
   25.82 +        return true;
   25.83 +    }
   25.84 +
   25.85 +    public void add(SimpleShape shape) {
   25.86 +        throw new IllegalStateException("Template layers can't contain shapes");
   25.87 +    }
   25.88 +
   25.89 +    public void addEffect(Effect effect) {
   25.90 +        throw new IllegalStateException("Template layers can't contain effects");
   25.91 +    }
   25.92 +
   25.93 +    public void addLayer(int i, Layer layer) {
   25.94 +        throw new IllegalStateException("Template layers can't contain sub layers");
   25.95 +    }
   25.96 +
   25.97 +    public void addLayer(Layer layer) {
   25.98 +        throw new IllegalStateException("Template layers can't contain sub layers");
   25.99 +    }
  25.100 +
  25.101 +    public void paint(Graphics2D g2, double pixelSize) {
  25.102 +        if (isVisible()) {
  25.103 +            BufferedImage img = getTemplateImage();
  25.104 +            if (img != null) g2.drawImage(img, 0, 0, null);
  25.105 +        }
  25.106 +    }
  25.107 +
  25.108 +
  25.109 +    public Image getBuffer(GraphicsConfiguration graphicsConfiguration) {
  25.110 +        return getTemplateImage();
  25.111 +    }
  25.112 +
  25.113 +    public BufferedImage getTemplateImage() {
  25.114 +        BufferedImage img = null;
  25.115 +        if (imgRef == null || (img = imgRef.get()) == null) {
  25.116 +
  25.117 +            // can not access canvas
  25.118 +            final File templateImgFile = new File(getCanvas().getTemplatesDir(), fileName);
  25.119 +            System.out.println("templateImgFile = " + templateImgFile.getAbsolutePath());
  25.120 +            System.out.println("templateImgFile.exists = " + templateImgFile.exists());
  25.121 +            try {
  25.122 +                img = ImageIO.read(templateImgFile);
  25.123 +                imgRef = new SoftReference<BufferedImage>(img);
  25.124 +            } catch (IOException e) {
  25.125 +                e.printStackTrace();
  25.126 +                // create error image
  25.127 +                img = new BufferedImage(getCanvas().getSize().width, getCanvas().getSize().height,
  25.128 +                        BufferedImage.TYPE_INT_RGB);
  25.129 +                Graphics2D g2 = img.createGraphics();
  25.130 +                g2.setColor(Color.RED);
  25.131 +                g2.fillRect(0, 0, img.getWidth(), img.getHeight());
  25.132 +                g2.setColor(Color.WHITE);
  25.133 +                g2.setFont(g2.getFont().deriveFont(8f));
  25.134 +                FontMetrics fontMetrics = g2.getFontMetrics();
  25.135 +                Rectangle2D stringBounds = fontMetrics.getStringBounds("Missing Image", g2);
  25.136 +                int offsetX = (int) ((img.getWidth() - stringBounds.getWidth()) / 2d);
  25.137 +                int offsetY = (int) (((img.getHeight() - stringBounds.getHeight()) / 2d) - stringBounds.getY());
  25.138 +                g2.drawString("Missing Image", offsetX, offsetY);
  25.139 +                g2.dispose();
  25.140 +                imgRef = new SoftReference<BufferedImage>(img);
  25.141 +            }
  25.142 +        }
  25.143 +        return img;
  25.144 +    }
  25.145 +}
    26.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    26.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/effects/DropShadowEffect.java	Wed Apr 29 00:27:46 2009 -0700
    26.3 @@ -0,0 +1,137 @@
    26.4 +/*
    26.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    26.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    26.7 + *
    26.8 + * This code is free software; you can redistribute it and/or modify it
    26.9 + * under the terms of the GNU General Public License version 2 only, as
   26.10 + * published by the Free Software Foundation.  Sun designates this
   26.11 + * particular file as subject to the "Classpath" exception as provided
   26.12 + * by Sun in the LICENSE file that accompanied this code.
   26.13 + *
   26.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   26.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   26.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   26.17 + * version 2 for more details (a copy is included in the LICENSE file that
   26.18 + * accompanied this code).
   26.19 + *
   26.20 + * You should have received a copy of the GNU General Public License version
   26.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   26.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   26.23 + *
   26.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   26.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   26.26 + * have any questions.
   26.27 + */
   26.28 +package org.jdesktop.swingx.designer.effects;
   26.29 +
   26.30 +import org.jdesktop.swingx.designer.paint.Matte;
   26.31 +
   26.32 +import javax.swing.UIDefaults;
   26.33 +import java.awt.Color;
   26.34 +import java.awt.image.BufferedImage;
   26.35 +import java.awt.image.Raster;
   26.36 +import java.awt.image.WritableRaster;
   26.37 +import java.util.Arrays;
   26.38 +
   26.39 +/**
   26.40 + * DropShadowEffect
   26.41 + *
   26.42 + * @author Created by Jasper Potts (Jun 18, 2007)
   26.43 + */
   26.44 +public class DropShadowEffect extends ShadowEffect {
   26.45 +
   26.46 +    protected DropShadowEffect() {}
   26.47 +
   26.48 +    ;
   26.49 +
   26.50 +    public DropShadowEffect(UIDefaults uiDefaults) {
   26.51 +        color = new Matte(Color.BLACK, uiDefaults);
   26.52 +    }
   26.53 +
   26.54 +    // =================================================================================================================
   26.55 +    // Effect Methods
   26.56 +
   26.57 +    /**
   26.58 +     * Get the display name for this effect
   26.59 +     *
   26.60 +     * @return The user displayable name
   26.61 +     */
   26.62 +    public String getDisplayName() {
   26.63 +        return "Drop Shadow";
   26.64 +    }
   26.65 +
   26.66 +    /**
   26.67 +     * Get the type of this effect, one of UNDER,BLENDED,OVER. UNDER means the result of apply effect should be painted
   26.68 +     * under the src image. BLENDED means the result of apply sffect contains a modified src image so just it should be
   26.69 +     * painted. OVER means the result of apply effect should be painted over the src image.
   26.70 +     *
   26.71 +     * @return The effect type
   26.72 +     */
   26.73 +    public EffectType getEffectType() {
   26.74 +        return EffectType.UNDER;
   26.75 +    }
   26.76 +
   26.77 +    /**
   26.78 +     * Apply the effect to the src image generating the result . The result image may or may not contain the source
   26.79 +     * image depending on what the effect type is.
   26.80 +     *
   26.81 +     * @param src The source image for applying the effect to
   26.82 +     * @param dst The dstination image to paint effect result into. If this is null then a new image will be created
   26.83 +     * @param w   The width of the src image to apply effect to, this allow the src and dst buffers to be bigger than
   26.84 +     *            the area the need effect applied to it
   26.85 +     * @param h   The height of the src image to apply effect to, this allow the src and dst buffers to be bigger than
   26.86 +     *            the area the need effect applied to it
   26.87 +     * @return The result of appl
   26.88 +     */
   26.89 +    public BufferedImage applyEffect(BufferedImage src, BufferedImage dst, int w, int h) {
   26.90 +        // calculate offset
   26.91 +        double trangleAngle = Math.toRadians(angle - 90);
   26.92 +        int offsetX = (int) (Math.sin(trangleAngle) * distance);
   26.93 +        int offsetY = (int) (Math.cos(trangleAngle) * distance);
   26.94 +        // clac expanded size
   26.95 +        int tmpOffX = offsetX + size;
   26.96 +        int tmpOffY = offsetY + size;
   26.97 +        int tmpW = w + offsetX + size + size;
   26.98 +        int tmpH = h + offsetY + size + size;
   26.99 +        // create tmp buffers
  26.100 +        int[] lineBuf = getTmpIntArray(w);
  26.101 +        byte[] tmpBuf1 = getTmpByteArray1(tmpW * tmpH);
  26.102 +        Arrays.fill(tmpBuf1, (byte) 0x00);
  26.103 +        byte[] tmpBuf2 = getTmpByteArray2(tmpW * tmpH);
  26.104 +        // extract src image alpha channel and inverse and offset
  26.105 +        Raster srcRaster = src.getRaster();
  26.106 +        for (int y = 0; y < h; y++) {
  26.107 +            int dy = (y + tmpOffY);
  26.108 +            int offset = dy * tmpW;
  26.109 +            srcRaster.getDataElements(0, y, w, 1, lineBuf);
  26.110 +            for (int x = 0; x < w; x++) {
  26.111 +                int dx = x + tmpOffX;
  26.112 +                tmpBuf1[offset + dx] = (byte) ((lineBuf[x] & 0xFF000000) >>> 24);
  26.113 +            }
  26.114 +        }
  26.115 +        // blur
  26.116 +        float[] kernel = EffectUtils.createGaussianKernel(size);
  26.117 +        EffectUtils.blur(tmpBuf1, tmpBuf2, tmpW, tmpH, kernel, size); // horizontal pass
  26.118 +        EffectUtils.blur(tmpBuf2, tmpBuf1, tmpH, tmpW, kernel, size);// vertical pass
  26.119 +        //rescale
  26.120 +        float spread = Math.min(1 / (1 - (0.01f * this.spread)), 255);
  26.121 +        for (int i = 0; i < tmpBuf1.length; i++) {
  26.122 +            int val = (int) (((int) tmpBuf1[i] & 0xFF) * spread);
  26.123 +            tmpBuf1[i] = (val > 255) ? (byte) 0xFF : (byte) val;
  26.124 +        }
  26.125 +        // create color image with shadow color and greyscale image as alpha
  26.126 +        if (dst == null) dst = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
  26.127 +        WritableRaster shadowRaster = dst.getRaster();
  26.128 +        int red = color.getRed(), green = color.getGreen(), blue = color.getBlue();
  26.129 +        for (int y = 0; y < h; y++) {
  26.130 +            int srcY = y + tmpOffY;
  26.131 +            int shadowOffset = (srcY - offsetY) * tmpW;
  26.132 +            for (int x = 0; x < w; x++) {
  26.133 +                int srcX = x + tmpOffX;
  26.134 +                lineBuf[x] = tmpBuf1[shadowOffset + (srcX - offsetX)] << 24 | red << 16 | green << 8 | blue;
  26.135 +            }
  26.136 +            shadowRaster.setDataElements(0, y, w, 1, lineBuf);
  26.137 +        }
  26.138 +        return dst;
  26.139 +    }
  26.140 +}
    27.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    27.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/effects/Effect.java	Wed Apr 29 00:27:46 2009 -0700
    27.3 @@ -0,0 +1,153 @@
    27.4 +/*
    27.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    27.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    27.7 + *
    27.8 + * This code is free software; you can redistribute it and/or modify it
    27.9 + * under the terms of the GNU General Public License version 2 only, as
   27.10 + * published by the Free Software Foundation.  Sun designates this
   27.11 + * particular file as subject to the "Classpath" exception as provided
   27.12 + * by Sun in the LICENSE file that accompanied this code.
   27.13 + *
   27.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   27.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   27.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   27.17 + * version 2 for more details (a copy is included in the LICENSE file that
   27.18 + * accompanied this code).
   27.19 + *
   27.20 + * You should have received a copy of the GNU General Public License version
   27.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   27.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   27.23 + *
   27.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   27.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   27.26 + * have any questions.
   27.27 + */
   27.28 +package org.jdesktop.swingx.designer.effects;
   27.29 +
   27.30 +import org.jdesktop.beans.AbstractBean;
   27.31 +import org.jdesktop.swingx.designer.BlendingMode;
   27.32 +
   27.33 +import java.awt.image.BufferedImage;
   27.34 +import java.lang.ref.SoftReference;
   27.35 +
   27.36 +/**
   27.37 + * Effect
   27.38 + *
   27.39 + * @author Created by Jasper Potts (Jun 18, 2007)
   27.40 + */
   27.41 +public abstract class Effect extends AbstractBean {
   27.42 +    protected boolean visible = true;
   27.43 +
   27.44 +    public enum EffectType {
   27.45 +        UNDER, BLENDED, OVER
   27.46 +    }
   27.47 +
   27.48 +    public boolean isVisible() {
   27.49 +        return visible;
   27.50 +    }
   27.51 +
   27.52 +    public void setVisible(boolean visible) {
   27.53 +        boolean old = isVisible();
   27.54 +        this.visible = visible;
   27.55 +        firePropertyChange("visible", old, isVisible());
   27.56 +    }
   27.57 +
   27.58 +    public String toString() {
   27.59 +        return getDisplayName();
   27.60 +    }
   27.61 +
   27.62 +    // =================================================================================================================
   27.63 +    // Abstract Methods
   27.64 +
   27.65 +    /**
   27.66 +     * Get the display name for this effect
   27.67 +     *
   27.68 +     * @return The user displayable name
   27.69 +     */
   27.70 +    public abstract String getDisplayName();
   27.71 +
   27.72 +    /**
   27.73 +     * Get the type of this effect, one of UNDER,BLENDED,OVER. UNDER means the result of apply effect should be painted
   27.74 +     * under the src image. BLENDED means the result of apply sffect contains a modified src image so just it should be
   27.75 +     * painted. OVER means the result of apply effect should be painted over the src image.
   27.76 +     *
   27.77 +     * @return The effect type
   27.78 +     */
   27.79 +    public abstract EffectType getEffectType();
   27.80 +
   27.81 +    /**
   27.82 +     * Get the blending mode to use to paint the result effected image if the EffectType is UNDER or OVER.
   27.83 +     *
   27.84 +     * @return The blending mode for the effect
   27.85 +     */
   27.86 +    public abstract BlendingMode getBlendingMode();
   27.87 +
   27.88 +    /**
   27.89 +     * Get the opacity to use to paint the result effected image if the EffectType is UNDER or OVER.
   27.90 +     *
   27.91 +     * @return The opactity for the effect, 0.0f -> 1.0f
   27.92 +     */
   27.93 +    public abstract float getOpacity();
   27.94 +
   27.95 +    /**
   27.96 +     * Apply the effect to the src image generating the result . The result image may or may not contain the source
   27.97 +     * image depending on what the effect type is.
   27.98 +     *
   27.99 +     * @param src The source image for applying the effect to
  27.100 +     * @param dst The dstination image to paint effect result into. If this is null then a new image will be created
  27.101 +     * @param w   The width of the src image to apply effect to, this allow the src and dst buffers to be bigger than
  27.102 +     *            the area the need effect applied to it
  27.103 +     * @param h   The height of the src image to apply effect to, this allow the src and dst buffers to be bigger than
  27.104 +     *            the area the need effect applied to it
  27.105 +     * @return The result of appl
  27.106 +     */
  27.107 +    public abstract BufferedImage applyEffect(BufferedImage src, BufferedImage dst, int w, int h);
  27.108 +
  27.109 +    // =================================================================================================================
  27.110 +    // Static data cache
  27.111 +
  27.112 +    private static SoftReference<int[]> tmpIntArray = null;
  27.113 +    private static SoftReference<byte[]> tmpByteArray1 = null;
  27.114 +    private static SoftReference<byte[]> tmpByteArray2 = null;
  27.115 +    private static SoftReference<byte[]> tmpByteArray3 = null;
  27.116 +
  27.117 +    protected static int[] getTmpIntArray(int size) {
  27.118 +        int[] tmp;
  27.119 +        if (tmpIntArray == null || (tmp = tmpIntArray.get()) == null || tmp.length < size) {
  27.120 +            // create new array
  27.121 +            tmp = new int[size];
  27.122 +            tmpIntArray = new SoftReference<int[]>(tmp);
  27.123 +        }
  27.124 +        return tmp;
  27.125 +    }
  27.126 +
  27.127 +    protected static byte[] getTmpByteArray1(int size) {
  27.128 +        byte[] tmp;
  27.129 +        if (tmpByteArray1 == null || (tmp = tmpByteArray1.get()) == null || tmp.length < size) {
  27.130 +            // create new array
  27.131 +            tmp = new byte[size];
  27.132 +            tmpByteArray1 = new SoftReference<byte[]>(tmp);
  27.133 +        }
  27.134 +        return tmp;
  27.135 +    }
  27.136 +
  27.137 +    protected static byte[] getTmpByteArray2(int size) {
  27.138 +        byte[] tmp;
  27.139 +        if (tmpByteArray2 == null || (tmp = tmpByteArray2.get()) == null || tmp.length < size) {
  27.140 +            // create new array
  27.141 +            tmp = new byte[size];
  27.142 +            tmpByteArray2 = new SoftReference<byte[]>(tmp);
  27.143 +        }
  27.144 +        return tmp;
  27.145 +    }
  27.146 +
  27.147 +    protected static byte[] getTmpByteArray3(int size) {
  27.148 +        byte[] tmp;
  27.149 +        if (tmpByteArray3 == null || (tmp = tmpByteArray3.get()) == null || tmp.length < size) {
  27.150 +            // create new array
  27.151 +            tmp = new byte[size];
  27.152 +            tmpByteArray3 = new SoftReference<byte[]>(tmp);
  27.153 +        }
  27.154 +        return tmp;
  27.155 +    }
  27.156 +}
    28.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    28.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/effects/EffectUtils.java	Wed Apr 29 00:27:46 2009 -0700
    28.3 @@ -0,0 +1,99 @@
    28.4 +/*
    28.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    28.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    28.7 + *
    28.8 + * This code is free software; you can redistribute it and/or modify it
    28.9 + * under the terms of the GNU General Public License version 2 only, as
   28.10 + * published by the Free Software Foundation.  Sun designates this
   28.11 + * particular file as subject to the "Classpath" exception as provided
   28.12 + * by Sun in the LICENSE file that accompanied this code.
   28.13 + *
   28.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   28.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   28.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   28.17 + * version 2 for more details (a copy is included in the LICENSE file that
   28.18 + * accompanied this code).
   28.19 + *
   28.20 + * You should have received a copy of the GNU General Public License version
   28.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   28.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   28.23 + *
   28.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   28.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   28.26 + * have any questions.
   28.27 + */
   28.28 +package org.jdesktop.swingx.designer.effects;
   28.29 +
   28.30 +
   28.31 +/**
   28.32 + * EffectUtils
   28.33 + *
   28.34 + * @author Created by Jasper Potts (Jun 18, 2007)
   28.35 + */
   28.36 +public class EffectUtils {
   28.37 +
   28.38 +    /**
   28.39 +     * <p>Blurs the source pixels into the destination pixels. The force of the blur is specified by the radius which
   28.40 +     * must be greater than 0.</p> <p>The source and destination pixels arrays are expected to be in the BYTE_GREY
   28.41 +     * format.</p> <p>After this method is executed, dstPixels contains a transposed and filtered copy of
   28.42 +     * srcPixels.</p>
   28.43 +     *
   28.44 +     * @param srcPixels the source pixels
   28.45 +     * @param dstPixels the destination pixels
   28.46 +     * @param width     the width of the source picture
   28.47 +     * @param height    the height of the source picture
   28.48 +     * @param kernel    the kernel of the blur effect
   28.49 +     * @param radius    the radius of the blur effect
   28.50 +     */
   28.51 +    public static void blur(byte[] srcPixels, byte[] dstPixels,
   28.52 +                            int width, int height,
   28.53 +                            float[] kernel, int radius) {
   28.54 +        float p;
   28.55 +        int cp;
   28.56 +        for (int y = 0; y < height; y++) {
   28.57 +            int index = y;
   28.58 +            int offset = y * width;
   28.59 +            for (int x = 0; x < width; x++) {
   28.60 +                p = 0.0f;
   28.61 +                for (int i = -radius; i <= radius; i++) {
   28.62 +                    int subOffset = x + i;
   28.63 +                    if (subOffset < 0 || subOffset >= width) {
   28.64 +                        subOffset = (x + width) % width;
   28.65 +                    }
   28.66 +                    int pixel = srcPixels[offset + subOffset] & 0xFF;
   28.67 +                    float blurFactor = kernel[radius + i];
   28.68 +                    p += blurFactor * pixel;
   28.69 +                }
   28.70 +                cp = (int) (p + 0.5f);
   28.71 +                dstPixels[index] = (byte) (cp > 255 ? 255 : cp);
   28.72 +                index += height;
   28.73 +            }
   28.74 +        }
   28.75 +    }
   28.76 +
   28.77 +    public static float[] createGaussianKernel(int radius) {
   28.78 +        if (radius < 1) {
   28.79 +            throw new IllegalArgumentException("Radius must be >= 1");
   28.80 +        }
   28.81 +
   28.82 +        float[] data = new float[radius * 2 + 1];
   28.83 +
   28.84 +        float sigma = radius / 3.0f;
   28.85 +        float twoSigmaSquare = 2.0f * sigma * sigma;
   28.86 +        float sigmaRoot = (float) Math.sqrt(twoSigmaSquare * Math.PI);
   28.87 +        float total = 0.0f;
   28.88 +
   28.89 +        for (int i = -radius; i <= radius; i++) {
   28.90 +            float distance = i * i;
   28.91 +            int index = i + radius;
   28.92 +            data[index] = (float) Math.exp(-distance / twoSigmaSquare) / sigmaRoot;
   28.93 +            total += data[index];
   28.94 +        }
   28.95 +
   28.96 +        for (int i = 0; i < data.length; i++) {
   28.97 +            data[i] /= total;
   28.98 +        }
   28.99 +
  28.100 +        return data;
  28.101 +    }
  28.102 +}
    29.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    29.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/effects/EffectUtilsTemp.java	Wed Apr 29 00:27:46 2009 -0700
    29.3 @@ -0,0 +1,82 @@
    29.4 +/*
    29.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    29.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    29.7 + *
    29.8 + * This code is free software; you can redistribute it and/or modify it
    29.9 + * under the terms of the GNU General Public License version 2 only, as
   29.10 + * published by the Free Software Foundation.  Sun designates this
   29.11 + * particular file as subject to the "Classpath" exception as provided
   29.12 + * by Sun in the LICENSE file that accompanied this code.
   29.13 + *
   29.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   29.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   29.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   29.17 + * version 2 for more details (a copy is included in the LICENSE file that
   29.18 + * accompanied this code).
   29.19 + *
   29.20 + * You should have received a copy of the GNU General Public License version
   29.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   29.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   29.23 + *
   29.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   29.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   29.26 + * have any questions.
   29.27 + */
   29.28 +package org.jdesktop.swingx.designer.effects;
   29.29 +
   29.30 +import java.awt.Composite;
   29.31 +import java.awt.CompositeContext;
   29.32 +import java.awt.Graphics2D;
   29.33 +import java.awt.RenderingHints;
   29.34 +import java.awt.image.BufferedImage;
   29.35 +import java.awt.image.ColorModel;
   29.36 +import java.awt.image.Raster;
   29.37 +import java.awt.image.WritableRaster;
   29.38 +
   29.39 +/**
   29.40 + * EffectUtilsTemp - effect utils methods that are not being used for now but we might want later
   29.41 + *
   29.42 + * @author Created by Jasper Potts (Jun 18, 2007)
   29.43 + */
   29.44 +public class EffectUtilsTemp {
   29.45 +
   29.46 +    /**
   29.47 +     * Extract the alpha channel of a image into new greyscale buffered image
   29.48 +     *
   29.49 +     * @param src Must but INT_ARGB buffered image
   29.50 +     * @return new TYPE_BYTE_GRAY image of just the alpha channel
   29.51 +     */
   29.52 +    public static BufferedImage extractAlpha(BufferedImage src) {
   29.53 +        int w = src.getWidth();
   29.54 +        int h = src.getHeight();
   29.55 +        // extract image alpha channel as greyscale image
   29.56 +        final BufferedImage greyImg = new BufferedImage(w, h, BufferedImage.TYPE_BYTE_GRAY);
   29.57 +        Graphics2D g2 = greyImg.createGraphics();
   29.58 +        g2.setComposite(new Composite() {
   29.59 +            public CompositeContext createContext(ColorModel srcColorModel, ColorModel dstColorModel,
   29.60 +                                                  RenderingHints hints) {
   29.61 +                return new CompositeContext() {
   29.62 +                    public void dispose() {}
   29.63 +
   29.64 +                    public void compose(Raster src, Raster dstIn, WritableRaster dstOut) {
   29.65 +                        int width = Math.min(src.getWidth(), dstIn.getWidth());
   29.66 +                        int height = Math.min(src.getHeight(), dstIn.getHeight());
   29.67 +                        int[] srcPixels = new int[width];
   29.68 +                        byte[] dstPixels = new byte[width];
   29.69 +                        for (int y = 0; y < height; y++) {
   29.70 +                            src.getDataElements(0, y, width, 1, srcPixels);
   29.71 +                            for (int x = 0; x < width; x++) {
   29.72 +                                dstPixels[x] = (byte) ((srcPixels[x] & 0xFF000000) >>> 24);
   29.73 +                            }
   29.74 +                            dstOut.setDataElements(0, y, width, 1, dstPixels);
   29.75 +                        }
   29.76 +                    }
   29.77 +                };
   29.78 +            }
   29.79 +        });
   29.80 +        g2.drawImage(src, 0, 0, null);
   29.81 +        g2.dispose();
   29.82 +        return greyImg;
   29.83 +    }
   29.84 +
   29.85 +}
    30.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    30.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/effects/InnerGlowEffect.java	Wed Apr 29 00:27:46 2009 -0700
    30.3 @@ -0,0 +1,55 @@
    30.4 +/*
    30.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    30.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    30.7 + *
    30.8 + * This code is free software; you can redistribute it and/or modify it
    30.9 + * under the terms of the GNU General Public License version 2 only, as
   30.10 + * published by the Free Software Foundation.  Sun designates this
   30.11 + * particular file as subject to the "Classpath" exception as provided
   30.12 + * by Sun in the LICENSE file that accompanied this code.
   30.13 + *
   30.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   30.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   30.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   30.17 + * version 2 for more details (a copy is included in the LICENSE file that
   30.18 + * accompanied this code).
   30.19 + *
   30.20 + * You should have received a copy of the GNU General Public License version
   30.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   30.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   30.23 + *
   30.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   30.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   30.26 + * have any questions.
   30.27 + */
   30.28 +package org.jdesktop.swingx.designer.effects;
   30.29 +
   30.30 +import org.jdesktop.swingx.designer.paint.Matte;
   30.31 +
   30.32 +import javax.swing.UIDefaults;
   30.33 +import java.awt.Color;
   30.34 +
   30.35 +/**
   30.36 + * InnerGlowEffect
   30.37 + *
   30.38 + * @author Created by Jasper Potts (Jun 21, 2007)
   30.39 + */
   30.40 +public class InnerGlowEffect extends InnerShadowEffect {
   30.41 +
   30.42 +    protected InnerGlowEffect() {
   30.43 +        distance = 0;
   30.44 +    }
   30.45 +
   30.46 +    public InnerGlowEffect(UIDefaults uiDefaults) {
   30.47 +        color = new Matte(new Color(255, 255, 211), uiDefaults);
   30.48 +    }
   30.49 +
   30.50 +    /**
   30.51 +     * Get the display name for this effect
   30.52 +     *
   30.53 +     * @return The user displayable name
   30.54 +     */
   30.55 +    public String getDisplayName() {
   30.56 +        return "Inner Glow";
   30.57 +    }
   30.58 +}
    31.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    31.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/effects/InnerShadowEffect.java	Wed Apr 29 00:27:46 2009 -0700
    31.3 @@ -0,0 +1,142 @@
    31.4 +/*
    31.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    31.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    31.7 + *
    31.8 + * This code is free software; you can redistribute it and/or modify it
    31.9 + * under the terms of the GNU General Public License version 2 only, as
   31.10 + * published by the Free Software Foundation.  Sun designates this
   31.11 + * particular file as subject to the "Classpath" exception as provided
   31.12 + * by Sun in the LICENSE file that accompanied this code.
   31.13 + *
   31.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   31.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   31.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   31.17 + * version 2 for more details (a copy is included in the LICENSE file that
   31.18 + * accompanied this code).
   31.19 + *
   31.20 + * You should have received a copy of the GNU General Public License version
   31.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   31.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   31.23 + *
   31.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   31.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   31.26 + * have any questions.
   31.27 + */
   31.28 +package org.jdesktop.swingx.designer.effects;
   31.29 +
   31.30 +import org.jdesktop.swingx.designer.paint.Matte;
   31.31 +
   31.32 +import javax.swing.UIDefaults;
   31.33 +import java.awt.Color;
   31.34 +import java.awt.image.BufferedImage;
   31.35 +import java.awt.image.Raster;
   31.36 +import java.awt.image.WritableRaster;
   31.37 +import java.util.Arrays;
   31.38 +
   31.39 +/**
   31.40 + * InnerShadowEffect
   31.41 + *
   31.42 + * @author Created by Jasper Potts (Jun 18, 2007)
   31.43 + */
   31.44 +public class InnerShadowEffect extends ShadowEffect {
   31.45 +
   31.46 +    protected InnerShadowEffect() {}
   31.47 +
   31.48 +    ;
   31.49 +
   31.50 +    public InnerShadowEffect(UIDefaults uiDefaults) {
   31.51 +        color = new Matte(Color.BLACK, uiDefaults);
   31.52 +    }
   31.53 +
   31.54 +    // =================================================================================================================
   31.55 +    // Effect Methods
   31.56 +
   31.57 +    /**
   31.58 +     * Get the display name for this effect
   31.59 +     *
   31.60 +     * @return The user displayable name
   31.61 +     */
   31.62 +    public String getDisplayName() {
   31.63 +        return "Inner Shadow";
   31.64 +    }
   31.65 +
   31.66 +    /**
   31.67 +     * Get the type of this effect, one of UNDER,BLENDED,OVER. UNDER means the result of apply effect should be painted
   31.68 +     * under the src image. BLENDED means the result of apply sffect contains a modified src image so just it should be
   31.69 +     * painted. OVER means the result of apply effect should be painted over the src image.
   31.70 +     *
   31.71 +     * @return The effect type
   31.72 +     */
   31.73 +    public Effect.EffectType getEffectType() {
   31.74 +        return Effect.EffectType.OVER;
   31.75 +    }
   31.76 +
   31.77 +    /**
   31.78 +     * Apply the effect to the src image generating the result . The result image may or may not contain the source
   31.79 +     * image depending on what the effect type is.
   31.80 +     *
   31.81 +     * @param src The source image for applying the effect to
   31.82 +     * @param dst The dstination image to paint effect result into. If this is null then a new image will be created
   31.83 +     * @param w   The width of the src image to apply effect to, this allow the src and dst buffers to be bigger than
   31.84 +     *            the area the need effect applied to it
   31.85 +     * @param h   The height of the src image to apply effect to, this allow the src and dst buffers to be bigger than
   31.86 +     *            the area the need effect applied to it
   31.87 +     * @return The result of appl
   31.88 +     */
   31.89 +    public BufferedImage applyEffect(BufferedImage src, BufferedImage dst, int w, int h) {
   31.90 +        // calculate offset
   31.91 +        double trangleAngle = Math.toRadians(angle - 90);
   31.92 +        int offsetX = (int) (Math.sin(trangleAngle) * distance);
   31.93 +        int offsetY = (int) (Math.cos(trangleAngle) * distance);
   31.94 +        // clac expanded size
   31.95 +        int tmpOffX = offsetX + size;
   31.96 +        int tmpOffY = offsetY + size;
   31.97 +        int tmpW = w + offsetX + size + size;
   31.98 +        int tmpH = h + offsetY + size + size;
   31.99 +        // create tmp buffers
  31.100 +        int[] lineBuf = getTmpIntArray(w);
  31.101 +        byte[] srcAlphaBuf = getTmpByteArray1(tmpW * tmpH);
  31.102 +        Arrays.fill(srcAlphaBuf, (byte) 0xFF);
  31.103 +        byte[] tmpBuf1 = getTmpByteArray2(tmpW * tmpH);
  31.104 +        byte[] tmpBuf2 = getTmpByteArray3(tmpW * tmpH);
  31.105 +        // extract src image alpha channel and inverse and offset
  31.106 +        Raster srcRaster = src.getRaster();
  31.107 +        for (int y = 0; y < h; y++) {
  31.108 +            int dy = (y + tmpOffY);
  31.109 +            int offset = dy * tmpW;
  31.110 +            srcRaster.getDataElements(0, y, w, 1, lineBuf);
  31.111 +            for (int x = 0; x < w; x++) {
  31.112 +                int dx = x + tmpOffX;
  31.113 +                srcAlphaBuf[offset + dx] = (byte) ((255 - ((lineBuf[x] & 0xFF000000) >>> 24)) & 0xFF);
  31.114 +            }
  31.115 +        }
  31.116 +        // blur
  31.117 +        float[] kernel = EffectUtils.createGaussianKernel(size * 2);
  31.118 +        EffectUtils.blur(srcAlphaBuf, tmpBuf2, tmpW, tmpH, kernel, size * 2); // horizontal pass
  31.119 +        EffectUtils.blur(tmpBuf2, tmpBuf1, tmpH, tmpW, kernel, size * 2);// vertical pass
  31.120 +        //rescale
  31.121 +        float spread = Math.min(1 / (1 - (0.01f * this.spread)), 255);
  31.122 +        for (int i = 0; i < tmpBuf1.length; i++) {
  31.123 +            int val = (int) (((int) tmpBuf1[i] & 0xFF) * spread);
  31.124 +            tmpBuf1[i] = (val > 255) ? (byte) 0xFF : (byte) val;
  31.125 +        }
  31.126 +        // create color image with shadow color and greyscale image as alpha
  31.127 +        if (dst == null) dst = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
  31.128 +        WritableRaster shadowRaster = dst.getRaster();
  31.129 +        int red = color.getRed(), green = color.getGreen(), blue = color.getBlue();
  31.130 +        for (int y = 0; y < h; y++) {
  31.131 +            int srcY = y + tmpOffY;
  31.132 +            int offset = srcY * tmpW;
  31.133 +            int shadowOffset = (srcY - offsetY) * tmpW;
  31.134 +            for (int x = 0; x < w; x++) {
  31.135 +                int srcX = x + tmpOffX;
  31.136 +                int origianlAlphaVal = 255 - ((int) srcAlphaBuf[offset + srcX] & 0xFF);
  31.137 +                int shadowVal = (int) tmpBuf1[shadowOffset + (srcX - offsetX)] & 0xFF;
  31.138 +                int alphaVal = Math.min(origianlAlphaVal, shadowVal);
  31.139 +                lineBuf[x] = ((byte) alphaVal & 0xFF) << 24 | red << 16 | green << 8 | blue;
  31.140 +            }
  31.141 +            shadowRaster.setDataElements(0, y, w, 1, lineBuf);
  31.142 +        }
  31.143 +        return dst;
  31.144 +    }
  31.145 +}
    32.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    32.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/effects/OuterGlowEffect.java	Wed Apr 29 00:27:46 2009 -0700
    32.3 @@ -0,0 +1,55 @@
    32.4 +/*
    32.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    32.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    32.7 + *
    32.8 + * This code is free software; you can redistribute it and/or modify it
    32.9 + * under the terms of the GNU General Public License version 2 only, as
   32.10 + * published by the Free Software Foundation.  Sun designates this
   32.11 + * particular file as subject to the "Classpath" exception as provided
   32.12 + * by Sun in the LICENSE file that accompanied this code.
   32.13 + *
   32.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   32.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   32.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   32.17 + * version 2 for more details (a copy is included in the LICENSE file that
   32.18 + * accompanied this code).
   32.19 + *
   32.20 + * You should have received a copy of the GNU General Public License version
   32.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   32.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   32.23 + *
   32.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   32.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   32.26 + * have any questions.
   32.27 + */
   32.28 +package org.jdesktop.swingx.designer.effects;
   32.29 +
   32.30 +import org.jdesktop.swingx.designer.paint.Matte;
   32.31 +
   32.32 +import javax.swing.UIDefaults;
   32.33 +import java.awt.Color;
   32.34 +
   32.35 +/**
   32.36 + * OuterGlowEffect
   32.37 + *
   32.38 + * @author Created by Jasper Potts (Jun 21, 2007)
   32.39 + */
   32.40 +public class OuterGlowEffect extends DropShadowEffect {
   32.41 +
   32.42 +    protected OuterGlowEffect() {
   32.43 +        distance = 0;
   32.44 +    }
   32.45 +
   32.46 +    public OuterGlowEffect(UIDefaults uiDefaults) {
   32.47 +        color = new Matte(new Color(255, 255, 211), uiDefaults);
   32.48 +    }
   32.49 +
   32.50 +    /**
   32.51 +     * Get the display name for this effect
   32.52 +     *
   32.53 +     * @return The user displayable name
   32.54 +     */
   32.55 +    public String getDisplayName() {
   32.56 +        return "Outer Glow";
   32.57 +    }
   32.58 +}
    33.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    33.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/effects/ShadowEffect.java	Wed Apr 29 00:27:46 2009 -0700
    33.3 @@ -0,0 +1,132 @@
    33.4 +/*
    33.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    33.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    33.7 + *
    33.8 + * This code is free software; you can redistribute it and/or modify it
    33.9 + * under the terms of the GNU General Public License version 2 only, as
   33.10 + * published by the Free Software Foundation.  Sun designates this
   33.11 + * particular file as subject to the "Classpath" exception as provided
   33.12 + * by Sun in the LICENSE file that accompanied this code.
   33.13 + *
   33.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   33.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   33.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   33.17 + * version 2 for more details (a copy is included in the LICENSE file that
   33.18 + * accompanied this code).
   33.19 + *
   33.20 + * You should have received a copy of the GNU General Public License version
   33.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   33.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   33.23 + *
   33.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   33.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   33.26 + * have any questions.
   33.27 + */
   33.28 +package org.jdesktop.swingx.designer.effects;
   33.29 +
   33.30 +import org.jdesktop.swingx.designer.BlendingMode;
   33.31 +import org.jdesktop.swingx.designer.paint.Matte;
   33.32 +
   33.33 +import javax.swing.UIDefaults;
   33.34 +import java.awt.Color;
   33.35 +
   33.36 +/**
   33.37 + * ShadowEffect - base class with all the standard properties for shadow effects
   33.38 + *
   33.39 + * @author Created by Jasper Potts (Jun 18, 2007)
   33.40 + */
   33.41 +public abstract class ShadowEffect extends Effect {
   33.42 +    protected Matte color;
   33.43 +    protected BlendingMode blendingMode = BlendingMode.NORMAL;
   33.44 +    /** Opacity a float 0-1 for percentage */
   33.45 +    protected float opacity = 0.75f;
   33.46 +    /** Angle in degrees between 0-360 */
   33.47 +    protected int angle = 135;
   33.48 +    /** Distance in pixels */
   33.49 +    protected int distance = 5;
   33.50 +    /** The shadow spread between 0-100 % */
   33.51 +    protected int spread = 0;
   33.52 +    /** Size in pixels */
   33.53 +    protected int size = 5;
   33.54 +
   33.55 +    protected ShadowEffect() {}
   33.56 +
   33.57 +    ;
   33.58 +
   33.59 +    public ShadowEffect(UIDefaults uiDefaults) {
   33.60 +        color = new Matte(Color.BLACK, uiDefaults);
   33.61 +    }
   33.62 +
   33.63 +    // =================================================================================================================
   33.64 +    // Bean methods
   33.65 +
   33.66 +    public Matte getColor() {
   33.67 +        return color;
   33.68 +    }
   33.69 +
   33.70 +    public void setColor(Matte color) {
   33.71 +        Matte old = getColor();
   33.72 +        this.color = color;
   33.73 +        firePropertyChange("color", old, getColor());
   33.74 +    }
   33.75 +
   33.76 +    public BlendingMode getBlendingMode() {
   33.77 +        return blendingMode;
   33.78 +    }
   33.79 +
   33.80 +    public void setBlendingMode(BlendingMode blendingMode) {
   33.81 +        BlendingMode old = getBlendingMode();
   33.82 +        this.blendingMode = blendingMode;
   33.83 +        firePropertyChange("blendingMode", old, getBlendingMode());
   33.84 +    }
   33.85 +
   33.86 +    public float getOpacity() {
   33.87 +        return opacity;
   33.88 +    }
   33.89 +
   33.90 +    public void setOpacity(float opacity) {
   33.91 +        float old = getOpacity();
   33.92 +        this.opacity = opacity;
   33.93 +        firePropertyChange("opacity", old, getOpacity());
   33.94 +    }
   33.95 +
   33.96 +    public int getAngle() {
   33.97 +        return angle;
   33.98 +    }
   33.99 +
  33.100 +    public void setAngle(int angle) {
  33.101 +        int old = getAngle();
  33.102 +        this.angle = angle;
  33.103 +        firePropertyChange("angle", old, getAngle());
  33.104 +    }
  33.105 +
  33.106 +    public int getDistance() {
  33.107 +        return distance;
  33.108 +    }
  33.109 +
  33.110 +    public void setDistance(int distance) {
  33.111 +        int old = getDistance();
  33.112 +        this.distance = distance;
  33.113 +        firePropertyChange("distance", old, getDistance());
  33.114 +    }
  33.115 +
  33.116 +    public int getSpread() {
  33.117 +        return spread;
  33.118 +    }
  33.119 +
  33.120 +    public void setSpread(int spread) {
  33.121 +        int old = getSpread();
  33.122 +        this.spread = spread;
  33.123 +        firePropertyChange("spread", old, getSpread());
  33.124 +    }
  33.125 +
  33.126 +    public int getSize() {
  33.127 +        return size;
  33.128 +    }
  33.129 +
  33.130 +    public void setSize(int size) {
  33.131 +        int old = getSize();
  33.132 +        this.size = size;
  33.133 +        firePropertyChange("size", old, getSize());
  33.134 +    }
  33.135 +}
    34.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    34.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/font/Typeface.java	Wed Apr 29 00:27:46 2009 -0700
    34.3 @@ -0,0 +1,484 @@
    34.4 +/*
    34.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    34.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    34.7 + *
    34.8 + * This code is free software; you can redistribute it and/or modify it
    34.9 + * under the terms of the GNU General Public License version 2 only, as
   34.10 + * published by the Free Software Foundation.  Sun designates this
   34.11 + * particular file as subject to the "Classpath" exception as provided
   34.12 + * by Sun in the LICENSE file that accompanied this code.
   34.13 + *
   34.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   34.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   34.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   34.17 + * version 2 for more details (a copy is included in the LICENSE file that
   34.18 + * accompanied this code).
   34.19 + *
   34.20 + * You should have received a copy of the GNU General Public License version
   34.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   34.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   34.23 + *
   34.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   34.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   34.26 + * have any questions.
   34.27 + */
   34.28 +package org.jdesktop.swingx.designer.font;
   34.29 +
   34.30 +import java.awt.Font;
   34.31 +import java.beans.PropertyChangeEvent;
   34.32 +import java.beans.PropertyChangeListener;
   34.33 +import javax.swing.UIDefaults;
   34.34 +import org.jdesktop.beans.AbstractBean;
   34.35 +import org.jdesktop.swingx.designer.utils.HasUIDefaults;
   34.36 +import org.jibx.runtime.IUnmarshallingContext;
   34.37 +
   34.38 +/**
   34.39 + * I don't think the name is technically correct (ie: a typeface is not a font),
   34.40 + * but I wanted something besides "font" so, here it is.
   34.41 + *
   34.42 + * This is a mutable font, much like Matte is a mutable color. Also like Matte,
   34.43 + * Typeface can be derived.
   34.44 + *
   34.45 + * @author rbair
   34.46 + */
   34.47 +public class Typeface extends AbstractBean {
   34.48 +    //specifies whether to derive bold, or italic.
   34.49 +    //Default means, get my value from my parent.
   34.50 +    //Off means, leave bold/italic off.
   34.51 +    //On means, make bold/italic on.
   34.52 +    public enum DeriveStyle { Default, Off, On }
   34.53 +
   34.54 +    private String uiDefaultParentName;
   34.55 +    /** This is a local UIDefaults that contains all the UIDefaults in the Model. */
   34.56 +    private transient UIDefaults uiDefaults = new UIDefaults();
   34.57 +    private PropertyChangeListener uiDefaultsChangeListener = new PropertyChangeListener() {
   34.58 +        public void propertyChange(PropertyChangeEvent evt) {
   34.59 +            if (uiDefaultParentName != null && uiDefaultParentName.equals(evt.getPropertyName())) {
   34.60 +                updateFontFromOffsets();
   34.61 +            }
   34.62 +        }
   34.63 +    };
   34.64 +
   34.65 +    /**
   34.66 +     * The name of the font. If uiDefaultParentName is specified, then this name
   34.67 +     * will be set to be equal to the name of the parent font.
   34.68 +     */
   34.69 +    private String name;
   34.70 +    /**
   34.71 +     * The size of the font. If uiDefaultParentName is set, then this value is
   34.72 +     * updated to reflect the size of the parent font * the sizeOffset.
   34.73 +     */
   34.74 +    private int size;
   34.75 +
   34.76 +    //this field is not publically accessible. Rather, it is updated based on
   34.77 +    //"bold" and "italic" as necessary.
   34.78 +    private int style = Font.PLAIN;
   34.79 +    private DeriveStyle bold = DeriveStyle.Default;
   34.80 +    private DeriveStyle italic = DeriveStyle.Default;
   34.81 +
   34.82 +    /**
   34.83 +     * The size offset. Only used if uiDefaultParentName is specified. This offset
   34.84 +     * will be multiplied with the parent font's size to determine the size of this
   34.85 +     * typeface. The offset is specified as a percentage, either positive or negative.
   34.86 +     *
   34.87 +     * The reason a percentage was used, was so that things would look correctly
   34.88 +     * when scaled, such as with high DPI situations.
   34.89 +     */
   34.90 +    private float sizeOffset;
   34.91 +
   34.92 +    /**
   34.93 +     * Create a new Typeface. Note that, without specifying the uiDefaults,
   34.94 +     * you cannot have font derivation. Thus, this constructor should never
   34.95 +     * be called, except for the XML binding stuff.
   34.96 +     */
   34.97 +    public Typeface() { }
   34.98 +
   34.99 +    /**
  34.100 +     * Creates a new Typeface.
  34.101 +     *
  34.102 +     * @param f The font from which to get the font name, size, and style to use
  34.103 +     * to initialize this typeface. Note that this font is not used as a parent
  34.104 +     * font for derivation purposes. Rather, it is used as a source from which to
  34.105 +     * copy initial settings.
  34.106 +     *
  34.107 +     * @param uiDefaults The uiDefaults to use for font derivation purposes.
  34.108 +     * When the uiDefaultParentName is specified, then this Typeface will inspect
  34.109 +     * the given UIDefaults for that parent <em>font</em>. Note that the UIDefaults
  34.110 +     * should be populated with a font, and not with a typeface.
  34.111 +     */
  34.112 +    public Typeface(Font f, UIDefaults uiDefaults) {
  34.113 +        if (f != null) {
  34.114 +            this.name = f.getName();
  34.115 +            this.size = f.getSize();
  34.116 +            this.style = f.getStyle();
  34.117 +        }
  34.118 +        setUiDefaults(uiDefaults);
  34.119 +    }
  34.120 +
  34.121 +    // =================================================================================================================
  34.122 +    // JIBX Methods
  34.123 +
  34.124 +    /**
  34.125 +     * Called by JIBX after all fields have been set
  34.126 +     *
  34.127 +     * @param context The JIBX Unmarshalling Context
  34.128 +     */
  34.129 +    protected void postSet(IUnmarshallingContext context) {
  34.130 +        // walk up till we get synth model
  34.131 +        for (int i = 0; i < context.getStackDepth(); i++) {
  34.132 +            if (context.getStackObject(i) instanceof HasUIDefaults) {
  34.133 +                UIDefaults uiDefaults = ((HasUIDefaults) context.getStackObject(i)).getUiDefaults();
  34.134 +                if (uiDefaults != null) {
  34.135 +                    setUiDefaults(uiDefaults);
  34.136 +                    break;
  34.137 +                }
  34.138 +            }
  34.139 +        }
  34.140 +    }
  34.141 +
  34.142 +    // =================================================================================================================
  34.143 +    // Typeface methods
  34.144 +
  34.145 +    /**
  34.146 +     * Is the Typeface an absolute Font not derived from a parent ui default
  34.147 +     *
  34.148 +     * @return <code>true</code> if this is a absolute not uidefault derived font
  34.149 +     */
  34.150 +    public boolean isAbsolute() {
  34.151 +        return uiDefaultParentName == null;
  34.152 +    }
  34.153 +
  34.154 +    /**
  34.155 +     * Set all properties of this Typeface to be the same as <code>src</code> and fire all the change events
  34.156 +     *
  34.157 +     * @param src the Typeface to copy properties from
  34.158 +     */
  34.159 +    public void copy(Typeface src) {
  34.160 +        // keep old values
  34.161 +        Font oldFont = getFont();
  34.162 +        String oldParentName = uiDefaultParentName;
  34.163 +        String oldName = name;
  34.164 +        int oldSize = size;
  34.165 +        float oldSizeOffset = sizeOffset;
  34.166 +        DeriveStyle oldBold = bold, oldItalic = italic;
  34.167 +
  34.168 +        style = src.style;
  34.169 +
  34.170 +        //Note, I don't just call the setters here, because I want to make
  34.171 +        //sure the "font" PCE is only fired once, at the end.
  34.172 +        name = src.name;
  34.173 +        firePropertyChange("name", oldName, name);
  34.174 +        size = src.size;
  34.175 +        firePropertyChange("size", oldSize, size);
  34.176 +        bold = src.bold;
  34.177 +        firePropertyChange("bold", oldBold, bold);
  34.178 +        italic = src.italic;
  34.179 +        firePropertyChange("italic", oldItalic, italic);
  34.180 +        sizeOffset = src.sizeOffset;
  34.181 +        firePropertyChange("sizeOffset", oldSizeOffset, sizeOffset);
  34.182 +        uiDefaultParentName = src.uiDefaultParentName;
  34.183 +        firePropertyChange("uiDefaultParentName", oldParentName, uiDefaultParentName);
  34.184 +        setUiDefaults(src.uiDefaults);
  34.185 +        firePropertyChange("font", oldFont, getFont());
  34.186 +    }
  34.187 +
  34.188 +    // =================================================================================================================
  34.189 +    // Bean Methods
  34.190 +
  34.191 +    /**
  34.192 +     * Get the local UIDefaults that contains all the UIDefaults in the Model.
  34.193 +     *
  34.194 +     * @return The UIDefaults for the model that contains this Typeface, can be null if this Typeface is not part of a bigger
  34.195 +     *         model
  34.196 +     */
  34.197 +    public UIDefaults getUiDefaults() {
  34.198 +        return uiDefaults;
  34.199 +    }
  34.200 +
  34.201 +    /**
  34.202 +     * Set the local UIDefaults that contains all the UIDefaults in the Model.
  34.203 +     *
  34.204 +     * @param uiDefaults The UIDefaults for the model that contains this Typeface, can be null if this Typeface is not part of
  34.205 +     *                   a bigger model
  34.206 +     */
  34.207 +    public void setUiDefaults(UIDefaults uiDefaults) {
  34.208 +        if (uiDefaults != this.uiDefaults) {
  34.209 +            UIDefaults old = getUiDefaults();
  34.210 +            if (old != null) old.removePropertyChangeListener(uiDefaultsChangeListener);
  34.211 +            this.uiDefaults = uiDefaults;
  34.212 +            if (uiDefaults != null) this.uiDefaults.addPropertyChangeListener(uiDefaultsChangeListener);
  34.213 +            firePropertyChange("uiDefaults", old, getUiDefaults());
  34.214 +        }
  34.215 +    }
  34.216 +
  34.217 +    /**
  34.218 +     * Get the name if the uidefault font that is the parent that this Typeface is derived from. If null then this is a
  34.219 +     * absolute font.
  34.220 +     *
  34.221 +     * @return Parent font ui default name
  34.222 +     */
  34.223 +    public String getUiDefaultParentName() {
  34.224 +        return uiDefaultParentName;
  34.225 +    }
  34.226 +
  34.227 +    /**
  34.228 +     * Set the name if the uidefault font that is the parent that this Typeface is derived from. If null then this is a
  34.229 +     * absolute font.
  34.230 +     *
  34.231 +     * @param uiDefaultParentName Parent font ui default name
  34.232 +     */
  34.233 +    public void setUiDefaultParentName(String uiDefaultParentName) {
  34.234 +        String old = getUiDefaultParentName();
  34.235 +        this.uiDefaultParentName = uiDefaultParentName;
  34.236 +        firePropertyChange("uiDefaultParentName", old, getUiDefaultParentName());
  34.237 +        if (isAbsolute()) {
  34.238 +            // reset offsets
  34.239 +            float oldSizeOffset = sizeOffset;
  34.240 +            sizeOffset = 0;
  34.241 +            firePropertyChange("sizeOffset", oldSizeOffset, sizeOffset);
  34.242 +        } else {
  34.243 +            updateFontFromOffsets();
  34.244 +        }
  34.245 +    }
  34.246 +
  34.247 +    /**
  34.248 +     * @return Gets the name of the font
  34.249 +     */
  34.250 +    public final String getName() {
  34.251 +        return name;
  34.252 +    }
  34.253 +
  34.254 +    /**
  34.255 +     * Sets the name of the font. This method call <em>only</em> works if
  34.256 +     * <code>isAbsolute</code> returns true. Otherwise, it is ignored.
  34.257 +     * @param name the name of the font
  34.258 +     */
  34.259 +    public void setName(String name) {
  34.260 +        if (isAbsolute()) {
  34.261 +            String old = this.name;
  34.262 +            Font oldF = getFont();
  34.263 +            this.name = name;
  34.264 +            firePropertyChange("name", old, this.name);
  34.265 +            firePropertyChange("font", oldF, getFont());
  34.266 +        }
  34.267 +    }
  34.268 +
  34.269 +    /**
  34.270 +     * @return gets the size of the font.
  34.271 +     */
  34.272 +    public final int getSize() {
  34.273 +        return size;
  34.274 +    }
  34.275 +
  34.276 +    /**
  34.277 +     * <p>Sets the size of the font. THis method call will work whether
  34.278 +     * <code>isAbsolute</code> returns true or false. If this is an absolute
  34.279 +     * typeface, then the size is set directly. Otherwise, if this is a
  34.280 +     * derived typeface, then the sizeOffset will be updated to reflect the
  34.281 +     * proper offset based on this size, and the size of the parent font.</p>
  34.282 +     *
  34.283 +     * <p>For example, if the parent font's size was 12, and the sizeOffset was
  34.284 +     * -2 (thus yielding as size on this typeface of 10), and you call setSize
  34.285 +     * passing in "14" as the size, then the sizeOffset will be updated to be
  34.286 +     * equal to "2".</p>
  34.287 +     *
  34.288 +     * @param size the new size for this typeface.
  34.289 +     */
  34.290 +    public void setSize(int size) {
  34.291 +        int old = this.size;
  34.292 +        Font oldF = getFont();
  34.293 +        this.size = size;
  34.294 +        firePropertyChange("size", old, this.size);
  34.295 +        firePropertyChange("font", oldF, getFont());
  34.296 +        updateOffsetsFromFont();
  34.297 +    }
  34.298 +
  34.299 +    /**
  34.300 +     * @return the size offset
  34.301 +     */
  34.302 +    public final float getSizeOffset() {
  34.303 +        return sizeOffset;
  34.304 +    }
  34.305 +
  34.306 +    /**
  34.307 +     * Sets the percentage by which the size of this font should be different
  34.308 +     * from its parent font. This property is kept in synch with the size property.
  34.309 +     *
  34.310 +     * @param sizeOffset the size offset. May be any float. The value "1" means,
  34.311 +     * 100%. -1 means "-100%". 2 means "200%", and so on.
  34.312 +     */
  34.313 +    public void setSizeOffset(float sizeOffset) {
  34.314 +        float old = this.sizeOffset;
  34.315 +        Font oldF = getFont();
  34.316 +        this.sizeOffset = sizeOffset;
  34.317 +        firePropertyChange("sizeOffset", old, this.sizeOffset);
  34.318 +        firePropertyChange("font", oldF, getFont());
  34.319 +        updateFontFromOffsets();
  34.320 +    }
  34.321 +
  34.322 +    public DeriveStyle getBold() {
  34.323 +        return bold;
  34.324 +    }
  34.325 +
  34.326 +    public void setBold(DeriveStyle bold) {
  34.327 +        DeriveStyle old = this.bold;
  34.328 +        this.bold = bold == null ? DeriveStyle.Default : bold;
  34.329 +        firePropertyChange("bold", old, this.bold);
  34.330 +        updateFontFromOffsets();
  34.331 +    }
  34.332 +
  34.333 +    public DeriveStyle getItalic() {
  34.334 +        return italic;
  34.335 +    }
  34.336 +
  34.337 +    public void setItalic(DeriveStyle italic) {
  34.338 +        DeriveStyle old = this.italic;
  34.339 +        this.italic = italic == null ? DeriveStyle.Default : italic;
  34.340 +        firePropertyChange("italic", old, this.italic);
  34.341 +        updateFontFromOffsets();
  34.342 +    }
  34.343 +
  34.344 +    /**
  34.345 +     * @return whether or not the font represented by this typeface is supported
  34.346 +     * on this operating system platform.
  34.347 +     */
  34.348 +    public boolean isFontSupported() {
  34.349 +        return true;//Font.getFont(name) != null;
  34.350 +    }
  34.351 +
  34.352 +    /**
  34.353 +     * @return Gets the font associated with this Typeface. If font derivation is
  34.354 +     * being used, then the Font returned is the result of that derivation.
  34.355 +     */
  34.356 +    public Font getFont() {
  34.357 +        return new Font(name, style, size);
  34.358 +    }
  34.359 +
  34.360 +    /**
  34.361 +     * Sets the font from which this Typeface should extract the font name, style,
  34.362 +     * and size. If font derivation is being used, then the font name will be ignored,
  34.363 +     * the style will be used (and always override the parent font), and the size
  34.364 +     * will be set and the sizeOffset updated appropriately.
  34.365 +     *
  34.366 +     * @param f the Font
  34.367 +     */
  34.368 +    public void setFont(Font f) {
  34.369 +        Font oldFont = getFont();
  34.370 +        String oldName = name;
  34.371 +        int oldSize = size;
  34.372 +        DeriveStyle oldBold = bold, oldItalic = italic;
  34.373 +        name = f.getName();
  34.374 +        size = f.getSize();
  34.375 +        style = f.getStyle();
  34.376 +        updateOffsetsFromFont();
  34.377 +        firePropertyChange("name", oldName, name);
  34.378 +        firePropertyChange("size", oldSize, size);
  34.379 +        firePropertyChange("bold", oldBold, bold);
  34.380 +        firePropertyChange("italic", oldItalic, italic);
  34.381 +        firePropertyChange("font", oldFont, getFont());
  34.382 +    }
  34.383 +
  34.384 +    /**
  34.385 +     * @inheritDoc
  34.386 +     *
  34.387 +     * @return A formatted string representing this Typeface. This String should
  34.388 +     * not be considered public API, as it may change in a future release.
  34.389 +     */
  34.390 +    @Override public String toString() {
  34.391 +        Font f = getFont();
  34.392 +        String  strStyle;
  34.393 +        if (f.isBold()) {
  34.394 +            strStyle = f.isItalic() ? "bolditalic" : "bold";
  34.395 +        } else {
  34.396 +            strStyle = f.isItalic() ? "italic" : "plain";
  34.397 +        }
  34.398 +
  34.399 +        if (isAbsolute()) {
  34.400 +            return Typeface.class.getName() + "[name=" + name + ", size=" + size + ", style=" + strStyle + "]";
  34.401 +        } else {
  34.402 +            return Typeface.class.getName() + "[base=" + uiDefaultParentName +
  34.403 +                    ", name=" + name + ", size=" + size + "(offset " + sizeOffset + ")" +
  34.404 +                    ", style=" + strStyle + "]";
  34.405 +        }
  34.406 +    }
  34.407 +
  34.408 +    @Override public boolean equals(Object o) {
  34.409 +        if (this == o) return true;
  34.410 +        if (o == null || getClass() != o.getClass()) return false;
  34.411 +        Typeface typeface = (Typeface) o;
  34.412 +        if (!typeface.name.equals(name)) return false;
  34.413 +        if (size != typeface.size) return false;
  34.414 +        if (bold != typeface.bold) return false;
  34.415 +        if (italic != typeface.italic) return false;
  34.416 +        if (sizeOffset != typeface.sizeOffset) return false;
  34.417 +        if (uiDefaultParentName != null ? !uiDefaultParentName.equals(typeface.uiDefaultParentName) :
  34.418 +                typeface.uiDefaultParentName != null) return false;
  34.419 +        return true;
  34.420 +    }
  34.421 +
  34.422 +    @Override public int hashCode() {
  34.423 +        int result;
  34.424 +        result = name.hashCode();
  34.425 +        result = 31 * result + size;
  34.426 +        result = 31 * result + bold.ordinal();
  34.427 +        result = 31 * result + italic.ordinal();
  34.428 +        result = 31 * result + (int)(sizeOffset*100);
  34.429 +        result = 31 * result + (uiDefaultParentName != null ? uiDefaultParentName.hashCode() : 0);
  34.430 +        return result;
  34.431 +    }
  34.432 +
  34.433 +    @Override public Typeface clone() {
  34.434 +        Typeface clone = new Typeface();
  34.435 +        clone.name = name;
  34.436 +        clone.size = size;
  34.437 +        clone.style = style;
  34.438 +        clone.bold = bold;
  34.439 +        clone.italic = italic;
  34.440 +        clone.sizeOffset = sizeOffset;
  34.441 +        clone.uiDefaultParentName = uiDefaultParentName;
  34.442 +        clone.setUiDefaults(uiDefaults);
  34.443 +        return clone;
  34.444 +    }
  34.445 +
  34.446 +    // =================================================================================================================
  34.447 +    // Private Helper Methods
  34.448 +
  34.449 +    private void updateOffsetsFromFont() {
  34.450 +        if (!isAbsolute()) {
  34.451 +            float oldSizeOffset = sizeOffset;
  34.452 +            Font parentFont = uiDefaults.getFont(uiDefaultParentName);
  34.453 +            if (parentFont != null) {
  34.454 +                float s = size;
  34.455 +                float p = parentFont.getSize();
  34.456 +                sizeOffset = (s/p) - 1f;
  34.457 +                firePropertyChange("sizeOffset", oldSizeOffset, sizeOffset);
  34.458 +            }
  34.459 +        }
  34.460 +    }
  34.461 +
  34.462 +    private void updateFontFromOffsets() {
  34.463 +        if (!isAbsolute()) {
  34.464 +            Font oldFont = getFont();
  34.465 +            // get parent font data
  34.466 +            Font parentFont = uiDefaults.getFont(uiDefaultParentName);
  34.467 +            if (parentFont != null) {
  34.468 +                String oldName = name;
  34.469 +                int oldSize = size;
  34.470 +
  34.471 +                name = parentFont.getName();
  34.472 +                size = Math.round(parentFont.getSize() * (1f + sizeOffset));
  34.473 +
  34.474 +                boolean isBold = (bold == DeriveStyle.Default && parentFont.isBold()) || bold == DeriveStyle.On;
  34.475 +                boolean isItalic = (italic == DeriveStyle.Default && parentFont.isItalic()) || italic == DeriveStyle.On;
  34.476 +                style = Font.PLAIN;
  34.477 +                if (isBold) style = style | Font.BOLD;
  34.478 +                if (isItalic) style = style | Font.ITALIC;
  34.479 +
  34.480 +                // update fire events
  34.481 +                firePropertyChange("name", oldName, name);
  34.482 +                firePropertyChange("size", oldSize, size);
  34.483 +                firePropertyChange("font", oldFont, getFont());
  34.484 +            }
  34.485 +        }
  34.486 +    }
  34.487 +}
    35.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    35.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/jibxhelpers/CanvasMapper.java	Wed Apr 29 00:27:46 2009 -0700
    35.3 @@ -0,0 +1,123 @@
    35.4 +/*
    35.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    35.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    35.7 + *
    35.8 + * This code is free software; you can redistribute it and/or modify it
    35.9 + * under the terms of the GNU General Public License version 2 only, as
   35.10 + * published by the Free Software Foundation.  Sun designates this
   35.11 + * particular file as subject to the "Classpath" exception as provided
   35.12 + * by Sun in the LICENSE file that accompanied this code.
   35.13 + *
   35.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   35.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   35.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   35.17 + * version 2 for more details (a copy is included in the LICENSE file that
   35.18 + * accompanied this code).
   35.19 + *
   35.20 + * You should have received a copy of the GNU General Public License version
   35.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   35.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   35.23 + *
   35.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   35.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   35.26 + * have any questions.
   35.27 + */
   35.28 +package org.jdesktop.swingx.designer.jibxhelpers;
   35.29 +
   35.30 +import org.jdesktop.swingx.designer.Canvas;
   35.31 +import org.jdesktop.swingx.designer.utils.HasPath;
   35.32 +import org.jdesktop.swingx.designer.utils.HasResources;
   35.33 +import org.jdesktop.swingx.designer.utils.HasUIDefaults;
   35.34 +import org.jibx.runtime.BindingDirectory;
   35.35 +import org.jibx.runtime.IBindingFactory;
   35.36 +import org.jibx.runtime.IMarshallable;
   35.37 +import org.jibx.runtime.IMarshaller;
   35.38 +import org.jibx.runtime.IMarshallingContext;
   35.39 +import org.jibx.runtime.IUnmarshaller;
   35.40 +import org.jibx.runtime.IUnmarshallingContext;
   35.41 +import org.jibx.runtime.JiBXException;
   35.42 +import org.jibx.runtime.impl.MarshallingContext;
   35.43 +import org.jibx.runtime.impl.UnmarshallingContext;
   35.44 +
   35.45 +import javax.swing.UIDefaults;
   35.46 +import java.io.File;
   35.47 +
   35.48 +/**
   35.49 + * CanvasMapper
   35.50 + *
   35.51 + * @author Created by Jasper Potts (Jun 12, 2007)
   35.52 + */
   35.53 +public class CanvasMapper implements IMarshaller, IUnmarshaller {
   35.54 +    private static final String ELEMENT_NAME = "canvas";
   35.55 +    private IBindingFactory bindingFactory;
   35.56 +
   35.57 +
   35.58 +    public CanvasMapper() {
   35.59 +        try {
   35.60 +            bindingFactory = BindingDirectory.getFactory(Canvas.class);
   35.61 +        } catch (JiBXException e) {
   35.62 +            e.printStackTrace();
   35.63 +        }
   35.64 +    }
   35.65 +
   35.66 +    public boolean isExtension(int i) {
   35.67 +        return false;
   35.68 +    }
   35.69 +
   35.70 +    public boolean isPresent(IUnmarshallingContext iUnmarshallingContext) throws JiBXException {
   35.71 +        return iUnmarshallingContext.isAt(null, ELEMENT_NAME);
   35.72 +    }
   35.73 +
   35.74 +    public void marshal(Object object, IMarshallingContext iMarshallingContext) throws JiBXException {
   35.75 +        if (!(object instanceof Canvas)) {
   35.76 +            throw new JiBXException("Invalid object type for marshaller");
   35.77 +        } else if (!(iMarshallingContext instanceof MarshallingContext)) {
   35.78 +            throw new JiBXException("Invalid object type for marshaller");
   35.79 +        } else {
   35.80 +            // version found, create marshaller for the associated binding
   35.81 +//            IBindingFactory bindingFactory = BindingDirectory.getFactory(object.getClass());
   35.82 +            MarshallingContext context = (MarshallingContext) bindingFactory.createMarshallingContext();
   35.83 +            // configure marshaller for writing document
   35.84 +            context.setXmlWriter(iMarshallingContext.getXmlWriter());
   35.85 +            // output object as document
   35.86 +            ((IMarshallable) object).marshal(context);
   35.87 +        }
   35.88 +    }
   35.89 +
   35.90 +    public Object unmarshal(Object object, IUnmarshallingContext iUnmarshallingContext) throws JiBXException {
   35.91 +        // make sure we're at the appropriate start tag
   35.92 +        UnmarshallingContext ctx = (UnmarshallingContext) iUnmarshallingContext;
   35.93 +        if (!ctx.isAt(null, ELEMENT_NAME)) {
   35.94 +            ctx.throwStartTagNameError(null, ELEMENT_NAME);
   35.95 +        }
   35.96 +
   35.97 +//        IBindingFactory bindingFactory = BindingDirectory.getFactory(Canvas.class);
   35.98 +        UnmarshallingContext uctx = (UnmarshallingContext) bindingFactory.createUnmarshallingContext();
   35.99 +        uctx.setFromContext(ctx);
  35.100 +        // get the uiDefaults from SynthModel and set them as user context
  35.101 +        UIDefaults uiDefaults = ((HasUIDefaults) ctx.getStackObject(ctx.getStackDepth() - 1)).getUiDefaults();
  35.102 +        uctx.setUserContext(uiDefaults);
  35.103 +        // get has resources
  35.104 +        HasResources hasResources = (HasResources) ctx.getStackObject(ctx.getStackDepth() - 1);
  35.105 +        // get path
  35.106 +        HasPath hasPath = null;
  35.107 +        for (int i = 0; i < ctx.getStackDepth(); i++) {
  35.108 +            if (ctx.getStackObject(i) instanceof HasPath) {
  35.109 +                hasPath = (HasPath) ctx.getStackObject(i);
  35.110 +                break;
  35.111 +            }
  35.112 +        }
  35.113 +        // Unmarshal the Canvas
  35.114 +        Canvas canvas = (Canvas) uctx.unmarshalElement();
  35.115 +        // set canvas's ui defaults
  35.116 +        canvas.setUiDefaults(uiDefaults);
  35.117 +        // get canvas path
  35.118 +        String canvasPath = hasPath.getPath();
  35.119 +        // calc and set resources
  35.120 +        canvas.setResourcesDir(new File(hasResources.getResourcesDir(), canvasPath));
  35.121 +        canvas.setTemplatesDir(new File(hasResources.getTemplatesDir(), canvasPath));
  35.122 +        canvas.setImagesDir(new File(hasResources.getImagesDir(), canvasPath));
  35.123 +        // return canvas
  35.124 +        return canvas;
  35.125 +    }
  35.126 +}
    36.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    36.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/jibxhelpers/ColorMapper.java	Wed Apr 29 00:27:46 2009 -0700
    36.3 @@ -0,0 +1,89 @@
    36.4 +/*
    36.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    36.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    36.7 + *
    36.8 + * This code is free software; you can redistribute it and/or modify it
    36.9 + * under the terms of the GNU General Public License version 2 only, as
   36.10 + * published by the Free Software Foundation.  Sun designates this
   36.11 + * particular file as subject to the "Classpath" exception as provided
   36.12 + * by Sun in the LICENSE file that accompanied this code.
   36.13 + *
   36.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   36.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   36.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   36.17 + * version 2 for more details (a copy is included in the LICENSE file that
   36.18 + * accompanied this code).
   36.19 + *
   36.20 + * You should have received a copy of the GNU General Public License version
   36.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   36.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   36.23 + *
   36.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   36.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   36.26 + * have any questions.
   36.27 + */
   36.28 +package org.jdesktop.swingx.designer.jibxhelpers;
   36.29 +
   36.30 +import org.jibx.runtime.IMarshaller;
   36.31 +import org.jibx.runtime.IMarshallingContext;
   36.32 +import org.jibx.runtime.IUnmarshaller;
   36.33 +import org.jibx.runtime.IUnmarshallingContext;
   36.34 +import org.jibx.runtime.JiBXException;
   36.35 +import org.jibx.runtime.impl.MarshallingContext;
   36.36 +import org.jibx.runtime.impl.UnmarshallingContext;
   36.37 +
   36.38 +import java.awt.Color;
   36.39 +
   36.40 +/**
   36.41 + * ColorMapper
   36.42 + *
   36.43 + * @author Created by Jasper Potts (Jun 8, 2007)
   36.44 + */
   36.45 +public class ColorMapper implements IMarshaller, IUnmarshaller {
   36.46 +    private static final String ELEMENT_NAME = "color";
   36.47 +    private static final String RED_NAME = "red";
   36.48 +    private static final String GREEN_NAME = "green";
   36.49 +    private static final String BLUE_NAME = "blue";
   36.50 +    private static final String ALPHA_NAME = "alpha";
   36.51 +
   36.52 +    public boolean isExtension(int i) {
   36.53 +        return false;
   36.54 +    }
   36.55 +
   36.56 +    public boolean isPresent(IUnmarshallingContext iUnmarshallingContext) throws JiBXException {
   36.57 +        return iUnmarshallingContext.isAt(null, ELEMENT_NAME);
   36.58 +    }
   36.59 +
   36.60 +    public void marshal(Object object, IMarshallingContext iMarshallingContext) throws JiBXException {
   36.61 +        if (!(object instanceof Color)) {
   36.62 +            throw new JiBXException("Invalid object type for marshaller");
   36.63 +        } else if (!(iMarshallingContext instanceof MarshallingContext)) {
   36.64 +            throw new JiBXException("Invalid object type for marshaller");
   36.65 +        } else {
   36.66 +            MarshallingContext ctx = (MarshallingContext) iMarshallingContext;
   36.67 +            Color color = (Color) object;
   36.68 +            ctx.startTagAttributes(0, ELEMENT_NAME).
   36.69 +                    attribute(0, RED_NAME, color.getRed()).
   36.70 +                    attribute(0, GREEN_NAME, color.getGreen()).
   36.71 +                    attribute(0, BLUE_NAME, color.getBlue()).
   36.72 +                    attribute(0, ALPHA_NAME, color.getAlpha()).
   36.73 +                    closeStartEmpty();
   36.74 +        }
   36.75 +    }
   36.76 +
   36.77 +    public Object unmarshal(Object object, IUnmarshallingContext iUnmarshallingContext) throws JiBXException {
   36.78 +        // make sure we're at the appropriate start tag
   36.79 +        UnmarshallingContext ctx = (UnmarshallingContext) iUnmarshallingContext;
   36.80 +        if (!ctx.isAt(null, ELEMENT_NAME)) {
   36.81 +            ctx.throwStartTagNameError(null, ELEMENT_NAME);
   36.82 +        }
   36.83 +        // get values
   36.84 +        int red = ctx.attributeInt(null, RED_NAME, 0);
   36.85 +        int green = ctx.attributeInt(null, GREEN_NAME, 0);
   36.86 +        int blue = ctx.attributeInt(null, BLUE_NAME, 0);
   36.87 +        int alpha = ctx.attributeInt(null, ALPHA_NAME, 0);
   36.88 +        ctx.parsePastEndTag(null, ELEMENT_NAME);
   36.89 +        // create
   36.90 +        return new Color(red, green, blue, alpha);
   36.91 +    }
   36.92 +}
    37.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    37.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/jibxhelpers/DimensionMapper.java	Wed Apr 29 00:27:46 2009 -0700
    37.3 @@ -0,0 +1,101 @@
    37.4 +/*
    37.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    37.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    37.7 + *
    37.8 + * This code is free software; you can redistribute it and/or modify it
    37.9 + * under the terms of the GNU General Public License version 2 only, as
   37.10 + * published by the Free Software Foundation.  Sun designates this
   37.11 + * particular file as subject to the "Classpath" exception as provided
   37.12 + * by Sun in the LICENSE file that accompanied this code.
   37.13 + *
   37.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   37.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   37.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   37.17 + * version 2 for more details (a copy is included in the LICENSE file that
   37.18 + * accompanied this code).
   37.19 + *
   37.20 + * You should have received a copy of the GNU General Public License version
   37.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   37.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   37.23 + *
   37.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   37.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   37.26 + * have any questions.
   37.27 + */
   37.28 +package org.jdesktop.swingx.designer.jibxhelpers;
   37.29 +
   37.30 +import org.jibx.runtime.IAliasable;
   37.31 +import org.jibx.runtime.IMarshaller;
   37.32 +import org.jibx.runtime.IMarshallingContext;
   37.33 +import org.jibx.runtime.IUnmarshaller;
   37.34 +import org.jibx.runtime.IUnmarshallingContext;
   37.35 +import org.jibx.runtime.JiBXException;
   37.36 +import org.jibx.runtime.impl.MarshallingContext;
   37.37 +import org.jibx.runtime.impl.UnmarshallingContext;
   37.38 +
   37.39 +import java.awt.Dimension;
   37.40 +
   37.41 +/**
   37.42 + * DimensionMapper
   37.43 + *
   37.44 + * @author Created by Jasper Potts (Jun 12, 2007)
   37.45 + */
   37.46 +public class DimensionMapper implements IMarshaller, IUnmarshaller, IAliasable {
   37.47 +    private static final String ELEMENT_NAME = "dimension";
   37.48 +    private static final String WIDTH_NAME = "width";
   37.49 +    private static final String HEIGHT_NAME = "height";
   37.50 +
   37.51 +    private String uri;
   37.52 +    private int index;
   37.53 +    private String name;
   37.54 +
   37.55 +    public DimensionMapper() {
   37.56 +        uri = null;
   37.57 +        index = 0;
   37.58 +        name = ELEMENT_NAME;
   37.59 +    }
   37.60 +
   37.61 +    public DimensionMapper(String uri, int index, String name) {
   37.62 +        this.uri = uri;
   37.63 +        this.index = index;
   37.64 +        this.name = name;
   37.65 +    }
   37.66 +
   37.67 +    public boolean isExtension(int i) {
   37.68 +        return false;
   37.69 +    }
   37.70 +
   37.71 +    public boolean isPresent(IUnmarshallingContext iUnmarshallingContext) throws JiBXException {
   37.72 +        return iUnmarshallingContext.isAt(uri, ELEMENT_NAME);
   37.73 +    }
   37.74 +
   37.75 +    public void marshal(Object object, IMarshallingContext iMarshallingContext) throws JiBXException {
   37.76 +        if (!(object instanceof Dimension)) {
   37.77 +            throw new JiBXException("Invalid object type for marshaller");
   37.78 +        } else if (!(iMarshallingContext instanceof MarshallingContext)) {
   37.79 +            throw new JiBXException("Invalid object type for marshaller");
   37.80 +        } else {
   37.81 +            MarshallingContext ctx = (MarshallingContext) iMarshallingContext;
   37.82 +            Dimension dimension = (Dimension) object;
   37.83 +            ctx.startTagAttributes(index, name).
   37.84 +                    attribute(index, WIDTH_NAME, dimension.width).
   37.85 +                    attribute(index, HEIGHT_NAME, dimension.height).
   37.86 +                    closeStartEmpty();
   37.87 +        }
   37.88 +    }
   37.89 +
   37.90 +    public Object unmarshal(Object object, IUnmarshallingContext iUnmarshallingContext) throws JiBXException {
   37.91 +        // make sure we're at the appropriate start tag
   37.92 +        UnmarshallingContext ctx = (UnmarshallingContext) iUnmarshallingContext;
   37.93 +        if (!ctx.isAt(uri, name)) {
   37.94 +            ctx.throwStartTagNameError(uri, name);
   37.95 +        }
   37.96 +        // get values
   37.97 +        int width = ctx.attributeInt(uri, WIDTH_NAME, index);
   37.98 +        int height = ctx.attributeInt(uri, HEIGHT_NAME, index);
   37.99 +        // state finished parsing
  37.100 +        ctx.parsePastEndTag(uri, name);
  37.101 +        // create
  37.102 +        return new Dimension(width, height);
  37.103 +    }
  37.104 +}
    38.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    38.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/jibxhelpers/InsetsMapper.java	Wed Apr 29 00:27:46 2009 -0700
    38.3 @@ -0,0 +1,117 @@
    38.4 +/*
    38.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    38.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    38.7 + *
    38.8 + * This code is free software; you can redistribute it and/or modify it
    38.9 + * under the terms of the GNU General Public License version 2 only, as
   38.10 + * published by the Free Software Foundation.  Sun designates this
   38.11 + * particular file as subject to the "Classpath" exception as provided
   38.12 + * by Sun in the LICENSE file that accompanied this code.
   38.13 + *
   38.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   38.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   38.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   38.17 + * version 2 for more details (a copy is included in the LICENSE file that
   38.18 + * accompanied this code).
   38.19 + *
   38.20 + * You should have received a copy of the GNU General Public License version
   38.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   38.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   38.23 + *
   38.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   38.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   38.26 + * have any questions.
   38.27 + */
   38.28 +package org.jdesktop.swingx.designer.jibxhelpers;
   38.29 +
   38.30 +import org.jibx.runtime.IAliasable;
   38.31 +import org.jibx.runtime.IMarshaller;
   38.32 +import org.jibx.runtime.IMarshallingContext;
   38.33 +import org.jibx.runtime.IUnmarshaller;
   38.34 +import org.jibx.runtime.IUnmarshallingContext;
   38.35 +import org.jibx.runtime.JiBXException;
   38.36 +import org.jibx.runtime.impl.MarshallingContext;
   38.37 +import org.jibx.runtime.impl.UnmarshallingContext;
   38.38 +
   38.39 +import java.awt.Insets;
   38.40 +
   38.41 +/**
   38.42 + * InsetsMapper
   38.43 + *
   38.44 + * @author Created by Jasper Potts (Jun 8, 2007)
   38.45 + */
   38.46 +public class InsetsMapper implements IMarshaller, IUnmarshaller, IAliasable {
   38.47 +    private static final String ELEMENT_NAME = "insets";
   38.48 +    private static final String TOP_NAME = "top";
   38.49 +    private static final String BOTTOM_NAME = "bottom";
   38.50 +    private static final String LEFT_NAME = "left";
   38.51 +    private static final String RIGHT_NAME = "right";
   38.52 +
   38.53 +    private String uri;
   38.54 +    private int index;
   38.55 +    private String name;
   38.56 +
   38.57 +    public InsetsMapper() {
   38.58 +        uri = null;
   38.59 +        index = 0;
   38.60 +        name = ELEMENT_NAME;
   38.61 +    }
   38.62 +
   38.63 +    public InsetsMapper(String uri, int index, String name) {
   38.64 +        this.uri = uri;
   38.65 +        this.index = index;
   38.66 +        this.name = name;
   38.67 +//        System.out.println("InsetsMapper.CONSTRCUTED with uri="+uri+" index="+index+" name="+name);
   38.68 +    }
   38.69 +
   38.70 +    public boolean isExtension(int i) {
   38.71 +        return false;
   38.72 +    }
   38.73 +
   38.74 +    public boolean isPresent(IUnmarshallingContext iUnmarshallingContext) throws JiBXException {
   38.75 +        return iUnmarshallingContext.isAt(uri, ELEMENT_NAME);
   38.76 +    }
   38.77 +
   38.78 +    public void marshal(Object object, IMarshallingContext iMarshallingContext) throws JiBXException {
   38.79 +        if (!(object instanceof Insets)) {
   38.80 +            throw new JiBXException("Invalid object type for marshaller");
   38.81 +        } else if (!(iMarshallingContext instanceof MarshallingContext)) {
   38.82 +            throw new JiBXException("Invalid object type for marshaller");
   38.83 +        } else {
   38.84 +//            System.out.println("InsetsMapper.marshal name="+name);
   38.85 +            MarshallingContext ctx = (MarshallingContext) iMarshallingContext;
   38.86 +            Insets insets = (Insets) object;
   38.87 +            ctx.startTagAttributes(index, name).
   38.88 +                    attribute(index, TOP_NAME, insets.top).
   38.89 +                    attribute(index, BOTTOM_NAME, insets.bottom).
   38.90 +                    attribute(index, LEFT_NAME, insets.left).
   38.91 +                    attribute(index, RIGHT_NAME, insets.right).
   38.92 +                    closeStartEmpty();
   38.93 +        }
   38.94 +    }
   38.95 +
   38.96 +    public Object unmarshal(Object object, IUnmarshallingContext iUnmarshallingContext) throws JiBXException {
   38.97 +        // make sure we're at the appropriate start tag
   38.98 +        UnmarshallingContext ctx = (UnmarshallingContext) iUnmarshallingContext;
   38.99 +        if (!ctx.isAt(uri, name)) {
  38.100 +//            System.out.println("InsetsMapper.unmarshal name="+name+" uri="+uri+" currentNode="+ctx.getName());
  38.101 +            ctx.throwStartTagNameError(uri, name);
  38.102 +        } else {
  38.103 +//        System.out.println("InsetsMapper.unmarshal name="+name+" uri="+uri+" currentNode="+ctx.getName());
  38.104 +        }
  38.105 +        // get values
  38.106 +        int top = ctx.attributeInt(uri, TOP_NAME, index);
  38.107 +        int bottom = ctx.attributeInt(uri, BOTTOM_NAME, index);
  38.108 +        int left = ctx.attributeInt(uri, LEFT_NAME, index);
  38.109 +        int right = ctx.attributeInt(uri, RIGHT_NAME, index);
  38.110 +        // create new hashmap if needed
  38.111 +        Insets insets = (Insets) object;
  38.112 +        if (insets == null) {
  38.113 +            insets = new Insets(top, left, bottom, right);
  38.114 +        } else {
  38.115 +            insets.set(top, left, bottom, right);
  38.116 +        }
  38.117 +        ctx.parsePastEndTag(uri, name);
  38.118 +        return insets;
  38.119 +    }
  38.120 +}
    39.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    39.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/paint/AbstractGradient.java	Wed Apr 29 00:27:46 2009 -0700
    39.3 @@ -0,0 +1,280 @@
    39.4 +/*
    39.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    39.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    39.7 + *
    39.8 + * This code is free software; you can redistribute it and/or modify it
    39.9 + * under the terms of the GNU General Public License version 2 only, as
   39.10 + * published by the Free Software Foundation.  Sun designates this
   39.11 + * particular file as subject to the "Classpath" exception as provided
   39.12 + * by Sun in the LICENSE file that accompanied this code.
   39.13 + *
   39.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   39.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   39.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   39.17 + * version 2 for more details (a copy is included in the LICENSE file that
   39.18 + * accompanied this code).
   39.19 + *
   39.20 + * You should have received a copy of the GNU General Public License version
   39.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   39.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   39.23 + *
   39.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   39.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   39.26 + * have any questions.
   39.27 + */
   39.28 +package org.jdesktop.swingx.designer.paint;
   39.29 +
   39.30 +import java.awt.Color;
   39.31 +import java.awt.MultipleGradientPaint.CycleMethod;
   39.32 +import java.awt.Paint;
   39.33 +import java.beans.PropertyChangeEvent;
   39.34 +import java.beans.PropertyChangeListener;
   39.35 +import java.util.ArrayList;
   39.36 +import java.util.Collections;
   39.37 +import java.util.Comparator;
   39.38 +import java.util.List;
   39.39 +
   39.40 +/** @author rbair */
   39.41 +public abstract class AbstractGradient extends PaintModel {
   39.42 +    private final Comparator<GradientStop> sorter = new Comparator<GradientStop>() {
   39.43 +        public int compare(GradientStop s1, GradientStop s2) {
   39.44 +            //since a float value may be -.001 or .001, and since casting
   39.45 +            //this to an int will round off to 0, I have to do a more direct
   39.46 +            //comparison
   39.47 +            float v = s1.getPosition() - s2.getPosition();
   39.48 +
   39.49 +            if (v < 0) return -1;
   39.50 +            else if (v == 0) return 0;
   39.51 +            else return 1;
   39.52 +        }
   39.53 +    };
   39.54 +    private PropertyChangeListener stopListener = new PropertyChangeListener() {
   39.55 +        public void propertyChange(PropertyChangeEvent evt) {
   39.56 +            if (evt.getPropertyName().equals("position")) {
   39.57 +                if (stops.contains((GradientStop) evt.getSource())) {
   39.58 +                    resortModel(true);
   39.59 +                } else {
   39.60 +                    System.err.println("[WARNING] The position of an orphaned stop was changed.");
   39.61 +                }
   39.62 +            } else {
   39.63 +                firePropertyChange("paint", null, getPaint());
   39.64 +            }
   39.65 +        }
   39.66 +    };
   39.67 +
   39.68 +    private List<GradientStop> stops = new ArrayList<GradientStop>();
   39.69 +    private List<GradientStop> unmodifiable;
   39.70 +    private CycleMethod cycleMethod;
   39.71 +
   39.72 +    protected AbstractGradient() {
   39.73 +        unmodifiable = Collections.unmodifiableList(stops);
   39.74 +        cycleMethod = CycleMethod.NO_CYCLE;
   39.75 +        setStops(new GradientStop(0, new Matte(Color.BLUE, null)),
   39.76 +                new GradientStop(1, new Matte(Color.WHITE, null)));
   39.77 +    }
   39.78 +
   39.79 +    /**
   39.80 +     * Copy stops and cycleMethod from src to dst
   39.81 +     *
   39.82 +     * @param dst The gradient to update to same stops and cycle method as this gradient
   39.83 +     */
   39.84 +    protected void copyTo(AbstractGradient dst) {
   39.85 +        dst.stops.clear();
   39.86 +        List<GradientStop> stops = new ArrayList<GradientStop>();
   39.87 +        for (GradientStop stop : this.stops) {
   39.88 +            stops.add(stop.clone());
   39.89 +        }
   39.90 +        dst.setStops(stops);
   39.91 +        dst.cycleMethod = this.cycleMethod;
   39.92 +    }
   39.93 +
   39.94 +
   39.95 +    public PaintControlType getPaintControlType() {
   39.96 +        return PaintControlType.control_line;
   39.97 +    }
   39.98 +
   39.99 +    public void setCycleMethod(CycleMethod method) {
  39.100 +        CycleMethod old = cycleMethod;
  39.101 +        Paint oldp = getPaint();
  39.102 +        cycleMethod = method == null ? CycleMethod.NO_CYCLE : method;
  39.103 +        firePropertyChange("cycleMethod", old, cycleMethod);
  39.104 +        firePropertyChange("paint", oldp, getPaint());
  39.105 +    }
  39.106 +
  39.107 +    public final CycleMethod getCycleMethod() {
  39.108 +        return cycleMethod;
  39.109 +    }
  39.110 +
  39.111 +    public void setStops(GradientStop... stops) {
  39.112 +        if (stops == null || stops.length < 1) {
  39.113 +            throw new IllegalArgumentException("Must have more than one stop");
  39.114 +        }
  39.115 +        List<GradientStop> old = new ArrayList<GradientStop>(this.stops);
  39.116 +        for (GradientStop stop : old) {
  39.117 +            stop.removePropertyChangeListener(stopListener);
  39.118 +        }
  39.119 +        Paint oldp = getPaint();
  39.120 +        this.stops.clear();
  39.121 +        Collections.addAll(this.stops, stops);
  39.122 +        for (GradientStop stop : this.stops) {
  39.123 +            stop.addPropertyChangeListener(stopListener);
  39.124 +        }
  39.125 +        resortModel(false);
  39.126 +        firePropertyChange("stops", old, getStops());
  39.127 +        firePropertyChange("paint", oldp, getPaint());
  39.128 +    }
  39.129 +
  39.130 +    public final void setStops(List<GradientStop> stops) {
  39.131 +        setStops(stops == null ? null : stops.toArray(new GradientStop[0]));
  39.132 +    }
  39.133 +
  39.134 +    public final List<GradientStop> getStops() {
  39.135 +        return unmodifiable;
  39.136 +    }
  39.137 +
  39.138 +    private void resortModel(boolean fireEvent) {
  39.139 +        Collections.sort(this.stops, sorter);
  39.140 +        if (fireEvent) {
  39.141 +            Paint oldp = getPaint();
  39.142 +            firePropertyChange("stops", null, getStops());
  39.143 +            firePropertyChange("paint", oldp, getPaint());
  39.144 +        }
  39.145 +    }
  39.146 +
  39.147 +    //adds a new stop, and interoplates the proper color to use based on
  39.148 +    //its position
  39.149 +    public GradientStop addStop(float position) {
  39.150 +        GradientStop prevStop = null;
  39.151 +        GradientStop nextStop = null;
  39.152 +        for (GradientStop stop : stops) {
  39.153 +            if (stop.getPosition() <= position) {
  39.154 +                prevStop = stop;
  39.155 +            } else if (stop.getPosition() >= position) {
  39.156 +                nextStop = stop;
  39.157 +            }
  39.158 +        }
  39.159 +
  39.160 +        Matte c = null;
  39.161 +        if (prevStop != null && nextStop != null) {
  39.162 +            //interpolate the value of c
  39.163 +            c = interpolate(prevStop.getColor(), nextStop.getColor(),
  39.164 +                    position / (nextStop.getPosition() - prevStop.getPosition()));
  39.165 +        } else if (prevStop != null) {
  39.166 +            c = prevStop.getColor().clone();
  39.167 +        } else if (nextStop != null) {
  39.168 +            c = nextStop.getColor().clone();
  39.169 +        }
  39.170 +
  39.171 +        return addStop(position, c);
  39.172 +    }
  39.173 +
  39.174 +    public GradientStop addStop(float position, Matte color) {
  39.175 +        GradientStop s = new GradientStop(position, color);
  39.176 +        s.addPropertyChangeListener(stopListener);
  39.177 +        List<GradientStop> old = new ArrayList<GradientStop>(stops);
  39.178 +        Paint oldp = getPaint();
  39.179 +        stops.add(s);
  39.180 +        resortModel(false);
  39.181 +        firePropertyChange("stops", old, getStops());
  39.182 +        firePropertyChange("paint", oldp, getPaint());
  39.183 +
  39.184 +        return s;
  39.185 +    }
  39.186 +
  39.187 +    public GradientStop removeStop(GradientStop s) {
  39.188 +        List<GradientStop> old = new ArrayList<GradientStop>(stops);
  39.189 +        Paint oldp = getPaint();
  39.190 +        stops.remove(s);
  39.191 +        s.removePropertyChangeListener(stopListener);
  39.192 +        resortModel(false);
  39.193 +        firePropertyChange("stops", old, getStops());
  39.194 +        firePropertyChange("paint", oldp, getPaint());
  39.195 +        return s;
  39.196 +    }
  39.197 +
  39.198 +    @Override public Paint getPaint() {
  39.199 +        if (stops.size() == 0) {
  39.200 +            return null;
  39.201 +        }
  39.202 +
  39.203 +        //there are stops.size() number of main stops. Between each is
  39.204 +        //a fractional stop. Thus, there are:
  39.205 +        //stops.size() + stops.size() - 1
  39.206 +        //number of fractions and colors.
  39.207 +
  39.208 +        float[] fractions = new float[stops.size() + stops.size() - 1];
  39.209 +        Matte[] colors = new Matte[fractions.length];
  39.210 +
  39.211 +        //for each stop, create the stop and it's associated fraction
  39.212 +        int index = 0; // the index into fractions and colors
  39.213 +        for (int i = 0; i < stops.size(); i++) {
  39.214 +            GradientStop s = stops.get(i);
  39.215 +            //copy over the stop's data
  39.216 +            colors[index] = s.getColor();
  39.217 +            fractions[index] = s.getPosition();
  39.218 +
  39.219 +            //If this isn't the last stop, then add in the fraction
  39.220 +            if (index < fractions.length - 1) {
  39.221 +                float f1 = s.getPosition();
  39.222 +                float f2 = stops.get(i + 1).getPosition();
  39.223 +
  39.224 +                index++;
  39.225 +                fractions[index] = f1 + (f2 - f1) * s.getMidpoint();
  39.226 +                colors[index] = interpolate(colors[index - 1], stops.get(i + 1).getColor(), .5f);
  39.227 +            }
  39.228 +
  39.229 +            index++;
  39.230 +        }
  39.231 +
  39.232 +        for (int i = 1; i < fractions.length; i++) {
  39.233 +            //to avoid an error with LinearGradientPaint where two fractions
  39.234 +            //are identical, bump up the fraction value by a miniscule amount
  39.235 +            //if it is identical to the previous one
  39.236 +            //NOTE: The <= is critical because the previous value may already
  39.237 +            //have been bumped up
  39.238 +            if (fractions[i] <= fractions[i - 1]) {
  39.239 +                fractions[i] = fractions[i - 1] + .000001f;
  39.240 +            }
  39.241 +        }
  39.242 +
  39.243 +        //another boundary condition where multiple stops are all at the end. The
  39.244 +        //previous loop bumped all but one of these past 1.0, which is bad.
  39.245 +        //so remove any fractions (and their colors!) that are beyond 1.0
  39.246 +        int outOfBoundsIndex = -1;
  39.247 +        for (int i = 0; i < fractions.length; i++) {
  39.248 +            if (fractions[i] > 1) {
  39.249 +                outOfBoundsIndex = i;
  39.250 +                break;
  39.251 +            }
  39.252 +        }
  39.253 +
  39.254 +        if (outOfBoundsIndex >= 0) {
  39.255 +            float[] f = fractions;
  39.256 +            Matte[] c = colors;
  39.257 +            fractions = new float[outOfBoundsIndex];
  39.258 +            colors = new Matte[outOfBoundsIndex];
  39.259 +            System.arraycopy(f, 0, fractions, 0, outOfBoundsIndex);
  39.260 +            System.arraycopy(c, 0, colors, 0, outOfBoundsIndex);
  39.261 +        }
  39.262 +
  39.263 +        return createPaint(fractions, colors, cycleMethod);
  39.264 +    }
  39.265 +
  39.266 +    protected abstract Paint createPaint(float[] fractions, Matte[] colors, CycleMethod method);
  39.267 +
  39.268 +    protected static Matte interpolate(Matte v0, Matte v1, float fraction) {
  39.269 +        return new Matte(interpolate(v0.getColor(), v1.getColor(), fraction), v0.getUiDefaults());
  39.270 +    }
  39.271 +
  39.272 +    protected static Color interpolate(Color v0, Color v1, float fraction) {
  39.273 +        int r = v0.getRed() +
  39.274 +                (int) ((v1.getRed() - v0.getRed()) * fraction + 0.5f);
  39.275 +        int g = v0.getGreen() +
  39.276 +                (int) ((v1.getGreen() - v0.getGreen()) * fraction + 0.5f);
  39.277 +        int b = v0.getBlue() +
  39.278 +                (int) ((v1.getBlue() - v0.getBlue()) * fraction + 0.5f);
  39.279 +        int a = v0.getAlpha() +
  39.280 +                (int) ((v1.getAlpha() - v0.getAlpha()) * fraction + 0.5f);
  39.281 +        return new Color(r, g, b, a);
  39.282 +    }
  39.283 +}
    40.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    40.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/paint/Gradient.java	Wed Apr 29 00:27:46 2009 -0700
    40.3 @@ -0,0 +1,51 @@
    40.4 +/*
    40.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    40.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    40.7 + *
    40.8 + * This code is free software; you can redistribute it and/or modify it
    40.9 + * under the terms of the GNU General Public License version 2 only, as
   40.10 + * published by the Free Software Foundation.  Sun designates this
   40.11 + * particular file as subject to the "Classpath" exception as provided
   40.12 + * by Sun in the LICENSE file that accompanied this code.
   40.13 + *
   40.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   40.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   40.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   40.17 + * version 2 for more details (a copy is included in the LICENSE file that
   40.18 + * accompanied this code).
   40.19 + *
   40.20 + * You should have received a copy of the GNU General Public License version
   40.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   40.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   40.23 + *
   40.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   40.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   40.26 + * have any questions.
   40.27 + */
   40.28 +package org.jdesktop.swingx.designer.paint;
   40.29 +
   40.30 +import java.awt.Color;
   40.31 +import java.awt.LinearGradientPaint;
   40.32 +import java.awt.MultipleGradientPaint.CycleMethod;
   40.33 +import java.awt.Paint;
   40.34 +
   40.35 +/**
   40.36 + * Represents a GradientPaint or LinearGradientPaint.
   40.37 + *
   40.38 + * @author rbair
   40.39 + */
   40.40 +public class Gradient extends AbstractGradient implements Cloneable {
   40.41 +    protected Paint createPaint(float[] fractions, Matte[] mattes, CycleMethod method) {
   40.42 +        Color[] colors = new Color[mattes.length];
   40.43 +        for (int i = 0; i < colors.length; i++) {
   40.44 +            colors[i] = mattes[i].getColor();
   40.45 +        }
   40.46 +        return new LinearGradientPaint(0, 0, 1, 0, fractions, colors, method);
   40.47 +    }
   40.48 +
   40.49 +    @Override public Gradient clone() {
   40.50 +        Gradient gradient = new Gradient();
   40.51 +        copyTo(gradient);
   40.52 +        return gradient;
   40.53 +    }
   40.54 +}
    41.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    41.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/paint/GradientStop.java	Wed Apr 29 00:27:46 2009 -0700
    41.3 @@ -0,0 +1,123 @@
    41.4 +/*
    41.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    41.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    41.7 + *
    41.8 + * This code is free software; you can redistribute it and/or modify it
    41.9 + * under the terms of the GNU General Public License version 2 only, as
   41.10 + * published by the Free Software Foundation.  Sun designates this
   41.11 + * particular file as subject to the "Classpath" exception as provided
   41.12 + * by Sun in the LICENSE file that accompanied this code.
   41.13 + *
   41.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   41.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   41.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   41.17 + * version 2 for more details (a copy is included in the LICENSE file that
   41.18 + * accompanied this code).
   41.19 + *
   41.20 + * You should have received a copy of the GNU General Public License version
   41.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   41.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   41.23 + *
   41.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   41.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   41.26 + * have any questions.
   41.27 + */
   41.28 +package org.jdesktop.swingx.designer.paint;
   41.29 +
   41.30 +import org.jdesktop.beans.AbstractBean;
   41.31 +
   41.32 +import java.beans.PropertyChangeEvent;
   41.33 +import java.beans.PropertyChangeListener;
   41.34 +
   41.35 +/** Each stop is defined linearly, at positions between 0 and 1. */
   41.36 +public final class GradientStop extends AbstractBean implements Cloneable {
   41.37 +    private float position;
   41.38 +    private Matte color;
   41.39 +    private PropertyChangeListener matteListener = new PropertyChangeListener() {
   41.40 +        public void propertyChange(PropertyChangeEvent evt) {
   41.41 +            firePropertyChange("color", null, color);
   41.42 +        }
   41.43 +    };
   41.44 +
   41.45 +    /**
   41.46 +     * The midpoint to the right of the stop. Must be 0 &lt;= midpoint &lt;= 1. The midpoint value of the last Stop is
   41.47 +     * ignored.
   41.48 +     */
   41.49 +    private float midpoint;
   41.50 +
   41.51 +    public GradientStop() {}
   41.52 +
   41.53 +    public GradientStop(float position, Matte color) {
   41.54 +        if (color == null) {
   41.55 +            throw new IllegalArgumentException("Color must not be null");
   41.56 +        }
   41.57 +
   41.58 +        this.position = clamp(0, 1, position);
   41.59 +        this.color = color;
   41.60 +        this.midpoint = .5f;
   41.61 +
   41.62 +        if (this.color != null) {
   41.63 +            this.color.addPropertyChangeListener("color", matteListener);
   41.64 +        }
   41.65 +    }
   41.66 +
   41.67 +
   41.68 +    public GradientStop clone() {
   41.69 +        GradientStop clone = new GradientStop(this.position, this.color.clone());
   41.70 +        clone.midpoint = midpoint;
   41.71 +        return clone;
   41.72 +    }
   41.73 +
   41.74 +    public final float getPosition() {
   41.75 +        return position;
   41.76 +    }
   41.77 +
   41.78 +    public final void setPosition(float position) {
   41.79 +        float old = this.position;
   41.80 +        this.position = clamp(0, 1, position);
   41.81 +        firePropertyChange("position", old, this.position);
   41.82 +    }
   41.83 +
   41.84 +    public final Matte getColor() {
   41.85 +        return color;
   41.86 +    }
   41.87 +
   41.88 +    public final void setColor(Matte c) {
   41.89 +        if (c == null) throw new IllegalArgumentException("Color must not be null");
   41.90 +        Matte old = this.color;
   41.91 +        if (old != null) old.removePropertyChangeListener(matteListener);
   41.92 +        this.color = c;
   41.93 +        if (this.color != null) this.color.addPropertyChangeListener(matteListener);
   41.94 +        firePropertyChange("color", old, c);
   41.95 +    }
   41.96 +
   41.97 +    public final void setOpacity(int opacity) {
   41.98 +        int old = getOpacity();
   41.99 +        color.setAlpha(opacity);
  41.100 +        firePropertyChange("opacity", old, getOpacity());
  41.101 +    }
  41.102 +
  41.103 +    public final int getOpacity() {
  41.104 +        return color.getAlpha();
  41.105 +    }
  41.106 +
  41.107 +    public final float getMidpoint() {
  41.108 +        return midpoint;
  41.109 +    }
  41.110 +
  41.111 +    public final void setMidpoint(float midpoint) {
  41.112 +        float old = this.midpoint;
  41.113 +        this.midpoint = clamp(0, 1, midpoint);
  41.114 +        firePropertyChange("midpoint", old, this.midpoint);
  41.115 +    }
  41.116 +
  41.117 +    private float clamp(float lo, float hi, float value) {
  41.118 +        if (value < lo) {
  41.119 +            return lo;
  41.120 +        } else if (value > hi) {
  41.121 +            return hi;
  41.122 +        } else {
  41.123 +            return value;
  41.124 +        }
  41.125 +    }
  41.126 +}
    42.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    42.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/paint/Matte.java	Wed Apr 29 00:27:46 2009 -0700
    42.3 @@ -0,0 +1,610 @@
    42.4 +/*
    42.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    42.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    42.7 + *
    42.8 + * This code is free software; you can redistribute it and/or modify it
    42.9 + * under the terms of the GNU General Public License version 2 only, as
   42.10 + * published by the Free Software Foundation.  Sun designates this
   42.11 + * particular file as subject to the "Classpath" exception as provided
   42.12 + * by Sun in the LICENSE file that accompanied this code.
   42.13 + *
   42.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   42.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   42.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   42.17 + * version 2 for more details (a copy is included in the LICENSE file that
   42.18 + * accompanied this code).
   42.19 + *
   42.20 + * You should have received a copy of the GNU General Public License version
   42.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   42.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   42.23 + *
   42.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   42.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   42.26 + * have any questions.
   42.27 + */
   42.28 +package org.jdesktop.swingx.designer.paint;
   42.29 +
   42.30 +import org.jdesktop.swingx.designer.utils.HasUIDefaults;
   42.31 +import org.jibx.runtime.IUnmarshallingContext;
   42.32 +
   42.33 +import javax.swing.UIDefaults;
   42.34 +import java.awt.Color;
   42.35 +import java.awt.Paint;
   42.36 +import java.beans.PropertyChangeEvent;
   42.37 +import java.beans.PropertyChangeListener;
   42.38 +
   42.39 +/**
   42.40 + * Representing a single uniform color. Basically, it represents the java.awt.Color. It can either be absolute or
   42.41 + * derived from a UIDefault color.
   42.42 + *
   42.43 + * @author rbair & jasper potts
   42.44 + */
   42.45 +public class Matte extends PaintModel implements HasUIDefaults {
   42.46 +    private float[] tmpf1 = new float[3];
   42.47 +    private float[] tmpf2 = new float[3];
   42.48 +
   42.49 +    private int red;
   42.50 +    private int green;
   42.51 +    private int blue;
   42.52 +    private int alpha;
   42.53 +    private Color cached = null;
   42.54 +
   42.55 +    /**
   42.56 +     * The name of the ui default key to derive this color from.
   42.57 +     */
   42.58 +    private String uiDefaultParentName = null;
   42.59 +    /**
   42.60 +     * The name of the bean property, or client property, on this component
   42.61 +     * from which to extract a color used for painting. So for example the color
   42.62 +     * used in a painter could be the background of the component.
   42.63 +     */
   42.64 +    private String componentPropertyName = null;
   42.65 +    private float hueOffset = 0, saturationOffset = 0, brightnessOffset = 0;
   42.66 +    private int alphaOffset = 0;
   42.67 +    /**
   42.68 +     * When true this color will become a UIResource in the UIManager defaults
   42.69 +     * table. If false, then it will not be a UIResource. This is sometimes
   42.70 +     * required, such as with colors installed on renderers.
   42.71 +     */
   42.72 +    private boolean uiResource = true;
   42.73 +
   42.74 +    /** This is a local UIDefaults that contains all the UIDefaults in the Model. */
   42.75 +    private transient UIDefaults uiDefaults = new UIDefaults();
   42.76 +    private PropertyChangeListener uiDefaultsChangeListener = new PropertyChangeListener() {
   42.77 +        public void propertyChange(PropertyChangeEvent evt) {
   42.78 +            if (uiDefaultParentName != null && uiDefaultParentName.equals(evt.getPropertyName())) {
   42.79 +                updateARGBFromOffsets();
   42.80 +            }
   42.81 +        }
   42.82 +    };
   42.83 +
   42.84 +    // =================================================================================================================
   42.85 +    // Constructors
   42.86 +
   42.87 +    /** propected constructor for JIBX */
   42.88 +    protected Matte() {}
   42.89 +
   42.90 +    public Matte(Color c, UIDefaults uiDefaults) {
   42.91 +        if (c != null) {
   42.92 +            this.red = c.getRed();
   42.93 +            this.green = c.getGreen();
   42.94 +            this.blue = c.getBlue();
   42.95 +            this.alpha = c.getAlpha();
   42.96 +        }
   42.97 +        setUiDefaults(uiDefaults);
   42.98 +    }
   42.99 +
  42.100 +    // =================================================================================================================
  42.101 +    // JIBX Methods
  42.102 +
  42.103 +    /**
  42.104 +     * Called by JIBX after all fields have been set
  42.105 +     *
  42.106 +     * @param context The JIBX Unmarshalling Context
  42.107 +     */
  42.108 +    protected void postSet(IUnmarshallingContext context) {
  42.109 +        // walk up till we get synth model
  42.110 +        for (int i = 0; i < context.getStackDepth(); i++) {
  42.111 +            if (context.getStackObject(i) instanceof HasUIDefaults) {
  42.112 +                UIDefaults uiDefaults = ((HasUIDefaults) context.getStackObject(i)).getUiDefaults();
  42.113 +                if (uiDefaults != null) {
  42.114 +                    setUiDefaults(uiDefaults);
  42.115 +                    break;
  42.116 +                }
  42.117 +            }
  42.118 +        }
  42.119 +    }
  42.120 +
  42.121 +    // =================================================================================================================
  42.122 +    // Matte methods
  42.123 +
  42.124 +    /**
  42.125 +     * Is the matte an absolute color ot derived from a parent ui default
  42.126 +     *
  42.127 +     * @return <code>true</code> if this is a absolute not uidefault derived color
  42.128 +     */
  42.129 +    public boolean isAbsolute() {
  42.130 +        return uiDefaultParentName == null;
  42.131 +    }
  42.132 +
  42.133 +    /**
  42.134 +     * Set all properties of this matte to be the same as <code>srcMatte</code> and fire all the change events
  42.135 +     *
  42.136 +     * @param srcMatte the matte to copy properties from
  42.137 +     */
  42.138 +    public void copy(Matte srcMatte) {
  42.139 +        // keep old values
  42.140 +        Color oldColor = getColor();
  42.141 +        String oldParentName = uiDefaultParentName;
  42.142 +        String oldComponentPropertyName = componentPropertyName;
  42.143 +        boolean oldUiResource = uiResource;
  42.144 +        int oldR = red, oldG = green, oldB = blue, oldA = alpha;
  42.145 +        float oldH = hueOffset, oldS = saturationOffset, oldBr = brightnessOffset;
  42.146 +        // set properties
  42.147 +        if (uiResource != srcMatte.uiResource) {
  42.148 +            uiResource = srcMatte.uiResource;
  42.149 +            firePropertyChange("uiResource", oldUiResource, isUiResource());
  42.150 +        }
  42.151 +        if (red != srcMatte.red) {
  42.152 +            red = srcMatte.red;
  42.153 +            firePropertyChange("red", oldR, getRed());
  42.154 +        }
  42.155 +        if (green != srcMatte.green) {
  42.156 +            green = srcMatte.green;
  42.157 +            firePropertyChange("green", oldG, getGreen());
  42.158 +        }
  42.159 +        if (blue != srcMatte.blue) {
  42.160 +            blue = srcMatte.blue;
  42.161 +            firePropertyChange("blue", oldB, getBlue());
  42.162 +        }
  42.163 +        if (alpha != srcMatte.alpha) {
  42.164 +            alpha = srcMatte.alpha;
  42.165 +            firePropertyChange("alpha", oldA, getAlpha());
  42.166 +        }
  42.167 +        if (hueOffset != srcMatte.hueOffset) {
  42.168 +            hueOffset = srcMatte.hueOffset;
  42.169 +            firePropertyChange("hueOffset", oldH, getHueOffset());
  42.170 +        }
  42.171 +        if (saturationOffset != srcMatte.saturationOffset) {
  42.172 +            saturationOffset = srcMatte.saturationOffset;
  42.173 +            firePropertyChange("saturationOffset", oldS, getSaturationOffset());
  42.174 +        }
  42.175 +        if (brightnessOffset != srcMatte.brightnessOffset) {
  42.176 +            brightnessOffset = srcMatte.brightnessOffset;
  42.177 +            firePropertyChange("brightnessOffset", oldBr, getBrightnessOffset());
  42.178 +        }
  42.179 +        if (alphaOffset != srcMatte.alphaOffset) {
  42.180 +            alphaOffset = srcMatte.alphaOffset;
  42.181 +            firePropertyChange("alphaOffset", oldA, getAlphaOffset());
  42.182 +        }
  42.183 +        if (uiDefaultParentName != srcMatte.uiDefaultParentName) {
  42.184 +            uiDefaultParentName = srcMatte.uiDefaultParentName;
  42.185 +            firePropertyChange("uiDefaultParentName", oldParentName, getUiDefaultParentName());
  42.186 +        }
  42.187 +        if (componentPropertyName != srcMatte.componentPropertyName) {
  42.188 +            componentPropertyName = srcMatte.componentPropertyName;
  42.189 +            firePropertyChange("componentPropertyName", oldComponentPropertyName, getComponentPropertyName());
  42.190 +        }
  42.191 +        if (uiDefaults != srcMatte.uiDefaults) {
  42.192 +            setUiDefaults(srcMatte.uiDefaults);
  42.193 +        }
  42.194 +        if (!oldColor.equals(srcMatte.getColor())) {
  42.195 +            firePropertyChange("paint", oldColor, getColor());
  42.196 +            firePropertyChange("color", oldColor, getColor());
  42.197 +            fireHSBChange(oldR, oldG, oldB);
  42.198 +        }
  42.199 +    }
  42.200 +
  42.201 +    // =================================================================================================================
  42.202 +    // PaintModel methods
  42.203 +
  42.204 +    public PaintControlType getPaintControlType() {
  42.205 +        return PaintControlType.none;
  42.206 +    }
  42.207 +
  42.208 +    // =================================================================================================================
  42.209 +    // Bean Methods
  42.210 +
  42.211 +    /**
  42.212 +     * Get the local UIDefaults that contains all the UIDefaults in the Model.
  42.213 +     *
  42.214 +     * @return The UIDefaults for the model that contains this Matte, can be null if this Matte is not part of a bigger
  42.215 +     *         model
  42.216 +     */
  42.217 +    public UIDefaults getUiDefaults() {
  42.218 +        return uiDefaults;
  42.219 +    }
  42.220 +
  42.221 +    /**
  42.222 +     * Set the local UIDefaults that contains all the UIDefaults in the Model.
  42.223 +     *
  42.224 +     * @param uiDefaults The UIDefaults for the model that contains this Matte, can be null if this Matte is not part of
  42.225 +     *                   a bigger model
  42.226 +     */
  42.227 +    public void setUiDefaults(UIDefaults uiDefaults) {
  42.228 +        if (uiDefaults != this.uiDefaults) {
  42.229 +            UIDefaults old = getUiDefaults();
  42.230 +            if (old != null) old.removePropertyChangeListener(uiDefaultsChangeListener);
  42.231 +            this.uiDefaults = uiDefaults;
  42.232 +            if (uiDefaults != null) this.uiDefaults.addPropertyChangeListener(uiDefaultsChangeListener);
  42.233 +            firePropertyChange("uiDefaults", old, getUiDefaults());
  42.234 +        }
  42.235 +    }
  42.236 +
  42.237 +    /**
  42.238 +     * Get the name if the uidefault color that is the parent that this matte is derived from. If null then this is a
  42.239 +     * absolute color.
  42.240 +     *
  42.241 +     * @return Parent color ui default name
  42.242 +     */
  42.243 +    public String getUiDefaultParentName() {
  42.244 +        return uiDefaultParentName;
  42.245 +    }
  42.246 +
  42.247 +    /**
  42.248 +     * Set the name if the uidefault color that is the parent that this matte is derived from. If null then this is a
  42.249 +     * absolute color.
  42.250 +     *
  42.251 +     * @param uiDefaultParentName Parent color ui default name
  42.252 +     */
  42.253 +    public void setUiDefaultParentName(String uiDefaultParentName) {
  42.254 +        String old = getUiDefaultParentName();
  42.255 +        this.uiDefaultParentName = uiDefaultParentName;
  42.256 +        firePropertyChange("uiDefaultParentName", old, getUiDefaultParentName());
  42.257 +        if (isAbsolute()) {
  42.258 +            // reset offsets
  42.259 +            float oldH = hueOffset, oldS = saturationOffset, oldB = brightnessOffset;
  42.260 +            int oldA = alphaOffset;
  42.261 +            hueOffset = 0;
  42.262 +            saturationOffset = 0;
  42.263 +            brightnessOffset = 0;
  42.264 +            alphaOffset = 0;
  42.265 +            firePropertyChange("hueOffset", oldH, getHueOffset());
  42.266 +            firePropertyChange("saturationOffset", oldS, getSaturationOffset());
  42.267 +            firePropertyChange("brightnessOffset", oldB, getBrightnessOffset());
  42.268 +            firePropertyChange("alphaOffset", oldA, getAlphaOffset());
  42.269 +        }
  42.270 +        updateARGBFromOffsets();
  42.271 +    }
  42.272 +
  42.273 +    /**
  42.274 +     * Sets the property to use for extracting the color for whatever component
  42.275 +     * is passed to the painter. Can be a key in client properties. Can be null.
  42.276 +     * @param name
  42.277 +     */
  42.278 +    public void setComponentPropertyName(String name) {
  42.279 +        String old = componentPropertyName;
  42.280 +        firePropertyChange("componentPropertyName", old, componentPropertyName = name);
  42.281 +    }
  42.282 +
  42.283 +    /**
  42.284 +     * Gets the name of the bean property, or client property, on this component
  42.285 +     * from which to extract a color used for painting. So for example the color
  42.286 +     * used in a painter could be the background of the component.
  42.287 +     *
  42.288 +     * @return
  42.289 +     */
  42.290 +    public String getComponentPropertyName() {
  42.291 +        return componentPropertyName;
  42.292 +    }
  42.293 +
  42.294 +    /**
  42.295 +     * Sets whether this color should be represented as a UIResource in UIDefaults
  42.296 +     * @param b true if the color should be a ui resource
  42.297 +     */
  42.298 +    public void setUiResource(boolean b) {
  42.299 +        boolean old = uiResource;
  42.300 +        firePropertyChange("uiResource", old, uiResource = b);
  42.301 +    }
  42.302 +
  42.303 +    /**
  42.304 +     * When false this color will become a non-UIResource in the UIManager defaults
  42.305 +     * table. This is sometimes required to force swing to use the given color,
  42.306 +     * such as with renderers.
  42.307 +     * @return false if the color should not be a uiresource
  42.308 +     */
  42.309 +    public boolean isUiResource() {
  42.310 +        return uiResource;
  42.311 +    }
  42.312 +
  42.313 +    public float getHueOffset() {
  42.314 +        return hueOffset;
  42.315 +    }
  42.316 +
  42.317 +    public void setHueOffset(float hueOffset) {
  42.318 +        float old = getHueOffset();
  42.319 +        this.hueOffset = hueOffset;
  42.320 +        firePropertyChange("hueOffset", old, getHueOffset());
  42.321 +        updateARGBFromOffsets();
  42.322 +    }
  42.323 +
  42.324 +    public float getSaturationOffset() {
  42.325 +        return saturationOffset;
  42.326 +    }
  42.327 +
  42.328 +    public void setSaturationOffset(float satOffset) {
  42.329 +        float old = getSaturationOffset();
  42.330 +        this.saturationOffset = satOffset;
  42.331 +        firePropertyChange("saturationOffset", old, getSaturationOffset());
  42.332 +        updateARGBFromOffsets();
  42.333 +    }
  42.334 +
  42.335 +    public float getBrightnessOffset() {
  42.336 +        return brightnessOffset;
  42.337 +    }
  42.338 +
  42.339 +    public void setBrightnessOffset(float brightOffset) {
  42.340 +        float old = getBrightnessOffset();
  42.341 +        this.brightnessOffset = brightOffset;
  42.342 +        firePropertyChange("brightnessOffset", old, getBrightnessOffset());
  42.343 +        updateARGBFromOffsets();
  42.344 +    }
  42.345 +
  42.346 +    public int getAlphaOffset() {
  42.347 +        return alphaOffset;
  42.348 +    }
  42.349 +
  42.350 +    public void setAlphaOffset(int alphaOffset) {
  42.351 +        int old = getAlphaOffset();
  42.352 +        this.alphaOffset = alphaOffset;
  42.353 +        firePropertyChange("alphaOffset", old, alphaOffset);
  42.354 +        updateARGBFromOffsets();
  42.355 +    }
  42.356 +
  42.357 +
  42.358 +    public void setRed(int red) {
  42.359 +        red = clamp(red);
  42.360 +        if (this.red != red) {
  42.361 +            Color old = getColor();
  42.362 +            int oldr = this.red;
  42.363 +            this.red = red;
  42.364 +            firePropertyChange("paint", old, getColor());
  42.365 +            firePropertyChange("color", old, getColor());
  42.366 +            firePropertyChange("red", oldr, red);
  42.367 +            fireHSBChange(oldr, green, blue);
  42.368 +            updateOffsetsFromARGB();
  42.369 +        }
  42.370 +    }
  42.371 +
  42.372 +    public final int getRed() {
  42.373 +        return red;
  42.374 +    }
  42.375 +
  42.376 +    public void setGreen(int green) {
  42.377 +        green = clamp(green);
  42.378 +        if (this.green != green) {
  42.379 +            Color old = getColor();
  42.380 +            int oldg = this.green;
  42.381 +            this.green = green;
  42.382 +            firePropertyChange("paint", old, getColor());
  42.383 +            firePropertyChange("color", old, getColor());
  42.384 +            firePropertyChange("green", oldg, green);
  42.385 +            fireHSBChange(red, oldg, blue);
  42.386 +            updateOffsetsFromARGB();
  42.387 +        }
  42.388 +    }
  42.389 +
  42.390 +    public final int getGreen() {
  42.391 +        return green;
  42.392 +    }
  42.393 +
  42.394 +    public void setBlue(int blue) {
  42.395 +        blue = clamp(blue);
  42.396 +        if (this.blue != blue) {
  42.397 +            Color old = getColor();
  42.398 +            int oldb = this.blue;
  42.399 +            this.blue = blue;
  42.400 +            firePropertyChange("paint", old, getColor());
  42.401 +            firePropertyChange("color", old, getColor());
  42.402 +            firePropertyChange("blue", oldb, blue);
  42.403 +            fireHSBChange(red, green, oldb);
  42.404 +            updateOffsetsFromARGB();
  42.405 +        }
  42.406 +    }
  42.407 +
  42.408 +    public final int getBlue() {
  42.409 +        return blue;
  42.410 +    }
  42.411 +
  42.412 +    public void setAlpha(int alpha) {
  42.413 +        alpha = clamp(alpha);
  42.414 +        if (this.alpha != alpha) {
  42.415 +            int old = getAlpha();
  42.416 +            this.alpha = alpha;
  42.417 +            firePropertyChange("alpha", old, alpha);
  42.418 +            firePropertyChange("paint", old, getColor());
  42.419 +            firePropertyChange("color", old, getColor());
  42.420 +            updateOffsetsFromARGB();
  42.421 +        }
  42.422 +    }
  42.423 +
  42.424 +    public final int getAlpha() {
  42.425 +        return alpha;
  42.426 +    }
  42.427 +
  42.428 +    public Color getColor() {
  42.429 +        if (cached == null || red != cached.getRed() || green != cached.getGreen() ||
  42.430 +                blue != cached.getBlue() || alpha != cached.getAlpha()) {
  42.431 +            cached = new Color(red, green, blue, alpha);
  42.432 +        }
  42.433 +        return cached;
  42.434 +    }
  42.435 +
  42.436 +    public void setColor(Color c) {
  42.437 +        setColor(c, false);
  42.438 +    }
  42.439 +
  42.440 +    public void setColor(Color c, boolean dontSetAlpha) {
  42.441 +        Color oldColor = getColor();
  42.442 +        int oldR = red, oldG = green, oldB = blue, oldA = alpha;
  42.443 +        cached = c;
  42.444 +        red = c.getRed();
  42.445 +        green = c.getGreen();
  42.446 +        blue = c.getBlue();
  42.447 +        if (!dontSetAlpha) alpha = c.getAlpha();
  42.448 +        updateOffsetsFromARGB();
  42.449 +        firePropertyChange("red", oldR, getRed());
  42.450 +        firePropertyChange("green", oldG, getGreen());
  42.451 +        firePropertyChange("blue", oldB, getBlue());
  42.452 +        fireHSBChange(oldR, oldG, oldB);
  42.453 +        if (!dontSetAlpha) firePropertyChange("alpha", oldA, getAlpha());
  42.454 +        firePropertyChange("paint", oldColor, getColor());
  42.455 +        firePropertyChange("color", oldColor, getColor());
  42.456 +    }
  42.457 +
  42.458 +    @Override public Paint getPaint() {
  42.459 +        return getColor();
  42.460 +    }
  42.461 +
  42.462 +
  42.463 +    @Override public String toString() {
  42.464 +        if (isAbsolute()) {
  42.465 +            return Matte.class.getName() + "[r=" + red + ", g=" + green + ", b=" + blue + ", a=" + alpha + "]";
  42.466 +        } else {
  42.467 +            return Matte.class.getName() + "[base=" + uiDefaultParentName + ", H+" + hueOffset +
  42.468 +                    ", S+" + saturationOffset + ", B+" + brightnessOffset + ", A+" + alphaOffset + "]";
  42.469 +        }
  42.470 +    }
  42.471 +
  42.472 +    public boolean equals(Object o) {
  42.473 +        if (this == o) return true;
  42.474 +        if (o == null || getClass() != o.getClass()) return false;
  42.475 +        Matte matte = (Matte) o;
  42.476 +        if (alpha != matte.alpha) return false;
  42.477 +        if (alphaOffset != matte.alphaOffset) return false;
  42.478 +        if (Float.compare(matte.alpha, alpha) != 0) return false;
  42.479 +        if (blue != matte.blue) return false;
  42.480 +        if (Float.compare(matte.brightnessOffset, brightnessOffset) != 0)
  42.481 +            return false;
  42.482 +        if (green != matte.green) return false;
  42.483 +        if (Float.compare(matte.hueOffset, hueOffset) != 0) return false;
  42.484 +        if (red != matte.red) return false;
  42.485 +        if (uiResource != matte.uiResource) return false;
  42.486 +        if (Float.compare(matte.saturationOffset, saturationOffset) != 0)
  42.487 +            return false;
  42.488 +        if (componentPropertyName != null ?
  42.489 +                !componentPropertyName.equals(componentPropertyName) :
  42.490 +                matte.componentPropertyName != null) return false;
  42.491 +
  42.492 +        if (uiDefaultParentName != null ?
  42.493 +                !uiDefaultParentName.equals(matte.uiDefaultParentName) :
  42.494 +                matte.uiDefaultParentName != null) return false;
  42.495 +        return true;
  42.496 +    }
  42.497 +
  42.498 +    public int hashCode() {
  42.499 +        int result;
  42.500 +        result = red;
  42.501 +        result = 31 * result + green;
  42.502 +        result = 31 * result + blue;
  42.503 +        result = 31 * result + alpha;
  42.504 +        result = 31 * result + (uiDefaultParentName != null ?
  42.505 +            uiDefaultParentName.hashCode() : 0);
  42.506 +        result = 31 * result + (componentPropertyName != null ?
  42.507 +            componentPropertyName.hashCode() : 0);
  42.508 +        result = 31 * result + hueOffset != +0.0f ?
  42.509 +            Float.floatToIntBits(hueOffset) : 0;
  42.510 +        result = 31 * result + saturationOffset != +0.0f ?
  42.511 +            Float.floatToIntBits(saturationOffset) : 0;
  42.512 +        result = 31 * result + brightnessOffset != +0.0f ?
  42.513 +            Float.floatToIntBits(brightnessOffset) : 0;
  42.514 +        result = 31 * result + (uiResource ? 1 : 0);
  42.515 +        return result;
  42.516 +    }
  42.517 +
  42.518 +    @Override public Matte clone() {
  42.519 +        Matte m = new Matte();
  42.520 +        m.red = red;
  42.521 +        m.green = green;
  42.522 +        m.blue = blue;
  42.523 +        m.alpha = alpha;
  42.524 +        m.brightnessOffset = brightnessOffset;
  42.525 +        m.hueOffset = hueOffset;
  42.526 +        m.saturationOffset = saturationOffset;
  42.527 +        m.alphaOffset = alphaOffset;
  42.528 +        m.uiDefaultParentName = uiDefaultParentName;
  42.529 +        m.componentPropertyName = componentPropertyName;
  42.530 +        m.uiResource = uiResource;
  42.531 +        m.setUiDefaults(uiDefaults);
  42.532 +        return m;
  42.533 +    }
  42.534 +
  42.535 +    // =================================================================================================================
  42.536 +    // Private Helper Methods
  42.537 +
  42.538 +    private void updateOffsetsFromARGB() {
  42.539 +        if (!isAbsolute()) {
  42.540 +            tmpf1 = Color.RGBtoHSB(red, green, blue, tmpf1);
  42.541 +            Color parentColor = uiDefaults.getColor(uiDefaultParentName);
  42.542 +            tmpf2 = Color.RGBtoHSB(parentColor.getRed(), parentColor.getGreen(), parentColor.getBlue(), tmpf2);
  42.543 +            // update offset properties and fire events
  42.544 +            float oldH = hueOffset, oldS = saturationOffset, oldB = brightnessOffset;
  42.545 +            int oldA = alphaOffset;
  42.546 +            hueOffset = tmpf1[0] - tmpf2[0];
  42.547 +            saturationOffset = tmpf1[1] - tmpf2[1];
  42.548 +            brightnessOffset = tmpf1[2] - tmpf2[2];
  42.549 +            alphaOffset = alpha - parentColor.getAlpha();
  42.550 +            firePropertyChange("hueOffset", oldH, getHueOffset());
  42.551 +            firePropertyChange("saturationOffset", oldS, getSaturationOffset());
  42.552 +            firePropertyChange("brightnessOffset", oldB, getBrightnessOffset());
  42.553 +            firePropertyChange("alphaOffset", oldA, getAlphaOffset());
  42.554 +        }
  42.555 +    }
  42.556 +
  42.557 +    private void updateARGBFromOffsets() {
  42.558 +        if (!isAbsolute()) {
  42.559 +            Color oldColor = getColor();
  42.560 +            // get parent color HSB
  42.561 +            Color parentColor = uiDefaults.getColor(uiDefaultParentName);
  42.562 +            tmpf1 = Color.RGBtoHSB(parentColor.getRed(), parentColor.getGreen(), parentColor.getBlue(), tmpf1);
  42.563 +            // apply offsets
  42.564 +            tmpf1[0] = clamp(tmpf1[0] + hueOffset);
  42.565 +            tmpf1[1] = clamp(tmpf1[1] + saturationOffset);
  42.566 +            tmpf1[2] = clamp(tmpf1[2] + brightnessOffset);
  42.567 +            int oldA = getAlpha();
  42.568 +            alpha = clamp(parentColor.getAlpha() + alphaOffset);
  42.569 +            updateRGB(tmpf1);
  42.570 +            // update fire events
  42.571 +            firePropertyChange("alpha", oldA, getAlpha());
  42.572 +            firePropertyChange("paint", oldColor, getColor());
  42.573 +            firePropertyChange("color", oldColor, getColor());
  42.574 +        }
  42.575 +    }
  42.576 +
  42.577 +    private void updateRGB(float[] hsb) {
  42.578 +        int oldR = red, oldG = green, oldB = blue;
  42.579 +        int rgb = Color.HSBtoRGB(hsb[0], hsb[1], hsb[2]);
  42.580 +        red = (rgb >> 16) & 0xFF;
  42.581 +        green = (rgb >> 8) & 0xFF;
  42.582 +        blue = rgb & 0xFF;
  42.583 +        firePropertyChange("red", oldR, getRed());
  42.584 +        firePropertyChange("green", oldG, getGreen());
  42.585 +        firePropertyChange("blue", oldB, getBlue());
  42.586 +    }
  42.587 +
  42.588 +    private void fireHSBChange(int oldR, int oldG, int oldB) {
  42.589 +        tmpf1 = Color.RGBtoHSB(oldR, oldG, oldB, tmpf1);
  42.590 +        tmpf2 = Color.RGBtoHSB(red, green, blue, tmpf2);
  42.591 +        firePropertyChange("hue", tmpf1[0], tmpf2[0]);
  42.592 +        firePropertyChange("saturation", tmpf1[1], tmpf2[1]);
  42.593 +        firePropertyChange("brightness", tmpf1[2], tmpf2[2]);
  42.594 +    }
  42.595 +
  42.596 +    private float clamp(float value) {
  42.597 +        if (value < 0) {
  42.598 +            value = 0;
  42.599 +        } else if (value > 1) {
  42.600 +            value = 1;
  42.601 +        }
  42.602 +        return value;
  42.603 +    }
  42.604 +
  42.605 +    private int clamp(int value) {
  42.606 +        if (value < 0) {
  42.607 +            value = 0;
  42.608 +        } else if (value > 255) {
  42.609 +            value = 255;
  42.610 +        }
  42.611 +        return value;
  42.612 +    }
  42.613 +}
    43.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    43.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/paint/PaintModel.java	Wed Apr 29 00:27:46 2009 -0700
    43.3 @@ -0,0 +1,64 @@
    43.4 +/*
    43.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    43.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    43.7 + *
    43.8 + * This code is free software; you can redistribute it and/or modify it
    43.9 + * under the terms of the GNU General Public License version 2 only, as
   43.10 + * published by the Free Software Foundation.  Sun designates this
   43.11 + * particular file as subject to the "Classpath" exception as provided
   43.12 + * by Sun in the LICENSE file that accompanied this code.
   43.13 + *
   43.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   43.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   43.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   43.17 + * version 2 for more details (a copy is included in the LICENSE file that
   43.18 + * accompanied this code).
   43.19 + *
   43.20 + * You should have received a copy of the GNU General Public License version
   43.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   43.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   43.23 + *
   43.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   43.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   43.26 + * have any questions.
   43.27 + */
   43.28 +package org.jdesktop.swingx.designer.paint;
   43.29 +
   43.30 +import org.jdesktop.beans.AbstractBean;
   43.31 +
   43.32 +import java.awt.Paint;
   43.33 +
   43.34 +/**
   43.35 + * I'd have just called it Paint, but sadly, that name was already taken, and would have been too confusing.
   43.36 + * <p/>
   43.37 + * Whenever size or position values are required (for example with Texture or Gradient), they are specified in the unit
   43.38 + * square: that is, between 0 and 1 inclusive. They can then later be scaled as necessary by any painting code.
   43.39 + *
   43.40 + * @author rbair
   43.41 + */
   43.42 +public abstract class PaintModel extends AbstractBean implements Cloneable {
   43.43 +    public static enum PaintControlType {
   43.44 +        none, control_line, control_rect
   43.45 +    }
   43.46 +
   43.47 +    protected PaintModel() { }
   43.48 +
   43.49 +    /**
   43.50 +     * @return an instance of Paint that is represented by this PaintModel. This is often not a reversable operation,
   43.51 +     *         and hence there is no "setPaint" method. Rather, tweaking the exposed properties of the PaintModel fires,
   43.52 +     *         when necessary, property change events for the "paint" property, and results in different values returned
   43.53 +     *         from this method.
   43.54 +     */
   43.55 +    public abstract Paint getPaint();
   43.56 +
   43.57 +    /**
   43.58 +     * Get the type of controls for this paint model
   43.59 +     *
   43.60 +     * @return The type of paint controls, one of PaintControlType.none, PaintControlType.control_line or
   43.61 +     *         PaintControlType.control_rect
   43.62 +     */
   43.63 +    public abstract PaintControlType getPaintControlType();
   43.64 +
   43.65 +
   43.66 +    public abstract PaintModel clone();
   43.67 +}
    44.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    44.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/paint/RadialGradient.java	Wed Apr 29 00:27:46 2009 -0700
    44.3 @@ -0,0 +1,51 @@
    44.4 +/*
    44.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    44.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    44.7 + *
    44.8 + * This code is free software; you can redistribute it and/or modify it
    44.9 + * under the terms of the GNU General Public License version 2 only, as
   44.10 + * published by the Free Software Foundation.  Sun designates this
   44.11 + * particular file as subject to the "Classpath" exception as provided
   44.12 + * by Sun in the LICENSE file that accompanied this code.
   44.13 + *
   44.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   44.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   44.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   44.17 + * version 2 for more details (a copy is included in the LICENSE file that
   44.18 + * accompanied this code).
   44.19 + *
   44.20 + * You should have received a copy of the GNU General Public License version
   44.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   44.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   44.23 + *
   44.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   44.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   44.26 + * have any questions.
   44.27 + */
   44.28 +package org.jdesktop.swingx.designer.paint;
   44.29 +
   44.30 +import java.awt.Color;
   44.31 +import java.awt.MultipleGradientPaint.CycleMethod;
   44.32 +import java.awt.Paint;
   44.33 +import java.awt.RadialGradientPaint;
   44.34 +
   44.35 +/**
   44.36 + * Represents a RadialGradientPaint.
   44.37 + *
   44.38 + * @author rbair
   44.39 + */
   44.40 +public class RadialGradient extends AbstractGradient {
   44.41 +    protected Paint createPaint(float[] fractions, Matte[] mattes, CycleMethod method) {
   44.42 +        Color[] colors = new Color[mattes.length];
   44.43 +        for (int i = 0; i < colors.length; i++) {
   44.44 +            colors[i] = mattes[i].getColor();
   44.45 +        }
   44.46 +        return new RadialGradientPaint(.5f, .5f, 1, fractions, colors, method);
   44.47 +    }
   44.48 +
   44.49 +    @Override public RadialGradient clone() {
   44.50 +        RadialGradient gradient = new RadialGradient();
   44.51 +        copyTo(gradient);
   44.52 +        return gradient;
   44.53 +    }
   44.54 +}
    45.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    45.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/paint/Texture.java	Wed Apr 29 00:27:46 2009 -0700
    45.3 @@ -0,0 +1,69 @@
    45.4 +/*
    45.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    45.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    45.7 + *
    45.8 + * This code is free software; you can redistribute it and/or modify it
    45.9 + * under the terms of the GNU General Public License version 2 only, as
   45.10 + * published by the Free Software Foundation.  Sun designates this
   45.11 + * particular file as subject to the "Classpath" exception as provided
   45.12 + * by Sun in the LICENSE file that accompanied this code.
   45.13 + *
   45.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   45.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   45.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   45.17 + * version 2 for more details (a copy is included in the LICENSE file that
   45.18 + * accompanied this code).
   45.19 + *
   45.20 + * You should have received a copy of the GNU General Public License version
   45.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   45.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   45.23 + *
   45.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   45.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   45.26 + * have any questions.
   45.27 + */
   45.28 +package org.jdesktop.swingx.designer.paint;
   45.29 +
   45.30 +import java.awt.Paint;
   45.31 +import java.awt.TexturePaint;
   45.32 +import java.awt.geom.Rectangle2D;
   45.33 +import java.awt.image.BufferedImage;
   45.34 +
   45.35 +/**
   45.36 + * Represents a TexturePaint.
   45.37 + *
   45.38 + * @author rbair
   45.39 + */
   45.40 +public class Texture extends PaintModel {
   45.41 +    private static final Rectangle2D RECT = new Rectangle2D.Double(0, 0, 1, 1);
   45.42 +    private BufferedImage img;
   45.43 +
   45.44 +    public Texture() {
   45.45 +    }
   45.46 +
   45.47 +    public PaintControlType getPaintControlType() {
   45.48 +        return PaintControlType.control_rect;
   45.49 +    }
   45.50 +
   45.51 +    public void setImage(BufferedImage img) {
   45.52 +        BufferedImage old = this.img;
   45.53 +        this.img = img;
   45.54 +        firePropertyChange("paint", old, this.img);
   45.55 +        firePropertyChange("image", old, this.img);
   45.56 +    }
   45.57 +
   45.58 +    public final BufferedImage getImage() {
   45.59 +        return img;
   45.60 +    }
   45.61 +
   45.62 +    public Paint getPaint() {
   45.63 +        return new TexturePaint(img, RECT);
   45.64 +    }
   45.65 +
   45.66 +
   45.67 +    public Texture clone() {
   45.68 +        Texture newTexture = new Texture();
   45.69 +        newTexture.img = this.img;
   45.70 +        return newTexture;
   45.71 +    }
   45.72 +}
    46.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    46.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/utils/HasPath.java	Wed Apr 29 00:27:46 2009 -0700
    46.3 @@ -0,0 +1,34 @@
    46.4 +/*
    46.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    46.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    46.7 + *
    46.8 + * This code is free software; you can redistribute it and/or modify it
    46.9 + * under the terms of the GNU General Public License version 2 only, as
   46.10 + * published by the Free Software Foundation.  Sun designates this
   46.11 + * particular file as subject to the "Classpath" exception as provided
   46.12 + * by Sun in the LICENSE file that accompanied this code.
   46.13 + *
   46.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   46.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   46.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   46.17 + * version 2 for more details (a copy is included in the LICENSE file that
   46.18 + * accompanied this code).
   46.19 + *
   46.20 + * You should have received a copy of the GNU General Public License version
   46.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   46.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   46.23 + *
   46.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   46.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   46.26 + * have any questions.
   46.27 + */
   46.28 +package org.jdesktop.swingx.designer.utils;
   46.29 +
   46.30 +/**
   46.31 + * HasPath - interface for model nodes that can provide there path in the tree
   46.32 + *
   46.33 + * @author Created by Jasper Potts (Jul 2, 2007)
   46.34 + */
   46.35 +public interface HasPath {
   46.36 +    public String getPath();
   46.37 +}
    47.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    47.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/utils/HasResources.java	Wed Apr 29 00:27:46 2009 -0700
    47.3 @@ -0,0 +1,42 @@
    47.4 +/*
    47.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    47.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    47.7 + *
    47.8 + * This code is free software; you can redistribute it and/or modify it
    47.9 + * under the terms of the GNU General Public License version 2 only, as
   47.10 + * published by the Free Software Foundation.  Sun designates this
   47.11 + * particular file as subject to the "Classpath" exception as provided
   47.12 + * by Sun in the LICENSE file that accompanied this code.
   47.13 + *
   47.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   47.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   47.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   47.17 + * version 2 for more details (a copy is included in the LICENSE file that
   47.18 + * accompanied this code).
   47.19 + *
   47.20 + * You should have received a copy of the GNU General Public License version
   47.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   47.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   47.23 + *
   47.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   47.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   47.26 + * have any questions.
   47.27 + */
   47.28 +package org.jdesktop.swingx.designer.utils;
   47.29 +
   47.30 +import java.io.File;
   47.31 +
   47.32 +/**
   47.33 + * HasResources - interface for model nodes that have resources
   47.34 + *
   47.35 + * @author Created by Jasper Potts (Jul 2, 2007)
   47.36 + */
   47.37 +public interface HasResources {
   47.38 +
   47.39 +    public File getResourcesDir();
   47.40 +
   47.41 +    public File getImagesDir();
   47.42 +
   47.43 +    public File getTemplatesDir();
   47.44 +
   47.45 +}
    48.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    48.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/utils/HasUIDefaults.java	Wed Apr 29 00:27:46 2009 -0700
    48.3 @@ -0,0 +1,36 @@
    48.4 +/*
    48.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    48.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    48.7 + *
    48.8 + * This code is free software; you can redistribute it and/or modify it
    48.9 + * under the terms of the GNU General Public License version 2 only, as
   48.10 + * published by the Free Software Foundation.  Sun designates this
   48.11 + * particular file as subject to the "Classpath" exception as provided
   48.12 + * by Sun in the LICENSE file that accompanied this code.
   48.13 + *
   48.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   48.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   48.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   48.17 + * version 2 for more details (a copy is included in the LICENSE file that
   48.18 + * accompanied this code).
   48.19 + *
   48.20 + * You should have received a copy of the GNU General Public License version
   48.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   48.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   48.23 + *
   48.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   48.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   48.26 + * have any questions.
   48.27 + */
   48.28 +package org.jdesktop.swingx.designer.utils;
   48.29 +
   48.30 +import javax.swing.UIDefaults;
   48.31 +
   48.32 +/**
   48.33 + * HasUIDefaults - A tagging interface for any class that has UIDefaults
   48.34 + *
   48.35 + * @author Created by Jasper Potts (Jun 22, 2007)
   48.36 + */
   48.37 +public interface HasUIDefaults {
   48.38 +    public UIDefaults getUiDefaults();
   48.39 +}
    49.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    49.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/generator/DefaultsGenerator.java	Wed Apr 29 00:27:46 2009 -0700
    49.3 @@ -0,0 +1,726 @@
    49.4 +/*
    49.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    49.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    49.7 + *
    49.8 + * This code is free software; you can redistribute it and/or modify it
    49.9 + * under the terms of the GNU General Public License version 2 only, as
   49.10 + * published by the Free Software Foundation.  Sun designates this
   49.11 + * particular file as subject to the "Classpath" exception as provided
   49.12 + * by Sun in the LICENSE file that accompanied this code.
   49.13 + *
   49.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   49.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   49.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   49.17 + * version 2 for more details (a copy is included in the LICENSE file that
   49.18 + * accompanied this code).
   49.19 + *
   49.20 + * You should have received a copy of the GNU General Public License version
   49.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   49.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   49.23 + *
   49.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   49.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   49.26 + * have any questions.
   49.27 + */
   49.28 +package org.jdesktop.synthdesigner.generator;
   49.29 +
   49.30 +import org.jdesktop.swingx.designer.Canvas;
   49.31 +import org.jdesktop.swingx.designer.font.Typeface;
   49.32 +import org.jdesktop.swingx.designer.paint.Matte;
   49.33 +import org.jdesktop.swingx.designer.paint.PaintModel;
   49.34 +import static org.jdesktop.synthdesigner.generator.GeneratorUtils.makePretty;
   49.35 +import static org.jdesktop.synthdesigner.generator.GeneratorUtils.toConstantName;
   49.36 +import static org.jdesktop.synthdesigner.generator.ObjectCodeConvertors.convert;
   49.37 +import static org.jdesktop.synthdesigner.generator.TemplateWriter.read;
   49.38 +import static org.jdesktop.synthdesigner.generator.TemplateWriter.writeSrcFile;
   49.39 +import org.jdesktop.synthdesigner.synthmodel.SynthModel;
   49.40 +import org.jdesktop.synthdesigner.synthmodel.UIComponent;
   49.41 +import org.jdesktop.synthdesigner.synthmodel.UIFont;
   49.42 +import org.jdesktop.synthdesigner.synthmodel.UIIconRegion;
   49.43 +import org.jdesktop.synthdesigner.synthmodel.UIPaint;
   49.44 +import org.jdesktop.synthdesigner.synthmodel.UIProperty;
   49.45 +import org.jdesktop.synthdesigner.synthmodel.UIRegion;
   49.46 +import org.jdesktop.synthdesigner.synthmodel.UIState;
   49.47 +import org.jdesktop.synthdesigner.synthmodel.UIStateType;
   49.48 +import org.jdesktop.synthdesigner.synthmodel.UIStyle;
   49.49 +
   49.50 +import javax.swing.border.BevelBorder;
   49.51 +import javax.swing.border.Border;
   49.52 +import javax.swing.border.CompoundBorder;
   49.53 +import javax.swing.border.EmptyBorder;
   49.54 +import javax.swing.border.EtchedBorder;
   49.55 +import javax.swing.border.LineBorder;
   49.56 +import javax.swing.border.MatteBorder;
   49.57 +import java.awt.Dimension;
   49.58 +import java.awt.Font;
   49.59 +import java.awt.Insets;
   49.60 +import java.io.File;
   49.61 +import java.io.IOException;
   49.62 +import java.util.List;
   49.63 +import java.util.Map;
   49.64 +import org.jdesktop.synthdesigner.synthmodel.PainterBorder;
   49.65 +
   49.66 +/**
   49.67 + * DefaultsGenerator
   49.68 + * <p/>
   49.69 + * There are two main sets of defaults that must be configured. The first is
   49.70 + * the actual UI defaults tree. The second is a map of components + regions, which
   49.71 + * are used to decide what SynthStyle to use.
   49.72 + *
   49.73 + * @author Jasper Potts
   49.74 + * @author Richard Bair
   49.75 + */
   49.76 +public class DefaultsGenerator {
   49.77 +    private static String stateTypeImplTemplate;
   49.78 +
   49.79 +    private static String getStateTypeTemplate() {
   49.80 +        if (stateTypeImplTemplate == null) {
   49.81 +            //load the painter template file into an in-memory string to improve performance
   49.82 +            //when generating a lot of classes
   49.83 +            try {
   49.84 +                stateTypeImplTemplate = read("resources/StateImpl.template");
   49.85 +            } catch (IOException e) {
   49.86 +                System.err.println("Failed to read template files.");
   49.87 +                throw new RuntimeException(e);
   49.88 +            }
   49.89 +        }
   49.90 +        return stateTypeImplTemplate;
   49.91 +    }
   49.92 +
   49.93 +    /**
   49.94 +     * Generate the defaults file and all painter files for a SynthModel. This method
   49.95 +     * is the main entry point, called by the Generator class.
   49.96 +     *
   49.97 +     * @param uiDefaultInit      The buffer to write ui default put methods of the form <code>d.put("activeCaption", new
   49.98 +     *                           ColorUIResource(123, 45, 200));</code>
   49.99 +     * @param styleInit          The buffer to write out code to generate Synth Style populating the styles map <code>m
  49.100 +     *                           = new HashMap<Key, LazyStyle>()</code>
  49.101 +     * @param model              The Synth Model we are writing out defaults class for
  49.102 +     * @param variables          The variables map pre populated with "PACKAGE" and "LAF_NAME"
  49.103 +     * @param packageNamePrefix  The package name associated with this synth look and feel. For example,
  49.104 +     *                           org.mypackage.mylaf
  49.105 +     * @param painterPackageRoot The directory to write painters out to
  49.106 +     */
  49.107 +    public static void generateDefaults(StringBuilder uiDefaultInit, StringBuilder styleInit, SynthModel model,
  49.108 +                                        Map<String, String> variables, String packageNamePrefix,
  49.109 +                                        File painterPackageRoot) {
  49.110 +        // write color palette
  49.111 +        uiDefaultInit.append("        //Color palette\n");
  49.112 +        writeColorPalette(uiDefaultInit, model.getColorPalette());
  49.113 +        uiDefaultInit.append("\n");
  49.114 +        // write fonts palette
  49.115 +        uiDefaultInit.append("        //Font palette\n");
  49.116 +        uiDefaultInit.append("        d.put(\"defaultFont\", new FontUIResource(defaultFont));\n");
  49.117 +        writeFontPalette(uiDefaultInit, model.getFontPalette());
  49.118 +        uiDefaultInit.append("\n");
  49.119 +        // TODO: Other palettes
  49.120 +        uiDefaultInit.append("        //Border palette\n");
  49.121 +        uiDefaultInit.append("\n");
  49.122 +        // write global style
  49.123 +        uiDefaultInit.append("        //The global style definition\n");
  49.124 +        writeStyle(model.getStyle(), uiDefaultInit, "");
  49.125 +        uiDefaultInit.append("\n");
  49.126 +        // write components
  49.127 +        for (UIComponent c : model.getComponents()) {
  49.128 +            String prefix = escape(c.getKey());
  49.129 +            uiDefaultInit.append("        //Initialize ").append(prefix)
  49.130 +                    .append("\n");
  49.131 +            writeRegion(c, c, prefix, uiDefaultInit,
  49.132 +                    styleInit, variables, packageNamePrefix, painterPackageRoot);
  49.133 +            uiDefaultInit.append("\n");
  49.134 +        }
  49.135 +    }
  49.136 +
  49.137 +    private static void writeColorPalette(StringBuilder uiDefaultInit, List<UIPaint> colors) {
  49.138 +        for (UIPaint color : colors) {
  49.139 +            uiDefaultInit.append("        d.put(\"")
  49.140 +                    .append(color.getName())
  49.141 +                    .append("\",")
  49.142 +                    .append(convertPaint(color.getValue()))
  49.143 +                    .append(");\n");
  49.144 +        }
  49.145 +    }
  49.146 +
  49.147 +    private static void writeFontPalette(StringBuilder uiDefaultInit, List<UIFont> fonts) {
  49.148 +        for (UIFont font : fonts) {
  49.149 +            // We have no way of doing CSS style font lists yet so will just
  49.150 +            // just the first font
  49.151 +            if (!font.getFonts().isEmpty()){
  49.152 +                Typeface t = font.getFonts().get(0);
  49.153 +                if (t.isAbsolute()){
  49.154 +                    Font f = t.getFont();
  49.155 +                    uiDefaultInit.append("        d.put(\"")
  49.156 +                        .append(font.getName())
  49.157 +                        .append("\", new javax.swing.plaf.FontUIResource(\"")
  49.158 +                        .append(f.getName())
  49.159 +                        .append("\", ")
  49.160 +                        .append(f.getStyle())
  49.161 +                        .append(", ")
  49.162 +                        .append(f.getSize())
  49.163 +                        .append("));\n");
  49.164 +                } else {
  49.165 +                    uiDefaultInit.append("        d.put(\"")
  49.166 +                        .append(font.getName())
  49.167 +                        .append("\", new DerivedFont(\"")
  49.168 +                        .append(t.getUiDefaultParentName())
  49.169 +                        .append("\", ")
  49.170 +                        .append(t.getSizeOffset())
  49.171 +                        .append("f, ");
  49.172 +                    switch (t.getBold()){
  49.173 +                        case Default:
  49.174 +                            uiDefaultInit.append("null");
  49.175 +                            break;
  49.176 +                        case On:
  49.177 +                            uiDefaultInit.append("true");
  49.178 +                            break;
  49.179 +                        case Off:
  49.180 +                            uiDefaultInit.append("false");
  49.181 +                            break;
  49.182 +                    }
  49.183 +                    uiDefaultInit.append(", ");
  49.184 +                    switch (t.getItalic()){
  49.185 +                        case Default:
  49.186 +                            uiDefaultInit.append("null");
  49.187 +                            break;
  49.188 +                        case On:
  49.189 +                            uiDefaultInit.append("true");
  49.190 +                            break;
  49.191 +                        case Off:
  49.192 +                            uiDefaultInit.append("false");
  49.193 +                            break;
  49.194 +                    }
  49.195 +                    uiDefaultInit.append("));\n");
  49.196 +                }
  49.197 +            }
  49.198 +        }
  49.199 +    }
  49.200 +
  49.201 +    /**
  49.202 +     * Write out the UIDefaults entries for a style
  49.203 +     *
  49.204 +     * @param style         The style to write defaults entries for
  49.205 +     * @param uiDefaultInit The buffer to write ui default put methods of the form <code>d.put("activeCaption", new
  49.206 +     *                      ColorUIResource(123, 45, 200));</code>
  49.207 +     * @param prefix        The prefix for the style property names, for the model path where the style is from, should
  49.208 +     *                      end with a "."
  49.209 +     */
  49.210 +    private static void writeStyle(UIStyle style, StringBuilder uiDefaultInit, String prefix) {
  49.211 +        if (!style.isTextForegroundInherited()) writeMatte(prefix + "textForeground", style.getTextForeground(), uiDefaultInit);
  49.212 +        if (!style.isTextBackgroundInherited()) writeMatte(prefix + "textBackground", style.getTextBackground(), uiDefaultInit);
  49.213 +        if (!style.isBackgroundInherited()) writeMatte(prefix + "background", style.getBackground(), uiDefaultInit);
  49.214 +        if (!style.isFontInherited()) writeTypeFace(prefix + "font", style.getFont(), uiDefaultInit);
  49.215 +        for (UIProperty property : style.getUiProperties()) {
  49.216 +            switch (property.getType()) {
  49.217 +                case BOOLEAN:
  49.218 +                    Boolean b = ((Boolean)property.getValue());
  49.219 +                    if (b != null) {
  49.220 +                        uiDefaultInit.append("        d.put(\"")
  49.221 +                                .append(prefix)
  49.222 +                                .append(property.getName())
  49.223 +                                .append("\", ")
  49.224 +                                .append(b ? "Boolean.TRUE" : "Boolean.FALSE")
  49.225 +                                .append(");\n");
  49.226 +                    }
  49.227 +                    break;
  49.228 +                case STRING:
  49.229 +                    uiDefaultInit.append("        d.put(\"")
  49.230 +                            .append(prefix)
  49.231 +                            .append(property.getName())
  49.232 +                            .append("\", \"")
  49.233 +                            .append(property.getValue().toString())
  49.234 +                            .append("\");\n");
  49.235 +                    break;
  49.236 +                case INT:
  49.237 +                    uiDefaultInit.append("        d.put(\"")
  49.238 +                            .append(prefix)
  49.239 +                            .append(property.getName())
  49.240 +                            .append("\", new Integer(")
  49.241 +                            .append(((Integer) property.getValue()).intValue())
  49.242 +                            .append("));\n");
  49.243 +                    break;
  49.244 +                case FLOAT:
  49.245 +                    uiDefaultInit.append("        d.put(\"")
  49.246 +                            .append(prefix)
  49.247 +                            .append(property.getName())
  49.248 +                            .append("\", new Float(")
  49.249 +                            .append(((Float) property.getValue()).floatValue())
  49.250 +                            .append("f));\n");
  49.251 +                    break;
  49.252 +                case DOUBLE:
  49.253 +                    uiDefaultInit.append("        d.put(\"")
  49.254 +                            .append(prefix)
  49.255 +                            .append(property.getName())
  49.256 +                            .append("\", new Double(")
  49.257 +                            .append(((Double) property.getValue()).doubleValue())
  49.258 +                            .append("));\n");
  49.259 +                    break;
  49.260 +                case COLOR:
  49.261 +                    uiDefaultInit.append("        d.put(\"")
  49.262 +                            .append(prefix)
  49.263 +                            .append(property.getName())
  49.264 +                            .append("\", ")
  49.265 +                            .append(convertPaint((Matte)property.getValue()))
  49.266 +                            .append(");\n");
  49.267 +                    break;
  49.268 +                case FONT:
  49.269 +                    writeTypeFace(prefix.replace("\"", "\\\"") + property.getName(),
  49.270 +                            (Typeface) property.getValue(), uiDefaultInit);
  49.271 +                    break;
  49.272 +                case INSETS:
  49.273 +                    Insets i = (Insets) property.getValue();
  49.274 +                    uiDefaultInit.append("        d.put(\"")
  49.275 +                            .append(prefix)
  49.276 +                            .append(property.getName())
  49.277 +                            .append("\", new InsetsUIResource(")
  49.278 +                            .append(i.top).append(", ").append(i.left).append(", ").append(i.bottom).append(", ")
  49.279 +                            .append(i.right)
  49.280 +                            .append("));\n");
  49.281 +                    break;
  49.282 +                case DIMENSION:
  49.283 +                    Dimension d = (Dimension) property.getValue();
  49.284 +                    uiDefaultInit.append("        d.put(\"")
  49.285 +                            .append(prefix)
  49.286 +                            .append(property.getName())
  49.287 +                            .append("\", new DimensionUIResource(")
  49.288 +                            .append(d.width).append(", ").append(d.height)
  49.289 +                            .append("));\n");
  49.290 +                    break;
  49.291 +                case BORDER:
  49.292 +                    uiDefaultInit.append("        d.put(\"")
  49.293 +                            .append(prefix)
  49.294 +                            .append(property.getName())
  49.295 +                            .append("\", new BorderUIResource(");
  49.296 +                    uiDefaultInit.append(convertBorder(
  49.297 +                            (Border)property.getValue()));
  49.298 +                    uiDefaultInit.append("));\n");
  49.299 +                    break;
  49.300 +            }
  49.301 +        }
  49.302 +    }
  49.303 +
  49.304 +    private static void writeMatte(String propertyName, Matte matte, StringBuilder uiDefaultInit) {
  49.305 +        if (matte==null) System.err.println("Error matte is NULL for ["+propertyName+"]");
  49.306 +        uiDefaultInit.append("        d.put(\"")
  49.307 +                    .append(propertyName)
  49.308 +                    .append("\", ")
  49.309 +                    .append(convertPaint(matte))
  49.310 +                    .append(");\n");
  49.311 +    }
  49.312 +
  49.313 +    private static void writeTypeFace(String propertyName, Typeface typeface, StringBuilder uiDefaultInit) {
  49.314 +        uiDefaultInit.append("        d.put(\"")
  49.315 +                .append(propertyName)
  49.316 +                .append("\", new DerivedFont(\"")
  49.317 +                .append(typeface.getUiDefaultParentName())
  49.318 +                .append("\", ")
  49.319 +                .append(typeface.getSizeOffset())
  49.320 +                .append("f, ");
  49.321 +        switch (typeface.getBold()) {
  49.322 +            case Default:
  49.323 +                uiDefaultInit.append("null,");
  49.324 +                break;
  49.325 +            case Off:
  49.326 +                uiDefaultInit.append("Boolean.FALSE,");
  49.327 +                break;
  49.328 +            case On:
  49.329 +                uiDefaultInit.append("Boolean.TRUE,");
  49.330 +                break;
  49.331 +        }
  49.332 +        switch (typeface.getItalic()) {
  49.333 +            case Default:
  49.334 +                uiDefaultInit.append("null");
  49.335 +                break;
  49.336 +            case Off:
  49.337 +                uiDefaultInit.append("Boolean.FALSE");
  49.338 +                break;
  49.339 +            case On:
  49.340 +                uiDefaultInit.append("Boolean.TRUE");
  49.341 +                break;
  49.342 +        }
  49.343 +        uiDefaultInit.append("));\n");
  49.344 +    }
  49.345 +
  49.346 +
  49.347 +    /**
  49.348 +     * Write out code for a Component or Region
  49.349 +     *
  49.350 +     * @param comp               This may be the same as the region <code>reg</code> or is the parent component
  49.351 +     *                           containing the region
  49.352 +     * @param region             The region we are writing out
  49.353 +     * @param prefix             This is dot sperated path of component and sub regions to and including the region
  49.354 +     *                           <code>reg</code> of the form [Comp].[Region]......[Region] path
  49.355 +     * @param uiDefaultInit      This is for inserting into org.mypackage.mylaf.MyDefaults#getDefaults() method
  49.356 +     * @param styleInit          This is for inserting into org.mypackage.mylaf.MyDefaults#initialize() method
  49.357 +     * @param variables          The variables map pre populated with "PACKAGE" and "LAF_NAME"
  49.358 +     * @param packageNamePrefix  The package name associated with this synth look and feel. For example,
  49.359 +     *                           org.mypackage.mylaf
  49.360 +     * @param painterPackageRoot The directory to write painters out to
  49.361 +     */
  49.362 +    private static void writeRegion(UIComponent comp, UIRegion region, String prefix, StringBuilder uiDefaultInit,
  49.363 +                                    StringBuilder styleInit, Map<String, String> variables,
  49.364 +                                    String packageNamePrefix, File painterPackageRoot) {
  49.365 +        // register component with LAF
  49.366 +        String regionCode = GeneratorUtils.getRegionNameCaps(region.getName());
  49.367 +        if (regionCode == null) {
  49.368 +            throw new IllegalStateException("We were asked to encode a region we know nothing about: " + region.getName());
  49.369 +        } else {
  49.370 +            regionCode = "Region." + regionCode;
  49.371 +        }
  49.372 +
  49.373 +        //construct the list of States that accompany this registration.
  49.374 +        StringBuffer regString = new StringBuffer(); //like: Enabled,Disabled,Foo,Default,Etc
  49.375 +        List<UIStateType> types = comp.getStateTypes(); //state types are only defined on the UIComponent level
  49.376 +        if (types != null && types.size() > 0) {
  49.377 +            for (UIStateType type : types) {
  49.378 +                regString.append(type.getKey());
  49.379 +                regString.append(",");
  49.380 +            }
  49.381 +            //remove the last ","
  49.382 +            regString.deleteCharAt(regString.length()-1);
  49.383 +        }
  49.384 +
  49.385 +        styleInit.append("        register(")
  49.386 +                .append(regionCode)
  49.387 +                .append(", \"")
  49.388 +                .append(prefix);
  49.389 +        styleInit.append("\"");
  49.390 +        styleInit.append(");\n");
  49.391 +
  49.392 +        // write content margins
  49.393 +        Insets i = (Insets) region.getContentMargins();
  49.394 +        uiDefaultInit.append("        d.put(\"")
  49.395 +                .append(prefix)
  49.396 +                .append(".contentMargins")
  49.397 +                .append("\", new InsetsUIResource(")
  49.398 +                .append(i.top).append(", ").append(i.left).append(", ").append(i.bottom).append(", ").append(i.right)
  49.399 +                .append("));\n");
  49.400 +        // write opaque if true
  49.401 +        if (region instanceof UIComponent && ((UIComponent)region).isOpaque()) {
  49.402 +            uiDefaultInit.append("        d.put(\"")
  49.403 +                    .append(prefix)
  49.404 +                    .append(".opaque")
  49.405 +                    .append("\", Boolean.TRUE);\n");
  49.406 +        }
  49.407 +        //write the State, if necessary
  49.408 +        if (!regString.equals("Enabled,MouseOver,Pressed,Disabled,Focused,Selected,Default") && types.size() > 0) {
  49.409 +            //there were either custom states, or the normal states were in a custom order
  49.410 +            //so go ahead and write out prefix.State
  49.411 +            uiDefaultInit.append("        d.put(\"")
  49.412 +                    .append(prefix)
  49.413 +                    .append(".States")
  49.414 +                    .append("\", \"")
  49.415 +                    .append(regString)
  49.416 +                    .append("\");\n");
  49.417 +        }
  49.418 +        //write out any custom states, if necessary
  49.419 +        for (UIStateType type : types) {
  49.420 +            String synthState = type.getKey();
  49.421 +            if (!"Enabled".equals(synthState) &&
  49.422 +                !"MouseOver".equals(synthState) &&
  49.423 +                !"Pressed".equals(synthState) &&
  49.424 +                !"Disabled".equals(synthState) &&
  49.425 +                !"Focused".equals(synthState) &&
  49.426 +                !"Selected".equals(synthState) &&
  49.427 +                !"Default".equals(synthState)) {
  49.428 +                //what we have here, gentlemen, is a bona-fide custom state.
  49.429 +                try {
  49.430 +                    //if the type is not one of the standard types, then construct a name for
  49.431 +                    //the new type, and write out a new subclass of State.
  49.432 +                    java.lang.String className = makePretty(prefix) + synthState + "State";
  49.433 +                    java.lang.String body = type.getCodeSnippet();
  49.434 +                    variables.put("STATE_NAME", className);
  49.435 +                    variables.put("STATE_KEY", synthState);
  49.436 +                    variables.put("BODY", body);
  49.437 +
  49.438 +                    writeSrcFile(getStateTypeTemplate(), variables, new java.io.File(painterPackageRoot, className + ".java"));
  49.439 +
  49.440 +                    variables.remove("STATE_NAME");
  49.441 +                    variables.remove("STATE_KEY");
  49.442 +                    variables.remove("BODY");
  49.443 +
  49.444 +                    uiDefaultInit.append("        d.put(\"")
  49.445 +                            .append(prefix)
  49.446 +                            .append(".")
  49.447 +                            .append(synthState)
  49.448 +                            .append("\", new ")
  49.449 +                            .append(className)
  49.450 +                            .append("());\n");
  49.451 +                } catch (IOException ex) {
  49.452 +                    ex.printStackTrace();
  49.453 +                }
  49.454 +            }
  49.455 +        }
  49.456 +        // write region style
  49.457 +        writeStyle(region.getStyle(), uiDefaultInit, prefix + ".");
  49.458 +
  49.459 +        try {
  49.460 +            boolean hasCanvas = hasCanvas(region);
  49.461 +            if (hasCanvas) {
  49.462 +                PainterGenerator.writePainter(region, variables, painterPackageRoot, prefix);
  49.463 +            }
  49.464 +            String fileNamePrefix = makePretty(prefix) + "Painter";
  49.465 +            // write states ui defaults
  49.466 +            for (UIState state : region.getBackgroundStates()) {
  49.467 +                String statePrefix = prefix + "[" + state.getName() + "]";
  49.468 +                // write state style
  49.469 +                writeStyle(state.getStyle(), uiDefaultInit, statePrefix + ".");
  49.470 +                // write painter
  49.471 +                if (hasCanvas) {
  49.472 +                    writeLazyPainter(state, uiDefaultInit, statePrefix, packageNamePrefix, fileNamePrefix, "background");
  49.473 +                }
  49.474 +            }
  49.475 +            for (UIState state : region.getForegroundStates()) {
  49.476 +                String statePrefix = prefix + "[" + state.getName() + "]";
  49.477 +                // write state style
  49.478 +                writeStyle(state.getStyle(), uiDefaultInit, statePrefix + ".");
  49.479 +                // write painter
  49.480 +                if (hasCanvas) {
  49.481 +                    writeLazyPainter(state, uiDefaultInit, statePrefix, packageNamePrefix, fileNamePrefix, "foreground");
  49.482 +                }
  49.483 +            }
  49.484 +            for (UIState state : region.getBorderStates()) {
  49.485 +                String statePrefix = prefix + "[" + state.getName() + "]";
  49.486 +                // write state style
  49.487 +                writeStyle(state.getStyle(), uiDefaultInit, statePrefix + ".");
  49.488 +                // write painter
  49.489 +                if (hasCanvas) {
  49.490 +                    writeLazyPainter(state, uiDefaultInit, statePrefix, packageNamePrefix, fileNamePrefix, "border");
  49.491 +                }
  49.492 +            }
  49.493 +        } catch (Exception e) {
  49.494 +            e.printStackTrace();
  49.495 +        }
  49.496 +
  49.497 +        // handle sub regions
  49.498 +        for (UIRegion subRegion : region.getSubRegions()) {
  49.499 +            String subregionName = prefix + ":" + escape(subRegion.getKey());
  49.500 +            if (subRegion instanceof UIIconRegion) {
  49.501 +                writeIconRegion(comp, (UIIconRegion) subRegion, prefix, uiDefaultInit,
  49.502 +                        variables, packageNamePrefix, painterPackageRoot);
  49.503 +            } else if (subRegion instanceof UIComponent) {
  49.504 +                // inner named component
  49.505 +                UIComponent subComponent = (UIComponent) subRegion;
  49.506 +                writeRegion(subComponent, subRegion, subregionName,
  49.507 +                        uiDefaultInit, styleInit, variables, packageNamePrefix, painterPackageRoot);
  49.508 +            } else {
  49.509 +                writeRegion(comp, subRegion, subregionName, uiDefaultInit, styleInit, variables,
  49.510 +                        packageNamePrefix, painterPackageRoot);
  49.511 +            }
  49.512 +        }
  49.513 +    }
  49.514 +
  49.515 +    private static void writeLazyPainter(UIState state, StringBuilder uiDefaultInit, String statePrefix, String packageNamePrefix, String fileNamePrefix, String painterSuffix) {
  49.516 +        Canvas canvas = state.getCanvas();
  49.517 +        if (!canvas.isBlank()) {
  49.518 +            Insets si = canvas.getStretchingInsets();
  49.519 +            boolean inverted = state.isInverted();
  49.520 +            UIStyle.CacheMode cache = state.getStyle().getCacheMode();
  49.521 +            String cacheModeString = null;
  49.522 +            switch (cache) {
  49.523 +                case NO_CACHING: cacheModeString = "AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING"; break;
  49.524 +                case FIXED_SIZES: cacheModeString = "AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES"; break;
  49.525 +                case NINE_SQUARE_SCALE: cacheModeString = "AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE"; break;
  49.526 +            }
  49.527 +            double maxH = state.getStyle().getMaxHozCachedImgScaling();
  49.528 +            double maxV = state.getStyle().getMaxVertCachedImgScaling();
  49.529 +            String stateConstant = toConstantName(painterSuffix + "_" + UIState.keysToString(state.getStateKeys()));
  49.530 +
  49.531 +            uiDefaultInit.append("        d.put(\"")
  49.532 +                    .append(statePrefix)
  49.533 +                    .append(".").append(painterSuffix).append("Painter\", new LazyPainter(\"")
  49.534 +                    .append(packageNamePrefix).append(".").append(fileNamePrefix)
  49.535 +                    .append("\", ")
  49.536 +                    .append(fileNamePrefix).append(".").append(stateConstant).append(", ")
  49.537 +                    .append(convert(si)).append(", ")
  49.538 +                    .append(convert(canvas.getSize())).append(", ")
  49.539 +                    .append(inverted).append(", ")
  49.540 +                    .append(cacheModeString).append(", ")
  49.541 +                    .append(maxH == Double.POSITIVE_INFINITY ? "Double.POSITIVE_INFINITY" : maxH).append(", ")
  49.542 +                    .append(maxV == Double.POSITIVE_INFINITY ? "Double.POSITIVE_INFINITY" : maxV).append("));\n");
  49.543 +        }
  49.544 +    }
  49.545 +
  49.546 +
  49.547 +    /**
  49.548 +     * Write out code for a IconRegion
  49.549 +     *
  49.550 +     * @param comp               This may be the same as the region <code>region</code> or is the parent component
  49.551 +     *                           containing the region
  49.552 +     * @param region             The region we are writing out
  49.553 +     * @param prefix             This is [Comp][Region]......[Region] path
  49.554 +     * @param key                The key for this icon.
  49.555 +     * @param uiDefaultInit      This is for inserting into org.mypackage.mylaf.MyDefaults#getDefaults() method
  49.556 +     * @param variables          The variables map pre populated with "PACKAGE" and "LAF_NAME"
  49.557 +     * @param packageNamePrefix  The package name associated with this synth look and feel. For example,
  49.558 +     *                           org.mypackage.mylaf
  49.559 +     * @param painterPackageRoot The directory to write painters out to
  49.560 +     */
  49.561 +    private static void writeIconRegion(UIComponent comp, UIIconRegion region, String prefix,
  49.562 +                                        StringBuilder uiDefaultInit, Map<String, String> variables,
  49.563 +                                        String packageNamePrefix, File painterPackageRoot) {
  49.564 +
  49.565 +        Dimension size = null;
  49.566 +        String fileNamePrefix = makePretty(prefix) + "Painter";
  49.567 +        // write states ui defaults
  49.568 +        for (UIState state : region.getBackgroundStates()) {// TODO: Handle Background,Foreground and Borders States Lists? Actually not sure that IconRegions need support borders or foregrounds
  49.569 +            Canvas canvas = state.getCanvas();
  49.570 +            if (!canvas.isBlank()) {
  49.571 +                String statePrefix = prefix + "[" + state.getName() + "]";
  49.572 +                // Put Painter in UiDefaults
  49.573 +                writeLazyPainter(state, uiDefaultInit, statePrefix, packageNamePrefix, fileNamePrefix, region.getKey());
  49.574 +                size = canvas.getSize();
  49.575 +            }
  49.576 +        }
  49.577 +
  49.578 +        if (size != null) {
  49.579 +            // Put SynthIconImpl wrapper in UiDefaults
  49.580 +            String key = region.getBasicKey() == null ? prefix + "." + region.getKey() : region.getBasicKey();
  49.581 +            uiDefaultInit.append("        d.put(\"")
  49.582 +                    .append(key)
  49.583 +                    .append("\", new NimbusIcon(\"") //TODO should this be wrapped in an IconUIResource?
  49.584 +                    .append(prefix)
  49.585 +                    .append("\", \"")
  49.586 +                    .append(region.getKey())
  49.587 +                    .append("Painter")
  49.588 +                    .append("\", ")
  49.589 +                    .append(size.width)
  49.590 +                    .append(", ")
  49.591 +                    .append(size.height)
  49.592 +                    .append("));\n");
  49.593 +        }
  49.594 +
  49.595 +        // handle sub regions
  49.596 +        if (region.getSubRegions().length > 0) {
  49.597 +            // there is no meaning to a sub region inside a IconRegion
  49.598 +            throw new IllegalStateException("You can not have sub regions inside UiIconRegions. \"" +
  49.599 +                    comp.getSubRegions()[0].getName() + "\" is inside \""
  49.600 +                    + prefix.substring(0, prefix.length() - 1) + "\"");
  49.601 +        }
  49.602 +    }
  49.603 +
  49.604 +    /**
  49.605 +     * Utility method for escaping all double quotes with backslash double-quote.
  49.606 +     */
  49.607 +    private static String escape(String s) {
  49.608 +        return s.replace("\"", "\\\"");
  49.609 +    }
  49.610 +
  49.611 +    private static String convertPaint(PaintModel paint){
  49.612 +        if (paint instanceof Matte){
  49.613 +            Matte matte = (Matte)paint;
  49.614 +            if (matte.isAbsolute()){
  49.615 +                String colorParams = convert(matte.getColor());
  49.616 +                if (matte.isUiResource()) {
  49.617 +                    return "new ColorUIResource(" + colorParams + ")";
  49.618 +                } else {
  49.619 +                    return colorParams;
  49.620 +                }
  49.621 +            } else {
  49.622 +                String s = "getDerivedColor(\"" +
  49.623 +                            matte.getUiDefaultParentName()+"\","+
  49.624 +                            matte.getHueOffset()+"f,"+matte.getSaturationOffset()+
  49.625 +                            "f,"+matte.getBrightnessOffset()+"f,"+
  49.626 +                            matte.getAlphaOffset();
  49.627 +                if (matte.isUiResource()) {
  49.628 +                    return s + ")";
  49.629 +                } else {
  49.630 +                    return s + ",false)";
  49.631 +                }
  49.632 +            }
  49.633 +        } else {
  49.634 +            //TODO: What about gradients etc here?
  49.635 +            System.err.println("Error: Could not write paint in " +
  49.636 +                    "DefaultsGenerator as it was not a Matte. = "+
  49.637 +                    paint.getClass().getName());
  49.638 +            return "";
  49.639 +        }
  49.640 +    }
  49.641 +
  49.642 +    private static String convertBorder(Border val) {
  49.643 +        StringBuilder uiDefaultInit = new StringBuilder();
  49.644 +        Insets i;
  49.645 +        if (val instanceof PainterBorder) {
  49.646 +            PainterBorder pb = (PainterBorder) val;
  49.647 +            i = pb.getBorderInsets();
  49.648 +            uiDefaultInit.append("new PainterBorder(\"")
  49.649 +                    .append(pb.getPainterName())
  49.650 +                    .append("\", new Insets(")
  49.651 +                    .append(i.top).append(", ")
  49.652 +                    .append(i.left).append(", ")
  49.653 +                    .append(i.bottom).append(", ")
  49.654 +                    .append(i.right)
  49.655 +                    .append("))");
  49.656 +        } else if (val instanceof EmptyBorder) {
  49.657 +            i = ((EmptyBorder) val).getBorderInsets();
  49.658 +            uiDefaultInit.append("BorderFactory.createEmptyBorder(")
  49.659 +                    .append(i.top).append(", ")
  49.660 +                    .append(i.left).append(", ")
  49.661 +                    .append(i.bottom).append(", ")
  49.662 +                    .append(i.right)
  49.663 +                    .append(")");
  49.664 +        } else if (val instanceof LineBorder) {
  49.665 +            LineBorder border = (LineBorder) val;
  49.666 +            uiDefaultInit.append("BorderFactory.createLineBorder(")
  49.667 +                    .append(convert(border.getLineColor()))
  49.668 +                    .append(",")
  49.669 +                    .append(border.getThickness())
  49.670 +                    .append(")");
  49.671 +        } else if (val instanceof EtchedBorder) {
  49.672 +            EtchedBorder border = (EtchedBorder) val;
  49.673 +            uiDefaultInit.append("BorderFactory.createEtchedBorder(")
  49.674 +                    .append(border.getEtchType())
  49.675 +                    .append(",")
  49.676 +                    .append(convert(border.getHighlightColor()))
  49.677 +                    .append(",")
  49.678 +                    .append(convert(border.getShadowColor()))
  49.679 +                    .append(")");
  49.680 +        } else if (val instanceof BevelBorder) {
  49.681 +            BevelBorder border = (BevelBorder) val;
  49.682 +            uiDefaultInit.append("BorderFactory.createEtchedBorder(")
  49.683 +                    .append(border.getBevelType())
  49.684 +                    .append(",")
  49.685 +                    .append(convert(border.getHighlightOuterColor()))
  49.686 +                    .append(",")
  49.687 +                    .append(convert(border.getHighlightInnerColor()))
  49.688 +                    .append(",")
  49.689 +                    .append(convert(border.getShadowOuterColor()))
  49.690 +                    .append(",")
  49.691 +                    .append(convert(border.getShadowInnerColor()))
  49.692 +                    .append(")");
  49.693 +        } else if (val instanceof MatteBorder) {
  49.694 +            MatteBorder border = (MatteBorder) val;
  49.695 +            i = border.getBorderInsets();
  49.696 +            uiDefaultInit.append("BorderFactory.createEmptyBorder(")
  49.697 +                    .append(i.top).append(", ")
  49.698 +                    .append(i.left).append(", ")
  49.699 +                    .append(i.bottom).append(", ")
  49.700 +                    .append(i.right).append(", ")
  49.701 +                    .append(convert(border.getMatteColor()))
  49.702 +                    .append(")");
  49.703 +        } else if (val instanceof CompoundBorder) {
  49.704 +            CompoundBorder border = (CompoundBorder) val;
  49.705 +            uiDefaultInit.append("BorderFactory.createEmptyBorder(")
  49.706 +                    .append(convertBorder(border.getOutsideBorder()))
  49.707 +                    .append(",")
  49.708 +                    .append(convertBorder(border.getInsideBorder()))
  49.709 +                    .append(")");
  49.710 +        }
  49.711 +        return uiDefaultInit.toString();
  49.712 +    }
  49.713 +
  49.714 +    private static boolean hasCanvas(UIRegion region) {
  49.715 +        for (UIState s : region.getBackgroundStates()) {
  49.716 +            if (!s.getCanvas().isBlank()) return true;
  49.717 +        }
  49.718 +        for (UIState s : region.getBorderStates()) {
  49.719 +            if (!s.getCanvas().isBlank()) return true;
  49.720 +        }
  49.721 +        for (UIState s : region.getForegroundStates()) {
  49.722 +            if (!s.getCanvas().isBlank()) return true;
  49.723 +        }
  49.724 +        for (UIRegion subregion : region.getSubRegions()) {
  49.725 +            if (hasCanvas(subregion)) return true;
  49.726 +        }
  49.727 +        return false;
  49.728 +    }
  49.729 +}
    50.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    50.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/generator/Generator.java	Wed Apr 29 00:27:46 2009 -0700
    50.3 @@ -0,0 +1,289 @@
    50.4 +/*
    50.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    50.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    50.7 + *
    50.8 + * This code is free software; you can redistribute it and/or modify it
    50.9 + * under the terms of the GNU General Public License version 2 only, as
   50.10 + * published by the Free Software Foundation.  Sun designates this
   50.11 + * particular file as subject to the "Classpath" exception as provided
   50.12 + * by Sun in the LICENSE file that accompanied this code.
   50.13 + *
   50.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   50.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   50.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   50.17 + * version 2 for more details (a copy is included in the LICENSE file that
   50.18 + * accompanied this code).
   50.19 + *
   50.20 + * You should have received a copy of the GNU General Public License version
   50.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   50.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   50.23 + *
   50.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   50.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   50.26 + * have any questions.
   50.27 + */
   50.28 +package org.jdesktop.synthdesigner.generator;
   50.29 +
   50.30 +import static org.jdesktop.synthdesigner.generator.TemplateWriter.read;
   50.31 +import static org.jdesktop.synthdesigner.generator.TemplateWriter.writeSrcFile;
   50.32 +import org.jdesktop.synthdesigner.synthmodel.SynthModel;
   50.33 +import org.jibx.runtime.BindingDirectory;
   50.34 +import org.jibx.runtime.IBindingFactory;
   50.35 +import org.jibx.runtime.IUnmarshallingContext;
   50.36 +
   50.37 +import java.io.File;
   50.38 +import java.io.FileInputStream;
   50.39 +import java.io.IOException;
   50.40 +import java.util.HashMap;
   50.41 +import java.util.Map;
   50.42 +
   50.43 +/**
   50.44 + * Generates the various Java artifacts based on a SynthModel.
   50.45 + * <p/>
   50.46 + * Generated source files are split up among two different locations. There are those source files that are meant to be
   50.47 + * edited (generally, only the LookAndFeel class itself) and those that are autogenerated (everything else).
   50.48 + * <p/>
   50.49 + * All autogenerated files are placed in "buildPackageRoot" and are package private. A LAF author (one who has access to
   50.50 + * the generated sources) will be able to access any of the generated classes. Those referencing the library, however,
   50.51 + * will only be able to access the main LookAndFeel class itself (since everything else is package private).
   50.52 + *
   50.53 + * @author  Richard Bair
   50.54 + * @author  Jasper Potts
   50.55 + */
   50.56 +public class Generator {
   50.57 +    /** A map of variables that are used for variable substitution in the template files. */
   50.58 +    private Map<String, String> variables;
   50.59 +
   50.60 +    private boolean full = false;
   50.61 +    private File buildPackageRoot;
   50.62 +    private File srcPackageRoot;
   50.63 +    private String packageNamePrefix;
   50.64 +    private String lafName;
   50.65 +    private SynthModel model;
   50.66 +
   50.67 +    /**
   50.68 +     * MAIN APPLICATION
   50.69 +     * <p/>
   50.70 +     * This is for using the generator as part of the java build process
   50.71 +     *
   50.72 +     * @param args The commandline arguments
   50.73 +     */
   50.74 +    public static void main(String[] args) {
   50.75 +        if (args.length == 0 || (args.length % 2) != 0) {
   50.76 +            System.out.println("Usage: generator [-options]\n" +
   50.77 +                    "    -full <true|false>     True if we should build the whole LAF or false for building just states and painters.\n" +
   50.78 +                    "    -skinFile <value>      Path to the skin.laf file for the LAF to be generated from.\n" +
   50.79 +                    "    -buildDir <value>      The directory beneath which the build-controlled artifacts (such as the Painters) should\n" +
   50.80 +                    "                           be placed. This is the root directory beneath which the necessary packages and source\n" +
   50.81 +                    "                           files will be created.\n" +
   50.82 +                    "    -srcDir <value>        The directory beneath which the normal user-controlled artifacts (such as the core\n" +
   50.83 +                    "                           LookAndFeel file) should be placed. These are one-time generated files. This is the root\n" +
   50.84 +                    "                           directory beneath which the necessary packages and source files will be created.\n" +
   50.85 +                    "    -resourcesDir <value>  The resources directory containing templates and images.\n" +
   50.86 +                    "    -packagePrefix <value> The package name associated with this synth look and feel. For example,\n" +
   50.87 +                    "                           \"org.mypackage.mylaf\"\n" +
   50.88 +                    "    -lafName <value>       The name of the laf, such as \"MyLAF\".\n");
   50.89 +        } else {
   50.90 +            boolean full = false;
   50.91 +            File skinFile = new File(System.getProperty("user.dir"));
   50.92 +            File buildDir = new File(System.getProperty("user.dir"));
   50.93 +            File srcDir = new File(System.getProperty("user.dir"));
   50.94 +            File resourcesDir = new File(System.getProperty("user.dir"));
   50.95 +            String packagePrefix = "org.mypackage.mylaf";
   50.96 +            String lafName = "MyLAF";
   50.97 +            for (int i = 0; i < args.length; i += 2) {
   50.98 +                String key = args[i].trim().toLowerCase();
   50.99 +                String value = args[i + 1].trim();
  50.100 +                if ("-full".equals(key)) {
  50.101 +                    full = Boolean.parseBoolean(value);
  50.102 +                } else if ("-skinfile".equals(key)) {
  50.103 +                    skinFile = new File(value);
  50.104 +                } else if ("-builddir".equals(key)) {
  50.105 +                    buildDir = new File(value);
  50.106 +                } else if ("-srcdir".equals(key)) {
  50.107 +                    srcDir = new File(value);
  50.108 +                } else if ("-resourcesdir".equals(key)) {
  50.109 +                    resourcesDir = new File(value);
  50.110 +                } else if ("-packageprefix".equals(key)) {
  50.111 +                    packagePrefix = value;
  50.112 +                } else if ("-lafname".equals(key)) {
  50.113 +                    lafName = value;
  50.114 +                }
  50.115 +            }
  50.116 +            System.out.println("### GENERATING LAF CODE ################################");
  50.117 +            System.out.println("   full          :" + full);
  50.118 +            System.out.println("   skinFile      :" + skinFile.getAbsolutePath());
  50.119 +            System.out.println("   buildDir      :" + buildDir.getAbsolutePath());
  50.120 +            System.out.println("   srcDir        :" + srcDir.getAbsolutePath());
  50.121 +            System.out.println("   resourcesDir  :" + resourcesDir.getAbsolutePath());
  50.122 +            System.out.println("   packagePrefix :" +packagePrefix);
  50.123 +            System.out.println("   lafName       :" +lafName);
  50.124 +            try {
  50.125 +                // LOAD SKIN MODEL
  50.126 +                IBindingFactory bindingFactory = BindingDirectory.getFactory(SynthModel.class);
  50.127 +                IUnmarshallingContext mctx = bindingFactory.createUnmarshallingContext();
  50.128 +                mctx.setDocument(new FileInputStream(skinFile), "UTF-8");
  50.129 +                // pass resources directory in as user context so it can be used in SynthModel preSet
  50.130 +                mctx.setUserContext(resourcesDir);
  50.131 +                SynthModel model = (SynthModel) mctx.unmarshalElement();
  50.132 +                // create and run generator
  50.133 +                Generator generator = new Generator(full, buildDir, srcDir, packagePrefix, lafName, model);
  50.134 +                generator.generate();
  50.135 +            } catch (Exception e) {
  50.136 +                System.err.println("Error loading skin and generating java src:");
  50.137 +                e.printStackTrace();
  50.138 +            }
  50.139 +        }
  50.140 +    }
  50.141 +
  50.142 +    /**
  50.143 +     * Creates a new Generator, capable of outputting the source code artifacts related to a given SynthModel. It is
  50.144 +     * capable of generating the one-time artifacts in addition to the regeneration of build-controlled artifacts.
  50.145 +     *
  50.146 +     * @param full              True if we should build the whole LAF or false for building just states and painters.
  50.147 +     * @param buildDir          The directory beneath which the build-controlled artifacts (such as the Painters) should
  50.148 +     *                          be placed. This is the root directory beneath which the necessary packages and source
  50.149 +     *                          files will be created.
  50.150 +     * @param srcDir            The directory beneath which the normal user-controlled artifacts (such as the core
  50.151 +     *                          LookAndFeel file) should be placed. These are one-time generated files. This is the root
  50.152 +     *                          directory beneath which the necessary packages and source files will be created.
  50.153 +     * @param packageNamePrefix The package name associated with this synth look and feel. For example,
  50.154 +     *                          org.mypackage.mylaf
  50.155 +     * @param lafName           The name of the laf, such as MyLAF.
  50.156 +     * @param model             The actual SynthModel to base these generated files on.
  50.157 +     */
  50.158 +    public Generator(boolean full, File buildDir, File srcDir, String packageNamePrefix, String lafName,
  50.159 +                     SynthModel model) {
  50.160 +        this.full = full;
  50.161 +        //validate the input variables
  50.162 +        if (packageNamePrefix == null) {
  50.163 +            throw new IllegalArgumentException("You must specify a package name prefix");
  50.164 +        }
  50.165 +        if (buildDir == null) {
  50.166 +            throw new IllegalArgumentException("You must specify the build directory");
  50.167 +        }
  50.168 +        if (srcDir == null) {
  50.169 +            throw new IllegalArgumentException("You must specify the source directory");
  50.170 +        }
  50.171 +        if (model == null) {
  50.172 +            throw new IllegalArgumentException("You must specify the SynthModel");
  50.173 +        }
  50.174 +        if (lafName == null) {
  50.175 +            throw new IllegalArgumentException("You must specify the name of the look and feel");
  50.176 +        }
  50.177 +
  50.178 +        //construct the map which is used to do variable substitution of the template
  50.179 +        //files
  50.180 +        variables = new HashMap<String, String>();
  50.181 +        variables.put("PACKAGE", packageNamePrefix);
  50.182 +        variables.put("LAF_NAME", lafName);
  50.183 +
  50.184 +        //generate and save references to the package-root directories.
  50.185 +        //(That is, given the buildDir and srcDir, generate references to the
  50.186 +        //org.mypackage.mylaf subdirectories)
  50.187 +        buildPackageRoot = new File(buildDir, packageNamePrefix.replaceAll("\\.", "\\/"));
  50.188 +        buildPackageRoot.mkdirs();
  50.189 +        srcPackageRoot = new File(srcDir, packageNamePrefix.replaceAll("\\.", "\\/"));
  50.190 +        srcPackageRoot.mkdirs();
  50.191 +
  50.192 +        //save the variables
  50.193 +        this.packageNamePrefix = packageNamePrefix;
  50.194 +        this.lafName = lafName;
  50.195 +        this.model = model;
  50.196 +    }
  50.197 +
  50.198 +    public void generate() {
  50.199 +        //Generate the one-time files. If these files already exist, skip the
  50.200 +        //ones that exist and create the missing ones. Register warnings for the
  50.201 +        //already existing files.
  50.202 +
  50.203 +        //TODO Skip existing files, send warnings, etc.
  50.204 +        if (full) {
  50.205 +            try {
  50.206 +                //create the LookAndFeel file
  50.207 +                String template = read("resources/LookAndFeel.template");
  50.208 +                writeSrcFile(template, variables, new File(srcPackageRoot, lafName + "LookAndFeel.java"));
  50.209 +            } catch (IOException e) {
  50.210 +                e.printStackTrace();
  50.211 +            }
  50.212 +        }
  50.213 +        //create the painters and such.
  50.214 +        regenerate();
  50.215 +    }
  50.216 +
  50.217 +    public void regenerate() {
  50.218 +        try {
  50.219 +            if (full) {
  50.220 +                //first, create the AbstractRegionPainter.java file.
  50.221 +                String template = read("resources/AbstractRegionPainter.template");
  50.222 +                writeSrcFile(template, variables, new File(buildPackageRoot, "AbstractRegionPainter.java"));
  50.223 +
  50.224 +                //write out BlendingMode.java
  50.225 +                template = read("resources/BlendingMode.template");
  50.226 +                writeSrcFile(template, variables, new File(buildPackageRoot, "BlendingMode.java"));
  50.227 +
  50.228 +                //create the SynthPainterImpl class
  50.229 +                template = read("resources/SynthPainterImpl.template");
  50.230 +                writeSrcFile(template, variables, new File(buildPackageRoot, "SynthPainterImpl.java"));
  50.231 +
  50.232 +                //create the IconImpl class
  50.233 +                template = read("resources/IconImpl.template");
  50.234 +                writeSrcFile(template, variables, new File(buildPackageRoot, lafName + "Icon.java"));
  50.235 +
  50.236 +                //create the StyleImpl class
  50.237 +                template = read("resources/StyleImpl.template");
  50.238 +                writeSrcFile(template, variables, new File(buildPackageRoot, lafName + "Style.java"));
  50.239 +
  50.240 +                //write out Effect.java
  50.241 +                template = read("resources/Effect.template");
  50.242 +                writeSrcFile(template, variables, new File(buildPackageRoot, "Effect.java"));
  50.243 +
  50.244 +                //write out EffectUtils.java
  50.245 +                template = read("resources/EffectUtils.template");
  50.246 +                writeSrcFile(template, variables, new File(buildPackageRoot, "EffectUtils.java"));
  50.247 +
  50.248 +                //write out ShadowEffect.java
  50.249 +                template = read("resources/ShadowEffect.template");
  50.250 +                writeSrcFile(template, variables, new File(buildPackageRoot, "ShadowEffect.java"));
  50.251 +
  50.252 +                //write out DropShadowEffect.java
  50.253 +                template = read("resources/DropShadowEffect.template");
  50.254 +                writeSrcFile(template, variables, new File(buildPackageRoot, "DropShadowEffect.java"));
  50.255 +
  50.256 +                //write out InnerShadowEffect.java
  50.257 +                template = read("resources/InnerShadowEffect.template");
  50.258 +                writeSrcFile(template, variables, new File(buildPackageRoot, "InnerShadowEffect.java"));
  50.259 +
  50.260 +                //write out InnerGlowEffect.java
  50.261 +                template = read("resources/InnerGlowEffect.template");
  50.262 +                writeSrcFile(template, variables, new File(buildPackageRoot, "InnerGlowEffect.java"));
  50.263 +
  50.264 +                //write out OuterGlowEffect.java
  50.265 +                template = read("resources/OuterGlowEffect.template");
  50.266 +                writeSrcFile(template, variables, new File(buildPackageRoot, "OuterGlowEffect.java"));
  50.267 +
  50.268 +                //write out State.java
  50.269 +                template = read("resources/State.template");
  50.270 +                writeSrcFile(template, variables, new File(buildPackageRoot, "State.java"));
  50.271 +
  50.272 +                template = read("resources/ImageCache.template");
  50.273 +                writeSrcFile(template, variables, new File(buildPackageRoot, "ImageCache.java"));
  50.274 +
  50.275 +                template = read("resources/ImageScalingHelper.template");
  50.276 +                writeSrcFile(template, variables, new File(buildPackageRoot, "ImageScalingHelper.java"));
  50.277 +            }
  50.278 +            //next, populate the first set of ui defaults based on what is in the
  50.279 +            //various palettes of the synth model
  50.280 +            StringBuilder uiDefaultInit = new StringBuilder();
  50.281 +            StringBuilder styleInit = new StringBuilder();
  50.282 +            DefaultsGenerator.generateDefaults(uiDefaultInit, styleInit, model, variables, packageNamePrefix,
  50.283 +                    buildPackageRoot);
  50.284 +            variables.put("UI_DEFAULT_INIT", uiDefaultInit.toString());
  50.285 +            variables.put("STYLE_INIT", styleInit.toString());
  50.286 +            writeSrcFile(read("resources/Defaults.template"), variables,
  50.287 +                    new File(buildPackageRoot, lafName + "Defaults.java"));
  50.288 +        } catch (IOException e) {
  50.289 +            e.printStackTrace();
  50.290 +        }
  50.291 +    }
  50.292 +}
    51.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    51.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/generator/GeneratorUtils.java	Wed Apr 29 00:27:46 2009 -0700
    51.3 @@ -0,0 +1,295 @@
    51.4 +/*
    51.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    51.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    51.7 + *
    51.8 + * This code is free software; you can redistribute it and/or modify it
    51.9 + * under the terms of the GNU General Public License version 2 only, as
   51.10 + * published by the Free Software Foundation.  Sun designates this
   51.11 + * particular file as subject to the "Classpath" exception as provided
   51.12 + * by Sun in the LICENSE file that accompanied this code.
   51.13 + *
   51.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   51.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   51.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   51.17 + * version 2 for more details (a copy is included in the LICENSE file that
   51.18 + * accompanied this code).
   51.19 + *
   51.20 + * You should have received a copy of the GNU General Public License version
   51.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   51.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   51.23 + *
   51.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   51.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   51.26 + * have any questions.
   51.27 + */
   51.28 +package org.jdesktop.synthdesigner.generator;
   51.29 +
   51.30 +import javax.swing.plaf.synth.Region;
   51.31 +import javax.swing.plaf.synth.SynthConstants;
   51.32 +
   51.33 +/**
   51.34 + * GeneratorUtils
   51.35 + *
   51.36 + * @author  Richard Bair
   51.37 + * @author  Jasper Potts
   51.38 + */
   51.39 +class GeneratorUtils {
   51.40 +    private GeneratorUtils() {}
   51.41 +
   51.42 +    /**
   51.43 +     * Given a synth state, create the appropriate name as it would be used for a ui default key.
   51.44 +     * <p/>
   51.45 +     * For example:
   51.46 +     * <p/>
   51.47 +     * enabled enabled+over enabled+over+selected
   51.48 +     */
   51.49 +    static String toUIDefaultKey(int state) {
   51.50 +        StringBuffer buffer = new StringBuffer();
   51.51 +        if ((state & SynthConstants.DEFAULT) == SynthConstants.DEFAULT) {
   51.52 +            buffer.append("default");
   51.53 +        }
   51.54 +        if ((state & SynthConstants.DISABLED) == SynthConstants.DISABLED) {
   51.55 +            if (buffer.length() > 0) buffer.append("+");
   51.56 +            buffer.append("disabled");
   51.57 +        }
   51.58 +        if ((state & SynthConstants.ENABLED) == SynthConstants.ENABLED) {
   51.59 +            if (buffer.length() > 0) buffer.append("+");
   51.60 +            buffer.append("enabled");
   51.61 +        }
   51.62 +        if ((state & SynthConstants.FOCUSED) == SynthConstants.FOCUSED) {
   51.63 +            if (buffer.length() > 0) buffer.append("+");
   51.64 +            buffer.append("focused");
   51.65 +        }
   51.66 +        if ((state & SynthConstants.MOUSE_OVER) == SynthConstants.MOUSE_OVER) {
   51.67 +            if (buffer.length() > 0) buffer.append("+");
   51.68 +            buffer.append("over");
   51.69 +        }
   51.70 +        if ((state & SynthConstants.PRESSED) == SynthConstants.PRESSED) {
   51.71 +            if (buffer.length() > 0) buffer.append("+");
   51.72 +            buffer.append("down");
   51.73 +        }
   51.74 +        if ((state & SynthConstants.SELECTED) == SynthConstants.SELECTED) {
   51.75 +            if (buffer.length() > 0) buffer.append("+");
   51.76 +            buffer.append("selected");
   51.77 +        }
   51.78 +        return buffer.toString();
   51.79 +    }
   51.80 +
   51.81 +    //takes a states string of the form Enabled+Foo+Bar.
   51.82 +    //removes any whitespace. Replaces the + signs with And.
   51.83 +    static String toClassName(String states) {
   51.84 +        String s = states.replace(" ", "");
   51.85 +        s = states.replace("+", "And");
   51.86 +        return s;
   51.87 +    }
   51.88 +
   51.89 +    //takes a states string of the form Enabled+Foo+Bar.
   51.90 +    //removes any whitespace. Replaces the + signs with _.
   51.91 +    //capitalizes the whole lot
   51.92 +    static String toConstantName(String states) {
   51.93 +        String s = states.replace(" ", "");
   51.94 +        s = states.replace("+", "_");
   51.95 +        return s.toUpperCase();
   51.96 +    }
   51.97 +
   51.98 +    /**
   51.99 +     * Given a string "s" of the form:
  51.100 +     *
  51.101 +     * A.\"A.a\".B
  51.102 +     *
  51.103 +     * Make it such that:
  51.104 +     *
  51.105 +     * AAAB
  51.106 +     *
  51.107 +     * For example, ComboBox.\"ComboBox.arrowButton\" would become
  51.108 +     * ComboBoxComboBoxArrowButton
  51.109 +     *
  51.110 +     * @param s
  51.111 +     * @return
  51.112 +     */
  51.113 +    static String makePretty(String s) {
  51.114 +        char[] src = s.toCharArray();
  51.115 +        char[] dst = new char[src.length];
  51.116 +        int dstIndex = 0;
  51.117 +        for (int i=0; i<src.length; i++) {
  51.118 +            //if the src char is a period and there is a following character,
  51.119 +            //make sure the character is capitalized.
  51.120 +            if ((src[i] == '.' || src[i] == ':') && i < src.length -1) {
  51.121 +                src[i+1] = Character.toUpperCase(src[i+1]);
  51.122 +                continue;
  51.123 +            }
  51.124 +            //if the src char is one that is to be removed, skip it.
  51.125 +            if (src[i] == '.' || src[i] == ':' || src[i] == '\\' || src[i] == '"') {
  51.126 +                continue;
  51.127 +            }
  51.128 +            //copy over the current char.
  51.129 +            dst[dstIndex++] = src[i];
  51.130 +        }
  51.131 +        //at this point, dstIndex is 1 greater than the last valid index position in dst
  51.132 +        //or in other words it represents the count.
  51.133 +        return new String(dst, 0, dstIndex);
  51.134 +    }
  51.135 +
  51.136 +    /**
  51.137 +     * Encodes the given synth state as if it were specified in java code, such as
  51.138 +     * <p/>
  51.139 +     * SynthConstants.ENABLED | SynthConstants.MOUSE_OVER
  51.140 +     */
  51.141 +    static String toJavaList(int state) {
  51.142 +        StringBuffer buffer = new StringBuffer();
  51.143 +        if ((state & SynthConstants.DEFAULT) == SynthConstants.DEFAULT) {
  51.144 +            buffer.append("SynthConstants.DEFAULT");
  51.145 +        }
  51.146 +        if ((state & SynthConstants.DISABLED) == SynthConstants.DISABLED) {
  51.147 +            if (buffer.length() > 0) buffer.append(" | ");
  51.148 +            buffer.append("SynthConstants.DISABLED");
  51.149 +        }
  51.150 +        if ((state & SynthConstants.ENABLED) == SynthConstants.ENABLED) {
  51.151 +            if (buffer.length() > 0) buffer.append(" | ");
  51.152 +            buffer.append("SynthConstants.ENABLED");
  51.153 +        }
  51.154 +        if ((state & SynthConstants.FOCUSED) == SynthConstants.FOCUSED) {
  51.155 +            if (buffer.length() > 0) buffer.append(" | ");
  51.156 +            buffer.append("SynthConstants.FOCUSED");
  51.157 +        }
  51.158 +        if ((state & SynthConstants.MOUSE_OVER) == SynthConstants.MOUSE_OVER) {
  51.159 +            if (buffer.length() > 0) buffer.append(" | ");
  51.160 +            buffer.append("SynthConstants.MOUSE_OVER");
  51.161 +        }
  51.162 +        if ((state & SynthConstants.PRESSED) == SynthConstants.PRESSED) {
  51.163 +            if (buffer.length() > 0) buffer.append(" | ");
  51.164 +            buffer.append("SynthConstants.PRESSED");
  51.165 +        }
  51.166 +        if ((state & SynthConstants.SELECTED) == SynthConstants.SELECTED) {
  51.167 +            if (buffer.length() > 0) buffer.append(" | ");
  51.168 +            buffer.append("SynthConstants.SELECTED");
  51.169 +        }
  51.170 +        return buffer.toString();
  51.171 +    }
  51.172 +
  51.173 +    /**
  51.174 +     * Checks the given region name to discover if it is one of the standard synth regions. If so, return the name in
  51.175 +     * caps and such. Otherwise, return a big fat null.
  51.176 +     * <p/>
  51.177 +     * I have to do this because, unfortunately, synth's Region doesn't implement equals.
  51.178 +     */
  51.179 +    static String getRegionNameCaps(String regionName) {
  51.180 +        if (Region.ARROW_BUTTON.getName().equals(regionName)) {
  51.181 +            return "ARROW_BUTTON";
  51.182 +        } else if (Region.BUTTON.getName().equals(regionName)) {
  51.183 +            return "BUTTON";
  51.184 +        } else if (Region.CHECK_BOX.getName().equals(regionName)) {
  51.185 +            return "CHECK_BOX";
  51.186 +        } else if (Region.CHECK_BOX_MENU_ITEM.getName().equals(regionName)) {
  51.187 +            return "CHECK_BOX_MENU_ITEM";
  51.188 +        } else if (Region.COLOR_CHOOSER.getName().equals(regionName)) {
  51.189 +            return "COLOR_CHOOSER";
  51.190 +        } else if (Region.COMBO_BOX.getName().equals(regionName)) {
  51.191 +            return "COMBO_BOX";
  51.192 +        } else if (Region.DESKTOP_ICON.getName().equals(regionName)) {
  51.193 +            return "DESKTOP_ICON";
  51.194 +        } else if (Region.DESKTOP_PANE.getName().equals(regionName)) {
  51.195 +            return "DESKTOP_PANE";
  51.196 +        } else if (Region.EDITOR_PANE.getName().equals(regionName)) {
  51.197 +            return "EDITOR_PANE";
  51.198 +        } else if (Region.FILE_CHOOSER.getName().equals(regionName)) {
  51.199 +            return "FILE_CHOOSER";
  51.200 +        } else if (Region.FORMATTED_TEXT_FIELD.getName().equals(regionName)) {
  51.201 +            return "FORMATTED_TEXT_FIELD";
  51.202 +        } else if (Region.INTERNAL_FRAME.getName().equals(regionName)) {
  51.203 +            return "INTERNAL_FRAME";
  51.204 +        } else if (Region.INTERNAL_FRAME_TITLE_PANE.getName().equals(regionName)) {
  51.205 +            return "INTERNAL_FRAME_TITLE_PANE";
  51.206 +        } else if (Region.LABEL.getName().equals(regionName)) {
  51.207 +            return "LABEL";
  51.208 +        } else if (Region.LIST.getName().equals(regionName)) {
  51.209 +            return "LIST";
  51.210 +        } else if (Region.MENU.getName().equals(regionName)) {
  51.211 +            return "MENU";
  51.212 +        } else if (Region.MENU_BAR.getName().equals(regionName)) {
  51.213 +            return "MENU_BAR";
  51.214 +        } else if (Region.MENU_ITEM.getName().equals(regionName)) {
  51.215 +            return "MENU_ITEM";
  51.216 +        } else if (Region.MENU_ITEM_ACCELERATOR.getName().equals(regionName)) {
  51.217 +            return "MENU_ITEM_ACCELERATOR";
  51.218 +        } else if (Region.OPTION_PANE.getName().equals(regionName)) {
  51.219 +            return "OPTION_PANE";
  51.220 +        } else if (Region.PANEL.getName().equals(regionName)) {
  51.221 +            return "PANEL";
  51.222 +        } else if (Region.PASSWORD_FIELD.getName().equals(regionName)) {
  51.223 +            return "PASSWORD_FIELD";
  51.224 +        } else if (Region.POPUP_MENU.getName().equals(regionName)) {
  51.225 +            return "POPUP_MENU";
  51.226 +        } else if (Region.POPUP_MENU_SEPARATOR.getName().equals(regionName)) {
  51.227 +            return "POPUP_MENU_SEPARATOR";
  51.228 +        } else if (Region.PROGRESS_BAR.getName().equals(regionName)) {
  51.229 +            return "PROGRESS_BAR";
  51.230 +        } else if (Region.RADIO_BUTTON.getName().equals(regionName)) {
  51.231 +            return "RADIO_BUTTON";
  51.232 +        } else if (Region.RADIO_BUTTON_MENU_ITEM.getName().equals(regionName)) {
  51.233 +            return "RADIO_BUTTON_MENU_ITEM";
  51.234 +        } else if (Region.ROOT_PANE.getName().equals(regionName)) {
  51.235 +            return "ROOT_PANE";
  51.236 +        } else if (Region.SCROLL_BAR.getName().equals(regionName)) {
  51.237 +            return "SCROLL_BAR";
  51.238 +        } else if (Region.SCROLL_BAR_THUMB.getName().equals(regionName)) {
  51.239 +            return "SCROLL_BAR_THUMB";
  51.240 +        } else if (Region.SCROLL_BAR_TRACK.getName().equals(regionName)) {
  51.241 +            return "SCROLL_BAR_TRACK";
  51.242 +        } else if (Region.SCROLL_PANE.getName().equals(regionName)) {
  51.243 +            return "SCROLL_PANE";
  51.244 +        } else if (Region.SEPARATOR.getName().equals(regionName)) {
  51.245 +            return "SEPARATOR";
  51.246 +        } else if (Region.SLIDER.getName().equals(regionName)) {
  51.247 +            return "SLIDER";
  51.248 +        } else if (Region.SLIDER_THUMB.getName().equals(regionName)) {
  51.249 +            return "SLIDER_THUMB";
  51.250 +        } else if (Region.SLIDER_TRACK.getName().equals(regionName)) {
  51.251 +            return "SLIDER_TRACK";
  51.252 +        } else if (Region.SPINNER.getName().equals(regionName)) {
  51.253 +            return "SPINNER";
  51.254 +        } else if (Region.SPLIT_PANE.getName().equals(regionName)) {
  51.255 +            return "SPLIT_PANE";
  51.256 +        } else if (Region.SPLIT_PANE_DIVIDER.getName().equals(regionName)) {
  51.257 +            return "SPLIT_PANE_DIVIDER";
  51.258 +        } else if (Region.TABBED_PANE.getName().equals(regionName)) {
  51.259 +            return "TABBED_PANE";
  51.260 +        } else if (Region.TABBED_PANE_CONTENT.getName().equals(regionName)) {
  51.261 +            return "TABBED_PANE_CONTENT";
  51.262 +        } else if (Region.TABBED_PANE_TAB.getName().equals(regionName)) {
  51.263 +            return "TABBED_PANE_TAB";
  51.264 +        } else if (Region.TABBED_PANE_TAB_AREA.getName().equals(regionName)) {
  51.265 +            return "TABBED_PANE_TAB_AREA";
  51.266 +        } else if (Region.TABLE.getName().equals(regionName)) {
  51.267 +            return "TABLE";
  51.268 +        } else if (Region.TABLE_HEADER.getName().equals(regionName)) {
  51.269 +            return "TABLE_HEADER";
  51.270 +        } else if (Region.TEXT_AREA.getName().equals(regionName)) {
  51.271 +            return "TEXT_AREA";
  51.272 +        } else if (Region.TEXT_FIELD.getName().equals(regionName)) {
  51.273 +            return "TEXT_FIELD";
  51.274 +        } else if (Region.TEXT_PANE.getName().equals(regionName)) {
  51.275 +            return "TEXT_PANE";
  51.276 +        } else if (Region.TOGGLE_BUTTON.getName().equals(regionName)) {
  51.277 +            return "TOGGLE_BUTTON";
  51.278 +        } else if (Region.TOOL_BAR.getName().equals(regionName)) {
  51.279 +            return "TOOL_BAR";
  51.280 +        } else if (Region.TOOL_BAR_CONTENT.getName().equals(regionName)) {
  51.281 +            return "TOOL_BAR_CONTENT";
  51.282 +        } else if (Region.TOOL_BAR_DRAG_WINDOW.getName().equals(regionName)) {
  51.283 +            return "TOOL_BAR_DRAG_WINDOW";
  51.284 +        } else if (Region.TOOL_BAR_SEPARATOR.getName().equals(regionName)) {
  51.285 +            return "TOOL_BAR_SEPARATOR";
  51.286 +        } else if (Region.TOOL_TIP.getName().equals(regionName)) {
  51.287 +            return "TOOL_TIP";
  51.288 +        } else if (Region.TREE.getName().equals(regionName)) {
  51.289 +            return "TREE";
  51.290 +        } else if (Region.TREE_CELL.getName().equals(regionName)) {
  51.291 +            return "TREE_CELL";
  51.292 +        } else if (Region.VIEWPORT.getName().equals(regionName)) {
  51.293 +            return "VIEWPORT";
  51.294 +        }
  51.295 +        System.err.println("[Info] Couldn't find a Region for " + regionName);
  51.296 +        return null;
  51.297 +    }
  51.298 +}
    52.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    52.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/generator/ObjectCodeConvertors.java	Wed Apr 29 00:27:46 2009 -0700
    52.3 @@ -0,0 +1,108 @@
    52.4 +/*
    52.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    52.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    52.7 + *
    52.8 + * This code is free software; you can redistribute it and/or modify it
    52.9 + * under the terms of the GNU General Public License version 2 only, as
   52.10 + * published by the Free Software Foundation.  Sun designates this
   52.11 + * particular file as subject to the "Classpath" exception as provided
   52.12 + * by Sun in the LICENSE file that accompanied this code.
   52.13 + *
   52.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   52.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   52.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   52.17 + * version 2 for more details (a copy is included in the LICENSE file that
   52.18 + * accompanied this code).
   52.19 + *
   52.20 + * You should have received a copy of the GNU General Public License version
   52.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   52.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   52.23 + *
   52.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   52.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   52.26 + * have any questions.
   52.27 + */
   52.28 +package org.jdesktop.synthdesigner.generator;
   52.29 +
   52.30 +import java.awt.*;
   52.31 +
   52.32 +/**
   52.33 + * ObjectCodeConvertors
   52.34 + *
   52.35 + * @author  Richard Bair
   52.36 + * @author  Jasper Potts
   52.37 + */
   52.38 +public class ObjectCodeConvertors {
   52.39 +    static java.math.MathContext ctx = new java.math.MathContext(3);
   52.40 +
   52.41 +    /**
   52.42 +     * Given a value (x), encode it such that 0 -> 1 is to the left of a, 1 -> 2 is between a and b, and 2 -> 3
   52.43 +     * is to the right of b.
   52.44 +     *
   52.45 +     * @param w width in the case of the x axis, height in the case of the y axis.
   52.46 +     */
   52.47 +    static float encode(float x, float a, float b, float w) {
   52.48 +        float r = 0;
   52.49 +        if (x < a) {
   52.50 +            r = (x / a);
   52.51 +        } else if (x > b) {
   52.52 +            r = 2 + ((x - b) / (w - b));
   52.53 +        } else if (x == a && x == b) {
   52.54 +            return 1.5f;
   52.55 +        } else {
   52.56 +            r = 1 + ((x - a) / (b - a));
   52.57 +        }
   52.58 +
   52.59 +        if (Float.isNaN(r)) {
   52.60 +            System.err.println("[Error] Encountered NaN: encode(" + x + ", " + a + ", " + b + ", " + w + ")");
   52.61 +            return 0;
   52.62 +        } else if (Float.isInfinite(r)) {
   52.63 +            System.err.println("[Error] Encountered Infinity: encode(" + x + ", " + a + ", " + b + ", " + w + ")");
   52.64 +            return 0;
   52.65 +        } else if (r < 0) {
   52.66 +            System.err.println("[Error] encoded value was less than 0: encode(" + x + ", " + a + ", " + b + ", " + w + ")");
   52.67 +            return 0;
   52.68 +        } else if (r > 3) {
   52.69 +            System.err.println("[Error] encoded value was greater than 3: encode(" + x + ", " + a + ", " + b + ", " + w + ")");
   52.70 +            return 3;
   52.71 +        } else {
   52.72 +            //for prettyness sake (and since we aren't really going to miss
   52.73 +            //any accuracy here) I'm rounding this to 3 decimal places
   52.74 +//                return java.math.BigDecimal.valueOf(r).round(ctx).doubleValue();
   52.75 +            return r;
   52.76 +        }
   52.77 +    }
   52.78 +
   52.79 +    static String convert(Paint paint) {
   52.80 +        //TODO need to support writing out other Paints, such as gradients
   52.81 +        if (paint instanceof Color) {
   52.82 +            return convert((Color) paint);
   52.83 +        } else {
   52.84 +            System.err.println("[WARNING] Unable to encode a paint in the encode(Paint) method: " + paint);
   52.85 +            return "null";
   52.86 +        }
   52.87 +    }
   52.88 +
   52.89 +    /**
   52.90 +     * Given a Color, write out the java code required to create a new Color.
   52.91 +     *
   52.92 +     * @param color The color to convert
   52.93 +     * @return String of the code for the color
   52.94 +     */
   52.95 +    static String convert(Color color) {
   52.96 +        return "new Color(" +
   52.97 +                color.getRed() + ", " +
   52.98 +                color.getGreen() + ", " +
   52.99 +                color.getBlue() + ", " +
  52.100 +                color.getAlpha() + ")";
  52.101 +    }
  52.102 +
  52.103 +    static String convert(Insets i) {
  52.104 +        return "new Insets(" + i.top + ", " + i.left + ", " + i.bottom + ", " + i.right + ")";
  52.105 +    }
  52.106 +
  52.107 +    static String convert(Dimension d) {
  52.108 +        return "new Dimension(" + d.width + ", " + d.height + ")";
  52.109 +    }
  52.110 +
  52.111 +}
    53.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    53.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/generator/PainterGenerator.java	Wed Apr 29 00:27:46 2009 -0700
    53.3 @@ -0,0 +1,758 @@
    53.4 +/*
    53.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    53.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    53.7 + *
    53.8 + * This code is free software; you can redistribute it and/or modify it
    53.9 + * under the terms of the GNU General Public License version 2 only, as
   53.10 + * published by the Free Software Foundation.  Sun designates this
   53.11 + * particular file as subject to the "Classpath" exception as provided
   53.12 + * by Sun in the LICENSE file that accompanied this code.
   53.13 + *
   53.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   53.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   53.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   53.17 + * version 2 for more details (a copy is included in the LICENSE file that
   53.18 + * accompanied this code).
   53.19 + *
   53.20 + * You should have received a copy of the GNU General Public License version
   53.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   53.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   53.23 + *
   53.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   53.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   53.26 + * have any questions.
   53.27 + */
   53.28 +package org.jdesktop.synthdesigner.generator;
   53.29 +
   53.30 +import org.jdesktop.swingx.designer.BezierControlPoint;
   53.31 +import org.jdesktop.swingx.designer.Canvas;
   53.32 +import org.jdesktop.swingx.designer.EllipseShape;
   53.33 +import org.jdesktop.swingx.designer.Layer;
   53.34 +import org.jdesktop.swingx.designer.PaintedShape;
   53.35 +import org.jdesktop.swingx.designer.PathShape;
   53.36 +import org.jdesktop.swingx.designer.RectangleShape;
   53.37 +import org.jdesktop.swingx.designer.SimpleShape;
   53.38 +import org.jdesktop.swingx.designer.TemplateLayer;
   53.39 +import org.jdesktop.swingx.designer.paint.Gradient;
   53.40 +import org.jdesktop.swingx.designer.paint.Matte;
   53.41 +import org.jdesktop.swingx.designer.paint.PaintModel;
   53.42 +import org.jdesktop.swingx.designer.paint.RadialGradient;
   53.43 +import org.jdesktop.swingx.designer.paint.GradientStop;
   53.44 +import org.jdesktop.swingx.designer.paint.AbstractGradient;
   53.45 +import static org.jdesktop.synthdesigner.generator.GeneratorUtils.makePretty;
   53.46 +import static org.jdesktop.synthdesigner.generator.GeneratorUtils.toClassName;
   53.47 +import static org.jdesktop.synthdesigner.generator.GeneratorUtils.toConstantName;
   53.48 +import static org.jdesktop.synthdesigner.generator.TemplateWriter.read;
   53.49 +import static org.jdesktop.synthdesigner.generator.TemplateWriter.writeSrcFile;
   53.50 +import org.jdesktop.synthdesigner.synthmodel.UIIconRegion;
   53.51 +import org.jdesktop.synthdesigner.synthmodel.UIRegion;
   53.52 +import org.jdesktop.synthdesigner.synthmodel.UIState;
   53.53 +
   53.54 +import java.awt.*;
   53.55 +import java.awt.geom.Point2D;
   53.56 +import java.beans.Beans;
   53.57 +import java.io.File;
   53.58 +import java.io.IOException;
   53.59 +import java.lang.reflect.Method;
   53.60 +import java.lang.reflect.InvocationTargetException;
   53.61 +import java.util.ArrayList;
   53.62 +import java.util.HashMap;
   53.63 +import java.util.LinkedHashMap;
   53.64 +import java.util.List;
   53.65 +import java.util.Map;
   53.66 +import javax.swing.JComponent;
   53.67 +import javax.swing.SwingUtilities;
   53.68 +import javax.swing.JList;
   53.69 +import javax.swing.JTable;
   53.70 +import javax.swing.text.JTextComponent;
   53.71 +
   53.72 +/**
   53.73 + * PainterGenerator - Class for generating Painter class java source from a Canvas
   53.74 + *
   53.75 + * Following in the general theory that is used to generate a Painter file.
   53.76 + *
   53.77 + * Each Painter file represents a Region. So there is one painter file per region. In
   53.78 + * skin.laf we support Icon subregions, which are really just hacked versions of the
   53.79 + * parent region.
   53.80 + *
   53.81 + * In order to generate the most compact and efficient bytecode possible for the
   53.82 + * Painters, we actually perform the generation sequence in two steps. The first
   53.83 + * step is the analysis phase, where we walk through the SynthModel for the region
   53.84 + * and discover commonality among the different states in the region. For example,
   53.85 + * do they have common paths? Do they have common colors? Gradients? Is the painting
   53.86 + * code for the different states identical other than for colors?
   53.87 + *
   53.88 + * We gather this information up. On the second pass, we use this data to determine the
   53.89 + * methods that need to be generated, and the class variables that need to be generated.
   53.90 + * We try to keep the actual bytecode count as small as possible so that we may reduce
   53.91 + * the overall size of the look and feel significantly.
   53.92 + *
   53.93 + * @author  Richard Bair
   53.94 + * @author  Jasper Potts
   53.95 + */
   53.96 +public class PainterGenerator {
   53.97 +    private static String painterImplTemplate;
   53.98 +    private static String getPainterImplTemplate() {
   53.99 +        if (painterImplTemplate == null) {
  53.100 +            //load the painter template file into an in-memory string to improve performance
  53.101 +            //when generating a lot of classes
  53.102 +            try {
  53.103 +                painterImplTemplate = read("resources/PainterImpl.template");
  53.104 +            } catch (IOException e) {
  53.105 +                System.err.println("Failed to read template files.");
  53.106 +                throw new RuntimeException(e);
  53.107 +            }
  53.108 +        }
  53.109 +        return painterImplTemplate;
  53.110 +    }
  53.111 +
  53.112 +
  53.113 +    //a handful of counters, incremented whenever the associated object type is encounted.
  53.114 +    //These counters form the basis of the field and method suffixes.
  53.115 +    //These are all 1 based, because I felt like it :-)
  53.116 +    private int colorCounter = 1;
  53.117 +    private int gradientCounter = 1;
  53.118 +    private int radialCounter = 1;
  53.119 +    private int pathCounter = 1;
  53.120 +    private int rectCounter = 1;
  53.121 +    private int roundRectCounter = 1;
  53.122 +    private int ellipseCounter = 1;
  53.123 +
  53.124 +    private int stateTypeCounter = 1;
  53.125 +
  53.126 +    //during the first pass, we will construct these maps
  53.127 +    private Map<String, String> colors = new HashMap<String, String>();
  53.128 +    /**
  53.129 +     * Code=>method name.
  53.130 +     */
  53.131 +    private Map<String, String> methods = new HashMap<String, String>();
  53.132 +
  53.133 +    //these variables hold the generated code
  53.134 +    /**
  53.135 +     * The source code in this variable will be used to define the various state types
  53.136 +     */
  53.137 +    private StringBuilder stateTypeCode = new StringBuilder();
  53.138 +    /**
  53.139 +     * The source code in this variable will be used to define the switch statement for painting
  53.140 +     */
  53.141 +    private StringBuilder switchCode = new StringBuilder();
  53.142 +    /**
  53.143 +     * The source code in this variable will be used to define the methods for painting each state
  53.144 +     */
  53.145 +    private StringBuilder paintingCode = new StringBuilder();
  53.146 +    /**
  53.147 +     * The source code in this variable will be used to add getExtendedCacheKeys
  53.148 +     * implementation if needed.
  53.149 +     */
  53.150 +    private StringBuilder getExtendedCacheKeysCode = new StringBuilder();
  53.151 +    /**
  53.152 +     * The source code in this variable will be used to define the methods for decoding gradients
  53.153 +     * and shapes.
  53.154 +     */
  53.155 +    private StringBuilder gradientsCode = new StringBuilder();
  53.156 +    private StringBuilder colorCode = new StringBuilder();
  53.157 +    private StringBuilder shapesCode = new StringBuilder();
  53.158 +    /**
  53.159 +     * Map of component colors keyed by state constant name
  53.160 +     */
  53.161 +    private Map<String, List<ComponentColor>> componentColorsMap =
  53.162 +            new LinkedHashMap<String, List<ComponentColor>>();
  53.163 +    /**
  53.164 +     * For the current state the list of all component colors used by this
  53.165 +     * painter, the index in this list is also the index in the runtime array
  53.166 +     * of defaults and keys.
  53.167 +     */
  53.168 +    private List<ComponentColor> componentColors = null;
  53.169 +
  53.170 +    PainterGenerator(UIRegion r) {
  53.171 +        generate(r);
  53.172 +    }
  53.173 +
  53.174 +    private void generate(UIRegion r) {
  53.175 +        for (UIState state : r.getBackgroundStates()) {
  53.176 +            System.out.println("------>" + state.getName());
  53.177 +
  53.178 +            Canvas canvas = state.getCanvas();
  53.179 +            String type = r instanceof UIIconRegion ? ((UIIconRegion)r).getKey() : "Background";
  53.180 +            generate(state, canvas, type);
  53.181 +        }
  53.182 +        for (UIState state : r.getForegroundStates()) {
  53.183 +            Canvas canvas = state.getCanvas();
  53.184 +            generate(state, canvas, "Foreground");
  53.185 +        }
  53.186 +        for (UIState state : r.getBorderStates()) {
  53.187 +            Canvas canvas = state.getCanvas();
  53.188 +            generate(state, canvas, "Border");
  53.189 +        }
  53.190 +        //now check for any uiIconRegions, since these are collapsed together.
  53.191 +        for (UIRegion sub : r.getSubRegions()) {
  53.192 +            if (sub instanceof UIIconRegion) {
  53.193 +                generate(sub);
  53.194 +            }
  53.195 +        }
  53.196 +        //generate all the code for component colors
  53.197 +        if (!componentColorsMap.isEmpty()) {
  53.198 +            getExtendedCacheKeysCode
  53.199 +                    .append("    protected Object[] getExtendedCacheKeys(JComponent c) {\n")
  53.200 +                    .append("        Object[] extendedCacheKeys = null;\n")
  53.201 +                    .append("        switch(state) {\n");
  53.202 +            for (Map.Entry<String, List<ComponentColor>> entry : componentColorsMap.entrySet()) {
  53.203 +                getExtendedCacheKeysCode
  53.204 +                    .append("            case ")
  53.205 +                    .append(entry.getKey()).append(":\n")
  53.206 +                    .append("                extendedCacheKeys = new Object[] {\n");
  53.207 +                for (int i=0; i<entry.getValue().size(); i++) {
  53.208 +                    ComponentColor cc = entry.getValue().get(i);
  53.209 +                    getExtendedCacheKeysCode
  53.210 +                    .append("                     getComponentColor(c, \"")
  53.211 +                    .append(cc.propertyName).append("\", ")
  53.212 +                    .append(cc.defaultColorVariableName).append(", ")
  53.213 +                    .append(cc.saturationOffset).append("f, ")
  53.214 +                    .append(cc.brightnessOffset).append("f, ")
  53.215 +                    .append(cc.alphaOffset);
  53.216 +                    if (i + 1 < entry.getValue().size()) {
  53.217 +                        getExtendedCacheKeysCode.append("),\n");
  53.218 +                    } else {
  53.219 +                        getExtendedCacheKeysCode.append(")");
  53.220 +                    }
  53.221 +                }
  53.222 +                getExtendedCacheKeysCode.append("};\n")
  53.223 +                    .append("                break;\n");
  53.224 +            }
  53.225 +            getExtendedCacheKeysCode
  53.226 +                    .append("        }\n")
  53.227 +                    .append("        return extendedCacheKeys;\n")
  53.228 +                    .append("    }");
  53.229 +        }
  53.230 +    }
  53.231 +
  53.232 +    //type is background, foreground, border, upArrowIcon, etc.
  53.233 +    private void generate(UIState state, Canvas canvas, String type) {
  53.234 +        String states = UIState.keysToString(state.getStateKeys());
  53.235 +        String stateType = toConstantName(type + "_" + states);
  53.236 +        String paintMethodName = "paint" + type + toClassName(states);
  53.237 +        //create new array for component colors for this state
  53.238 +        componentColors = new ArrayList<ComponentColor>();
  53.239 +
  53.240 +        stateTypeCode.append("    static final int ").append(stateType).append(" = ").append(stateTypeCounter++).append(";\n");
  53.241 +
  53.242 +        if (canvas.isBlank()) {
  53.243 +            return;
  53.244 +        }
  53.245 +
  53.246 +        switchCode.append("            case ").append(stateType).append(": ").append(paintMethodName).append("(g); break;\n");
  53.247 +        paintingCode.append("    private void ").append(paintMethodName).append("(Graphics2D g) {\n");
  53.248 +
  53.249 +        //start by setting up common info needed to encode the control points
  53.250 +        Insets in = canvas.getStretchingInsets();
  53.251 +        float a = in.left;
  53.252 +        float b = canvas.getSize().width - in.right;
  53.253 +        float c = in.top;
  53.254 +        float d = canvas.getSize().height - in.bottom;
  53.255 +        float width = canvas.getSize().width;
  53.256 +        float height = canvas.getSize().height;
  53.257 +        float cw = b - a;
  53.258 +        float ch = d - c;
  53.259 +
  53.260 +        Layer[] layers = canvas.getLayers().toArray(new Layer[0]);
  53.261 +        for (int index=layers.length-1; index >= 0; index--) {
  53.262 +            Layer layer = layers[index];
  53.263 +            if (layer instanceof TemplateLayer) {
  53.264 +                continue;
  53.265 +            }
  53.266 +            //shapes must be painted in reverse order
  53.267 +            List<SimpleShape> shapes = layer.getShapes();
  53.268 +            for (int i=shapes.size()-1; i>=0; i--) {
  53.269 +                SimpleShape s = shapes.get(i);
  53.270 +                if (s instanceof PaintedShape) {
  53.271 +                    PaintedShape shape = (PaintedShape)s;
  53.272 +                    PaintModel paint = shape.getPaintModel();
  53.273 +
  53.274 +                    /*
  53.275 +                        We attempt to write the minimal number of bytecodes as possible when
  53.276 +                        generating code. Due to the inherit complexities in determining what
  53.277 +                        is extraneous, we use the following system:
  53.278 +
  53.279 +                        We first generate the code for the shape. Then, we check to see if
  53.280 +                        this shape has already been generated. If so, then we defer to an
  53.281 +                        existing method. If not, then we will create a new methods, stick
  53.282 +                        the code in it, and refer to that method.
  53.283 +                    */
  53.284 +
  53.285 +                    String shapeMethodName = null; // will contain the name of the method which creates the shape
  53.286 +                    String shapeVariable = null; // will be one of rect, roundRect, ellipse, or path.
  53.287 +                    String shapeMethodBody = null;
  53.288 +
  53.289 +                    if (shape instanceof RectangleShape) {
  53.290 +                        RectangleShape rshape = (RectangleShape) shape;
  53.291 +                        float x1 = encode((float)rshape.getX1(), a, b, width);
  53.292 +                        float y1 = encode((float)rshape.getY1(), c, d, height);
  53.293 +                        float x2 = encode((float)rshape.getX2(), a, b, width);
  53.294 +                        float y2 = encode((float)rshape.getY2(), c, d, height);
  53.295 +                        if (rshape.isRounded()) {
  53.296 +                            //it is a rounded rectangle
  53.297 +                            float rounding = (float)rshape.getRounding();
  53.298 +
  53.299 +                            shapeMethodBody =
  53.300 +                                    "        roundRect.setRoundRect(" +
  53.301 +                                    writeDecodeX(x1) + ", //x\n" +
  53.302 +                                    "                               " + writeDecodeY(y1) + ", //y\n" +
  53.303 +                                    "                               " + writeDecodeX(x2) + " - " + writeDecodeX(x1) + ", //width\n" +
  53.304 +                                    "                               " + writeDecodeY(y2) + " - " + writeDecodeY(y1) + ", //height\n" +
  53.305 +                                    "                               " + rounding + "f, " + rounding + "f); //rounding";
  53.306 +                            shapeVariable = "roundRect";
  53.307 +                        } else {
  53.308 +                            shapeMethodBody =
  53.309 +                                    "            rect.setRect(" +
  53.310 +                                    writeDecodeX(x1) + ", //x\n" +
  53.311 +                                    "                         " + writeDecodeY(y1) + ", //y\n" +
  53.312 +                                    "                         " + writeDecodeX(x2) + " - " + writeDecodeX(x1) + ", //width\n" +
  53.313 +                                    "                         " + writeDecodeY(y2) + " - " + writeDecodeY(y1) + "); //height";
  53.314 +                            shapeVariable = "rect";
  53.315 +                        }
  53.316 +                    } else if (shape instanceof EllipseShape) {
  53.317 +                        EllipseShape eshape = (EllipseShape) shape;
  53.318 +                        float x1 = encode((float)eshape.getX1(), a, b, width);
  53.319 +                        float y1 = encode((float)eshape.getY1(), c, d, height);
  53.320 +                        float x2 = encode((float)eshape.getX2(), a, b, width);
  53.321 +                        float y2 = encode((float)eshape.getY2(), c, d, height);
  53.322 +                        shapeMethodBody =
  53.323 +                                "        ellipse.setFrame(" +
  53.324 +                                writeDecodeX(x1) + ", //x\n" +
  53.325 +                                "                         " + writeDecodeY(y1) + ", //y\n" +
  53.326 +                                "                         " + writeDecodeX(x2) + " - " + writeDecodeX(x1) + ", //width\n" +
  53.327 +                                "                         " + writeDecodeY(y2) + " - " + writeDecodeY(y1) + "); //height";
  53.328 +                        shapeVariable = "ellipse";
  53.329 +                    } else if (shape instanceof PathShape) {
  53.330 +                        PathShape pshape = (PathShape) shape;
  53.331 +                        List<BezierControlPoint> controlPoints = pshape.getBezierControlPoints();
  53.332 +                        BezierControlPoint first, last;
  53.333 +                        first = last = controlPoints.get(0);
  53.334 +                        StringBuilder buffer = new StringBuilder();
  53.335 +                        buffer.append("        path.reset();\n");
  53.336 +                        buffer.append("        path.moveTo(" + writeDecodeX(encode((float)first.getX(), a, b, width)) + ", " + writeDecodeY(encode((float)first.getY(), c, d, height)) + ");\n");
  53.337 +                        for (int j=1; j<controlPoints.size(); j++) {
  53.338 +                            BezierControlPoint cp = controlPoints.get(j);
  53.339 +                            if (last.getCp2().isSharp() && cp.getCp1().isSharp()) {
  53.340 +                                float x = encode((float)cp.getX(), a, b, width);
  53.341 +                                float y = encode((float)cp.getY(), c, d, height);
  53.342 +                                buffer.append("        path.lineTo(" + writeDecodeX(x) + ", " + writeDecodeY(y) + ");\n");
  53.343 +                            } else {
  53.344 +                                float x1 = encode((float)last.getX(), a, b, width);
  53.345 +                                float y1 = encode((float)last.getY(), c, d, height);
  53.346 +                                float x2 = encode((float)cp.getX(), a, b, width);
  53.347 +                                float y2 = encode((float)cp.getY(), c, d, height);
  53.348 +                                buffer.append(
  53.349 +                                        "        path.curveTo(" + writeDecodeBezierX(x1, last.getX(), last.getCp2X()) + ", "
  53.350 +                                                                + writeDecodeBezierY(y1, last.getY(), last.getCp2Y()) + ", "
  53.351 +                                                                + writeDecodeBezierX(x2, cp.getX(), cp.getCp1X()) + ", "
  53.352 +                                                                + writeDecodeBezierY(y2, cp.getY(), cp.getCp1Y()) + ", "
  53.353 +                                                                + writeDecodeX(x2) + ", " + writeDecodeY(y2) + ");\n");
  53.354 +                            }
  53.355 +                            last = cp;
  53.356 +                        }
  53.357 +                        if (last.getCp2().isSharp() && first.getCp1().isSharp()) {
  53.358 +                            float x = encode((float)first.getX(), a, b, width);
  53.359 +                            float y = encode((float)first.getY(), c, d, height);
  53.360 +                            buffer.append("        path.lineTo(" + writeDecodeX(x) + ", " + writeDecodeY(y) + ");\n");
  53.361 +                        } else {
  53.362 +                            float x1 = encode((float)last.getX(), a, b, width);
  53.363 +                            float y1 = encode((float)last.getY(), c, d, height);
  53.364 +                            float x2 = encode((float)first.getX(), a, b, width);
  53.365 +                            float y2 = encode((float)first.getY(), c, d, height);
  53.366 +                            buffer.append(
  53.367 +                                    "        path.curveTo(" + writeDecodeBezierX(x1, last.getX(), last.getCp2X()) + ", "
  53.368 +                                                            + writeDecodeBezierY(y1, last.getY(), last.getCp2Y()) + ", "
  53.369 +                                                            + writeDecodeBezierX(x2, first.getX(), first.getCp1X()) + ", "
  53.370 +                                                            + writeDecodeBezierY(y2, first.getY(), first.getCp1Y()) + ", "
  53.371 +                                                            + writeDecodeX(x2) + ", " + writeDecodeY(y2) + ");\n");
  53.372 +                        }
  53.373 +                        buffer.append("        path.closePath();");
  53.374 +                        shapeMethodBody = buffer.toString();
  53.375 +                        shapeVariable = "path";
  53.376 +                    } else {
  53.377 +                        throw new RuntimeException("Cannot happen unless a new Shape has been defined");
  53.378 +                    }
  53.379 +
  53.380 +                    //now that we have the shape defined in shapeMethodBody, and a shapeVariable name,
  53.381 +                    //look to see if such a body has been previously defined.
  53.382 +                    shapeMethodName = methods.get(shapeMethodBody);
  53.383 +                    String returnType = null;
  53.384 +                    if (shapeMethodName == null) {
  53.385 +                        if ("rect".equals(shapeVariable)) {
  53.386 +                            shapeMethodName = "decodeRect" + rectCounter++;
  53.387 +                            returnType = "Rectangle2D";
  53.388 +                        } else if ("roundRect".equals(shapeVariable)) {
  53.389 +                            shapeMethodName = "decodeRoundRect" + roundRectCounter++;
  53.390 +                            returnType = "RoundRectangle2D";
  53.391 +                        } else if ("ellipse".equals(shapeVariable)) {
  53.392 +                            shapeMethodName = "decodeEllipse" + ellipseCounter++;
  53.393 +                            returnType = "Ellipse2D";
  53.394 +                        } else {
  53.395 +                            shapeMethodName = "decodePath" + pathCounter++;
  53.396 +                            returnType = "Path2D";
  53.397 +                        }
  53.398 +                        methods.put(shapeMethodBody, shapeMethodName);
  53.399 +
  53.400 +                        //since the method wasn't previously defined, time to define it
  53.401 +                        shapesCode.append("    private ").append(returnType).append(" ").append(shapeMethodName).append("() {\n");
  53.402 +                        shapesCode.append(shapeMethodBody);
  53.403 +                        shapesCode.append("\n");
  53.404 +                        shapesCode.append("        return " + shapeVariable + ";\n");
  53.405 +                        shapesCode.append("    }\n\n");
  53.406 +                    }
  53.407 +
  53.408 +                    //now that the method has been defined, I can go on and decode the
  53.409 +                    //paint. After the paint is decoded, I can write the g.fill() method call,
  53.410 +                    //using the result of the shapeMethodName. Yay!
  53.411 +
  53.412 +//            if (shapeVariable != null) {
  53.413 +                //first, calculate the bounds of the shape being painted and store in variables
  53.414 +                    paintingCode.append("        ").append(shapeVariable).append(" = ").append(shapeMethodName).append("();\n");
  53.415 +
  53.416 +                    if (paint instanceof Matte) {
  53.417 +                        String colorVariable = encodeMatte((Matte)paint);
  53.418 +                        paintingCode.append("        g.setPaint(").append(colorVariable).append(");\n");
  53.419 +                    } else if (paint instanceof Gradient) {
  53.420 +                        String gradientMethodName = encodeGradient(shape, (Gradient)paint);
  53.421 +                        paintingCode.append("        g.setPaint(").append(gradientMethodName).append("(").append(shapeVariable).append("));\n");
  53.422 +                    } else if (paint instanceof RadialGradient) {
  53.423 +                        String radialMethodName = encodeRadial(shape, (RadialGradient)paint);
  53.424 +                        paintingCode.append("        g.setPaint(").append(radialMethodName).append("(").append(shapeVariable).append("));\n");
  53.425 +                    }
  53.426 +                    paintingCode.append("        g.fill(").append(shapeVariable).append(");\n");
  53.427 +                }
  53.428 +            }
  53.429 +        }
  53.430 +
  53.431 +        paintingCode.append("\n    }\n\n");
  53.432 +
  53.433 +        //collect component colors
  53.434 +        if (!componentColors.isEmpty()) {
  53.435 +            componentColorsMap.put(stateType, componentColors);
  53.436 +            componentColors = null;
  53.437 +        }
  53.438 +    }
  53.439 +
  53.440 +    private float encode(float x, float a, float b, float width) {
  53.441 +        return ObjectCodeConvertors.encode(x, a, b, width);
  53.442 +    }
  53.443 +
  53.444 +    private String writeDecodeX(float encodedX) {
  53.445 +        return "decodeX(" + encodedX + "f)";
  53.446 +    }
  53.447 +
  53.448 +    private String writeDecodeY(float encodedY) {
  53.449 +        return "decodeY(" + encodedY + "f)";
  53.450 +    }
  53.451 +
  53.452 +    /**
  53.453 +     *
  53.454 +     * @param ex encoded x value
  53.455 +     * @param x unencoded x value
  53.456 +     * @param cpx unencoded cpx value
  53.457 +     * @return
  53.458 +     */
  53.459 +    private static String writeDecodeBezierX(double ex, double x, double cpx) {
  53.460 +        return "decodeAnchorX(" + ex + "f, " + (cpx - x) + "f)";
  53.461 +    }
  53.462 +
  53.463 +    /**
  53.464 +     *
  53.465 +     * @param ey encoded y value
  53.466 +     * @param y unencoded y value
  53.467 +     * @param cpy unencoded cpy value
  53.468 +     * @return
  53.469 +     */
  53.470 +    private static String writeDecodeBezierY(double ey, double y, double cpy) {
  53.471 +        return "decodeAnchorY(" + ey + "f, " + (cpy - y) + "f)";
  53.472 +    }
  53.473 +
  53.474 +    private String encodeMatte(Matte m) {
  53.475 +        String declaration = null;
  53.476 +        if (m.isAbsolute()) {
  53.477 +            Color c = m.getColor();
  53.478 +            declaration = ObjectCodeConvertors.convert(c);
  53.479 +        } else {
  53.480 +            declaration = "decodeColor(\"" + m.getUiDefaultParentName() +
  53.481 +                          "\", " + m.getHueOffset() + "f, " +
  53.482 +                          m.getSaturationOffset() + "f, " +
  53.483 +                          m.getBrightnessOffset() + "f, " +
  53.484 +                          m.getAlphaOffset() + ")";
  53.485 +        }
  53.486 +
  53.487 +        String variableName = colors.get(declaration);
  53.488 +        if (variableName == null) {
  53.489 +            variableName = "color" + colorCounter++;
  53.490 +            colors.put(declaration, variableName);
  53.491 +            colorCode.append("    private Color ").append(variableName).append(" = ");
  53.492 +            colorCode.append(declaration).append(";\n");
  53.493 +        }
  53.494 +        // handle component colors
  53.495 +        if (m.getComponentPropertyName() != null) {
  53.496 +            ComponentColor cc = new ComponentColor(m.getComponentPropertyName(),
  53.497 +                    variableName, m.getSaturationOffset(),
  53.498 +                    m.getBrightnessOffset(), m.getAlphaOffset());
  53.499 +            int index = componentColors.indexOf(cc);
  53.500 +            if (index == -1) {
  53.501 +                index = componentColors.size();
  53.502 +                componentColors.add(cc);
  53.503 +            }
  53.504 +            return "(Color)componentColors[" + index + "]";
  53.505 +        } else {
  53.506 +            return variableName;
  53.507 +        }
  53.508 +    }
  53.509 +
  53.510 +    private String encodeColor(Color c) {
  53.511 +        String declaration = ObjectCodeConvertors.convert(c);
  53.512 +        String variableName = colors.get(declaration);
  53.513 +        if (variableName == null) {
  53.514 +            variableName = "color" + colorCounter++;
  53.515 +            colors.put(declaration, variableName);
  53.516 +            colorCode.append("    private Color ").append(variableName).append(" = ");
  53.517 +            colorCode.append(declaration).append(";\n");
  53.518 +        }
  53.519 +
  53.520 +        return variableName;
  53.521 +    }
  53.522 +
  53.523 +    private String encodeGradient(PaintedShape ps, Gradient g) {
  53.524 +        StringBuilder b = new StringBuilder();
  53.525 +        float x1 = (float)ps.getPaintX1();
  53.526 +        float y1 = (float)ps.getPaintY1();
  53.527 +        float x2 = (float)ps.getPaintX2();
  53.528 +        float y2 = (float)ps.getPaintY2();
  53.529 +        b.append("        return decodeGradient((");
  53.530 +        b.append(x1);
  53.531 +        b.append("f * w) + x, (");
  53.532 +        b.append(y1);
  53.533 +        b.append("f * h) + y, (");
  53.534 +        b.append(x2);
  53.535 +        b.append("f * w) + x, (");
  53.536 +        b.append(y2);
  53.537 +        b.append("f * h) + y,\n");
  53.538 +        encodeGradientColorsAndFractions(g,b);
  53.539 +        b.append(");");
  53.540 +
  53.541 +        String methodBody = b.toString();
  53.542 +        String methodName = methods.get(methodBody);
  53.543 +        if (methodName == null) {
  53.544 +            methodName = "decodeGradient" + gradientCounter++;
  53.545 +            gradientsCode.append("    private Paint ").append(methodName).append("(Shape s) {\n");
  53.546 +            gradientsCode.append("        Rectangle2D bounds = s.getBounds2D();\n");
  53.547 +            gradientsCode.append("        float x = (float)bounds.getX();\n");
  53.548 +            gradientsCode.append("        float y = (float)bounds.getY();\n");
  53.549 +            gradientsCode.append("        float w = (float)bounds.getWidth();\n");
  53.550 +            gradientsCode.append("        float h = (float)bounds.getHeight();\n");
  53.551 +            gradientsCode.append(methodBody);
  53.552 +            gradientsCode.append("\n    }\n\n");
  53.553 +            methods.put(methodBody, methodName);
  53.554 +        }
  53.555 +        return methodName;
  53.556 +    }
  53.557 +
  53.558 +    /**
  53.559 +     * Takes a abstract gradient and creates the code for the fractions float
  53.560 +     * array and the colors array that can be used in the constructors of linear
  53.561 +     * and radial gradients.
  53.562 +     *
  53.563 +     * @param g The abstract gradient to get stops from
  53.564 +     * @param b Append code string of the form "new float[]{...},
  53.565 +     *          new Color[]{...}" to this StringBuilder
  53.566 +     */
  53.567 +    private void encodeGradientColorsAndFractions(AbstractGradient g,
  53.568 +                                                    StringBuilder b) {
  53.569 +        List<GradientStop> stops = g.getStops();
  53.570 +        // there are stops.size() number of main stops. Between each is a
  53.571 +        // fractional stop. Thus, there are: stops.size() + stops.size() - 1
  53.572 +        // number of fractions and colors.
  53.573 +        float[] fractions = new float[stops.size() + stops.size() - 1];
  53.574 +        String[] colors = new String[fractions.length];
  53.575 +        //for each stop, create the stop and it's associated fraction
  53.576 +        int index = 0; // the index into fractions and colors
  53.577 +        for (int i = 0; i < stops.size(); i++) {
  53.578 +            GradientStop s = stops.get(i);
  53.579 +            //copy over the stop's data
  53.580 +            colors[index] = encodeMatte(s.getColor());
  53.581 +            fractions[index] = s.getPosition();
  53.582 +
  53.583 +            //If this isn't the last stop, then add in the fraction
  53.584 +            if (index < fractions.length - 1) {
  53.585 +                float f1 = s.getPosition();
  53.586 +                float f2 = stops.get(i + 1).getPosition();
  53.587 +                index++;
  53.588 +                fractions[index] = f1 + (f2 - f1) * s.getMidpoint();
  53.589 +                colors[index] = "decodeColor("+
  53.590 +                        colors[index - 1]+","+
  53.591 +                        encodeMatte(stops.get(i + 1).getColor())+",0.5f)";
  53.592 +            }
  53.593 +            index++;
  53.594 +        }
  53.595 +        // Check boundry conditions
  53.596 +        for (int i = 1; i < fractions.length; i++) {
  53.597 +            //to avoid an error with LinearGradientPaint where two fractions
  53.598 +            //are identical, bump up the fraction value by a miniscule amount
  53.599 +            //if it is identical to the previous one
  53.600 +            //NOTE: The <= is critical because the previous value may already
  53.601 +            //have been bumped up
  53.602 +            if (fractions[i] <= fractions[i - 1]) {
  53.603 +                fractions[i] = fractions[i - 1] + .000001f;
  53.604 +            }
  53.605 +        }
  53.606 +        //another boundary condition where multiple stops are all at the end. The
  53.607 +        //previous loop bumped all but one of these past 1.0, which is bad.
  53.608 +        //so remove any fractions (and their colors!) that are beyond 1.0
  53.609 +        int outOfBoundsIndex = -1;
  53.610 +        for (int i = 0; i < fractions.length; i++) {
  53.611 +            if (fractions[i] > 1) {
  53.612 +                outOfBoundsIndex = i;
  53.613 +                break;
  53.614 +            }
  53.615 +        }
  53.616 +        if (outOfBoundsIndex >= 0) {
  53.617 +            float[] f = fractions;
  53.618 +            String[] c = colors;
  53.619 +            fractions = new float[outOfBoundsIndex];
  53.620 +            colors = new String[outOfBoundsIndex];
  53.621 +            System.arraycopy(f, 0, fractions, 0, outOfBoundsIndex);
  53.622 +            System.arraycopy(c, 0, colors, 0, outOfBoundsIndex);
  53.623 +        }
  53.624 +        // build string
  53.625 +        b.append("                new float[] { ");
  53.626 +        for (int i = 0; i < fractions.length; i++) {
  53.627 +            if (i>0)b.append(',');
  53.628 +            b.append(fractions[i]);
  53.629 +            b.append('f');
  53.630 +        }
  53.631 +        b.append(" },\n                new Color[] { ");
  53.632 +        for (int i = 0; i < colors.length; i++) {
  53.633 +            if (i>0) b.append(",\n                            ");
  53.634 +            b.append(colors[i]);
  53.635 +        }
  53.636 +        b.append("}");
  53.637 +    }
  53.638 +
  53.639 +    private String encodeRadial(PaintedShape ps, RadialGradient g) {
  53.640 +        float centerX1 = (float)ps.getPaintX1();
  53.641 +        float centerY1 = (float)ps.getPaintY1();
  53.642 +        float x2 = (float)ps.getPaintX2();
  53.643 +        float y2 = (float)ps.getPaintY2();
  53.644 +        float radius = (float)Point2D.distance(centerX1, centerY1, x2, y2);
  53.645 +        StringBuilder b = new StringBuilder();
  53.646 +
  53.647 +        b.append("        return decodeRadialGradient((");
  53.648 +        b.append(centerX1);
  53.649 +        b.append("f * w) + x, (");
  53.650 +        b.append(centerY1);
  53.651 +        b.append("f * h) + y, ");
  53.652 +        b.append(radius);
  53.653 +        b.append("f,\n");
  53.654 +        encodeGradientColorsAndFractions(g,b);
  53.655 +        b.append(");");
  53.656 +
  53.657 +        String methodBody = b.toString();
  53.658 +        String methodName = methods.get(methodBody);
  53.659 +        if (methodName == null) {
  53.660 +            methodName = "decodeRadial" + radialCounter++;
  53.661 +            gradientsCode.append("    private Paint ").append(methodName).append("(Shape s) {\n");
  53.662 +            gradientsCode.append("        Rectangle2D bounds = s.getBounds2D();\n");
  53.663 +            gradientsCode.append("        float x = (float)bounds.getX();\n");
  53.664 +            gradientsCode.append("        float y = (float)bounds.getY();\n");
  53.665 +            gradientsCode.append("        float w = (float)bounds.getWidth();\n");
  53.666 +            gradientsCode.append("        float h = (float)bounds.getHeight();\n");
  53.667 +            gradientsCode.append(methodBody);
  53.668 +            gradientsCode.append("\n    }\n\n");
  53.669 +            methods.put(methodBody, methodName);
  53.670 +        }
  53.671 +        return methodName;
  53.672 +    }
  53.673 +
  53.674 +    //note that this method is not thread-safe. In fact, none of this class is.
  53.675 +    static void writePainter(UIRegion r, Map<String, String> variables, File painterPackageRoot, String prefix) throws IOException {
  53.676 +        //Need only write out the stuff for this region, don't need to worry about subregions
  53.677 +        //since this method will be called for each of those (and they go in their own file, anyway).
  53.678 +        //The only subregion that we compound into this is the one for icons.
  53.679 +
  53.680 +        String painterName = makePretty(prefix) + "Painter";
  53.681 +        PainterGenerator gen = new PainterGenerator(r);
  53.682 +        System.out.println("Generating source file: " + painterName + ".java");
  53.683 +        System.out.println(gen.stateTypeCode.toString());
  53.684 +        variables.put("PAINTER_NAME", painterName);
  53.685 +        variables.put("STATIC_DECL", gen.stateTypeCode.toString());
  53.686 +        variables.put("COLORS_DECL", gen.colorCode.toString());
  53.687 +        variables.put("DO_PAINT_SWITCH_BODY", gen.switchCode.toString());
  53.688 +        variables.put("PAINTING_DECL", gen.paintingCode.toString());
  53.689 +        variables.put("GET_EXTENDED_CACHE_KEYS", gen.getExtendedCacheKeysCode.toString());
  53.690 +        variables.put("SHAPES_DECL", gen.shapesCode.toString());
  53.691 +        variables.put("GRADIENTS_DECL", gen.gradientsCode.toString());
  53.692 +
  53.693 +        writeSrcFile(getPainterImplTemplate(), variables, new File(painterPackageRoot, painterName + ".java"));
  53.694 +
  53.695 +        variables.remove("PAINTER_NAME");
  53.696 +        variables.remove("STATIC_DECL");
  53.697 +        variables.remove("COLORS_DECL");
  53.698 +        variables.remove("DO_PAINT_SWITCH_BODY");
  53.699 +        variables.remove("PAINTING_DECL");
  53.700 +        variables.remove("SHAPES_DECL");
  53.701 +        variables.remove("GRADIENTS_DECL");
  53.702 +    }
  53.703 +
  53.704 +    /**
  53.705 +     * Represents the usage of a color from a component within a painter. That
  53.706 +     * is, a painter can use colors from the component when it paints. This
  53.707 +     * class represents the usage of such a color, containing a reference to
  53.708 +     * the name of the property that contains the color, and the various
  53.709 +     * derivation offsets to apply to that color.
  53.710 +     */
  53.711 +    private static class ComponentColor {
  53.712 +        public String propertyName;
  53.713 +        public String defaultColorVariableName;
  53.714 +        private float saturationOffset = 0, brightnessOffset = 0;
  53.715 +        private int alphaOffset = 0;
  53.716 +
  53.717 +        private ComponentColor(String propertyName,
  53.718 +                               String defaultColorVariableName,
  53.719 +                               float saturationOffset,
  53.720 +                               float brightnessOffset,
  53.721 +                               int alphaOffset) {
  53.722 +            this.propertyName = propertyName;
  53.723 +            this.defaultColorVariableName = defaultColorVariableName;
  53.724 +            this.saturationOffset = saturationOffset;
  53.725 +            this.brightnessOffset = brightnessOffset;
  53.726 +            this.alphaOffset = alphaOffset;
  53.727 +        }
  53.728 +
  53.729 +        @Override
  53.730 +        public boolean equals(Object o) {
  53.731 +            if (this == o) return true;
  53.732 +            if (o == null || getClass() != o.getClass()) return false;
  53.733 +
  53.734 +            ComponentColor c = (ComponentColor)o;
  53.735 +            if (alphaOffset != c.alphaOffset) return false;
  53.736 +            if (Float.compare(saturationOffset, c.saturationOffset) != 0)
  53.737 +                return false;
  53.738 +            if (Float.compare(brightnessOffset, c.brightnessOffset) != 0)
  53.739 +                return false;
  53.740 +            if (defaultColorVariableName != null ?
  53.741 +                    !defaultColorVariableName.equals(c.defaultColorVariableName) :
  53.742 +                    c.defaultColorVariableName != null) return false;
  53.743 +            if (propertyName != null ? !propertyName.equals(c.propertyName) :
  53.744 +                    c.propertyName != null) return false;
  53.745 +            return true;
  53.746 +        }
  53.747 +
  53.748 +        @Override
  53.749 +        public int hashCode() {
  53.750 +            int hash = 5;
  53.751 +            hash = 61 * hash + (this.propertyName != null ?
  53.752 +                this.propertyName.hashCode() : 0);
  53.753 +            hash = 61 * hash + (this.defaultColorVariableName != null ?
  53.754 +                this.defaultColorVariableName.hashCode() : 0);
  53.755 +            hash = 61 * hash + Float.floatToIntBits(this.saturationOffset);
  53.756 +            hash = 61 * hash + Float.floatToIntBits(this.brightnessOffset);
  53.757 +            hash = 61 * hash + this.alphaOffset;
  53.758 +            return hash;
  53.759 +        }
  53.760 +    }
  53.761 +}
    54.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    54.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/generator/TemplateWriter.java	Wed Apr 29 00:27:46 2009 -0700
    54.3 @@ -0,0 +1,114 @@
    54.4 +/*
    54.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    54.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    54.7 + *
    54.8 + * This code is free software; you can redistribute it and/or modify it
    54.9 + * under the terms of the GNU General Public License version 2 only, as
   54.10 + * published by the Free Software Foundation.  Sun designates this
   54.11 + * particular file as subject to the "Classpath" exception as provided
   54.12 + * by Sun in the LICENSE file that accompanied this code.
   54.13 + *
   54.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   54.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   54.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   54.17 + * version 2 for more details (a copy is included in the LICENSE file that
   54.18 + * accompanied this code).
   54.19 + *
   54.20 + * You should have received a copy of the GNU General Public License version
   54.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   54.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   54.23 + *
   54.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   54.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   54.26 + * have any questions.
   54.27 + */
   54.28 +package org.jdesktop.synthdesigner.generator;
   54.29 +
   54.30 +import java.io.BufferedReader;
   54.31 +import java.io.File;
   54.32 +import java.io.FileWriter;
   54.33 +import java.io.IOException;
   54.34 +import java.io.InputStream;
   54.35 +import java.io.PrintWriter;
   54.36 +import java.io.StringReader;
   54.37 +import java.util.Map;
   54.38 +
   54.39 +/**
   54.40 + * TemplateWriter - Class for writing Java Source files using a src template and variable subsitution
   54.41 + *
   54.42 + * @author  Richard Bair
   54.43 + * @author  Jasper Potts
   54.44 + */
   54.45 +public class TemplateWriter {
   54.46 +
   54.47 +    /**
   54.48 +     * Write a Java source file by taking a template file and applying variable substitution and writing to the output
   54.49 +     * file.
   54.50 +     *
   54.51 +     * @param template  The template to use
   54.52 +     * @param variables Map of the variable names and values to substitute in the template
   54.53 +     * @param output    The file to write to
   54.54 +     * @throws IOException If there was a problem writing the Java source file
   54.55 +     */
   54.56 +    static void writeSrcFile(String template, Map<String, String> variables, File output) throws IOException {
   54.57 +        TemplateReader in = new TemplateReader(variables, template);
   54.58 +        PrintWriter out =
   54.59 +                new PrintWriter(new FileWriter(output));
   54.60 +
   54.61 +        String line = in.readLine();
   54.62 +        while (line != null) {
   54.63 +            out.println(line);
   54.64 +            line = in.readLine();
   54.65 +        }
   54.66 +
   54.67 +        out.close();
   54.68 +    }
   54.69 +
   54.70 +    /**
   54.71 +     * Read a template file into a string
   54.72 +     *
   54.73 +     * @param name The template file path relative to Generator class
   54.74 +     * @return The contents of the template file as string
   54.75 +     * @throws IOException If there was a problem reading the template file
   54.76 +     */
   54.77 +    static String read(String name) throws IOException {
   54.78 +        InputStream in = Generator.class.getResourceAsStream(name);
   54.79 +        if (in==null) throw new IOException("Could not find template ["+name+
   54.80 +                "] relative to class ["+Generator.class.getName()+"]");
   54.81 +        byte[] data = new byte[4096];
   54.82 +        int length = -1;
   54.83 +        StringBuilder buffer = new StringBuilder();
   54.84 +        while ((length = in.read(data)) != -1) {
   54.85 +            buffer.append(new String(data, 0, length));
   54.86 +        }
   54.87 +        return buffer.toString();
   54.88 +    }
   54.89 +
   54.90 +    /** A BufferedReader implementation that automatically performs string replacements as needed. */
   54.91 +    private static final class TemplateReader extends BufferedReader {
   54.92 +        private Map<String, String> variables;
   54.93 +
   54.94 +        TemplateReader(Map<String, String> variables, String template) {
   54.95 +            super(new StringReader(template));
   54.96 +            this.variables = variables;
   54.97 +        }
   54.98 +
   54.99 +        /**
  54.100 +         * @return a line of text from the template but with variables substituted. Other methods will return the text
  54.101 +         *         sans substitution. Call this method.
  54.102 +         * @throws java.io.IOException
  54.103 +         */
  54.104 +        public String readLine() throws IOException {
  54.105 +            return substituteVariables(super.readLine());
  54.106 +        }
  54.107 +
  54.108 +        private String substituteVariables(String input) {
  54.109 +            if (input == null) return null;
  54.110 +            for (Map.Entry<String, String> variable : variables.entrySet()) {
  54.111 +                input = input.replace("${" + variable.getKey() + "}", variable.getValue());
  54.112 +            }
  54.113 +            return input;
  54.114 +        }
  54.115 +    }
  54.116 +
  54.117 +}
    55.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    55.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/CustomUIDefault.java	Wed Apr 29 00:27:46 2009 -0700
    55.3 @@ -0,0 +1,43 @@
    55.4 +/*
    55.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    55.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    55.7 + *
    55.8 + * This code is free software; you can redistribute it and/or modify it
    55.9 + * under the terms of the GNU General Public License version 2 only, as
   55.10 + * published by the Free Software Foundation.  Sun designates this
   55.11 + * particular file as subject to the "Classpath" exception as provided
   55.12 + * by Sun in the LICENSE file that accompanied this code.
   55.13 + *
   55.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   55.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   55.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   55.17 + * version 2 for more details (a copy is included in the LICENSE file that
   55.18 + * accompanied this code).
   55.19 + *
   55.20 + * You should have received a copy of the GNU General Public License version
   55.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   55.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   55.23 + *
   55.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   55.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   55.26 + * have any questions.
   55.27 + */
   55.28 +package org.jdesktop.synthdesigner.synthmodel;
   55.29 +
   55.30 +/**
   55.31 + * CustomUIDefault
   55.32 + *
   55.33 + * @author  Richard Bair
   55.34 + * @author  Jasper Potts
   55.35 + */
   55.36 +public class CustomUIDefault<T> extends UIDefault<T> {
   55.37 +    private static int counter = -1;
   55.38 +
   55.39 +    public CustomUIDefault() {
   55.40 +        super("Unnamed" + (++counter == 0 ? "" : counter), null);
   55.41 +    }
   55.42 +
   55.43 +    public void setName(String id) {
   55.44 +        super.setName(id);
   55.45 +    }
   55.46 +}
    56.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    56.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/HasUIStyle.java	Wed Apr 29 00:27:46 2009 -0700
    56.3 @@ -0,0 +1,36 @@
    56.4 +/*
    56.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    56.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    56.7 + *
    56.8 + * This code is free software; you can redistribute it and/or modify it
    56.9 + * under the terms of the GNU General Public License version 2 only, as
   56.10 + * published by the Free Software Foundation.  Sun designates this
   56.11 + * particular file as subject to the "Classpath" exception as provided
   56.12 + * by Sun in the LICENSE file that accompanied this code.
   56.13 + *
   56.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   56.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   56.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   56.17 + * version 2 for more details (a copy is included in the LICENSE file that
   56.18 + * accompanied this code).
   56.19 + *
   56.20 + * You should have received a copy of the GNU General Public License version
   56.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   56.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   56.23 + *
   56.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   56.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   56.26 + * have any questions.
   56.27 + */
   56.28 +package org.jdesktop.synthdesigner.synthmodel;
   56.29 +
   56.30 +/**
   56.31 + * HasUIStyle - A marker interface for all classes that have a UIStyle
   56.32 + *
   56.33 + * @author  Richard Bair
   56.34 + * @author  Jasper Potts
   56.35 + */
   56.36 +public interface HasUIStyle {
   56.37 +
   56.38 +    public UIStyle getStyle();
   56.39 +}
    57.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    57.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/PainterBorder.java	Wed Apr 29 00:27:46 2009 -0700
    57.3 @@ -0,0 +1,43 @@
    57.4 +/*
    57.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    57.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    57.7 + *
    57.8 + * This code is free software; you can redistribute it and/or modify it
    57.9 + * under the terms of the GNU General Public License version 2 only, as
   57.10 + * published by the Free Software Foundation.  Sun designates this
   57.11 + * particular file as subject to the "Classpath" exception as provided
   57.12 + * by Sun in the LICENSE file that accompanied this code.
   57.13 + *
   57.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   57.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   57.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   57.17 + * version 2 for more details (a copy is included in the LICENSE file that
   57.18 + * accompanied this code).
   57.19 + *
   57.20 + * You should have received a copy of the GNU General Public License version
   57.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   57.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   57.23 + *
   57.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   57.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   57.26 + * have any questions.
   57.27 + */
   57.28 +package org.jdesktop.synthdesigner.synthmodel;
   57.29 +
   57.30 +import javax.swing.border.EmptyBorder;
   57.31 +
   57.32 +/**
   57.33 + * Represents a border that refers to a Painter to do it's work. This border
   57.34 + * doesn't actually render -- it is just used as part of the model.
   57.35 + *
   57.36 + * @author Richard Bair
   57.37 + */
   57.38 +public class PainterBorder extends EmptyBorder {
   57.39 +    private String painterName;
   57.40 +    public PainterBorder(String painterName, int top, int left, int bottom, int right) {
   57.41 +        super(top, left, bottom, right);
   57.42 +        this.painterName = painterName;
   57.43 +    }
   57.44 +
   57.45 +    public String getPainterName() { return painterName; }
   57.46 +}
    58.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    58.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/SynthModel.java	Wed Apr 29 00:27:46 2009 -0700
    58.3 @@ -0,0 +1,530 @@
    58.4 +/*
    58.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
    58.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    58.7 + *
    58.8 + * This code is free software; you can redistribute it and/or modify it
    58.9 + * under the terms of the GNU General Public License version 2 only, as
   58.10 + * published by the Free Software Foundation.  Sun designates this
   58.11 + * particular file as subject to the "Classpath" exception as provided
   58.12 + * by Sun in the LICENSE file that accompanied this code.
   58.13 + *
   58.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   58.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   58.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   58.17 + * version 2 for more details (a copy is included in the LICENSE file that
   58.18 + * accompanied this code).
   58.19 + *
   58.20 + * You should have received a copy of the GNU General Public License version
   58.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   58.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   58.23 + *
   58.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   58.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   58.26 + * have any questions.
   58.27 + */
   58.28 +package org.jdesktop.synthdesigner.synthmodel;
   58.29 +
   58.30 +import org.jdesktop.beans.AbstractBean;
   58.31 +import org.jdesktop.swingx.designer.utils.HasResources;
   58.32 +import org.jdesktop.swingx.designer.utils.HasUIDefaults;
   58.33 +import org.jibx.runtime.IUnmarshallingContext;
   58.34 +
   58.35 +import javax.swing.JButton;
   58.36 +import javax.swing.JCheckBox;
   58.37 +import javax.swing.JCheckBoxMenuItem;
   58.38 +import javax.swing.JColorChooser;
   58.39 +import javax.swing.JComboBox;
   58.40 +import javax.swing.JDesktopPane;
   58.41 +import javax.swing.JEditorPane;
   58.42 +import javax.swing.JFileChooser;
   58.43 +import javax.swing.JFormattedTextField;
   58.44 +import javax.swing.JInternalFrame;
   58.45 +import javax.swing.JLabel;
   58.46 +import javax.swing.JList;
   58.47 +import javax.swing.JMenu;
   58.48 +import javax.swing.JMenuBar;
   58.49 +import javax.swing.JMenuItem;
   58.50 +import javax.swing.JOptionPane;
   58.51 +import javax.swing.JPanel;
   58.52 +import javax.swing.JPasswordField;
   58.53 +import javax.swing.JPopupMenu;
   58.54 +import javax.swing.JProgressBar;
   58.55 +import javax.swing.JRadioButton;
   58.56 +import javax.swing.JRadioButtonMenuItem;
   58.57 +import javax.swing.JRootPane;
   58.58 +import javax.swing.JScrollBar;
   58.59 +import javax.swing.JScrollPane;
   58.60 +import javax.swing.JSeparator;
   58.61 +import javax.swing.JSlider;
   58.62 +import javax.swing.JSpinner;
   58.63 +import javax.swing.JSplitPane;
   58.64 +import javax.swing.JTabbedPane;
   58.65 +import javax.swing.JTable;
   58.66 +import javax.swing.JTextArea;
   58.67 +import javax.swing.JTextField;
   58.68 +import javax.swing.JTextPane;
   58.69 +import javax.swing.JToggleButton;
   58.70 +import javax.swing.JToolBar;
   58.71 +import javax.swing.JToolTip;
   58.72 +import javax.swing.JTree;
   58.73 +import javax.swing.JViewport;
   58.74 +import javax.swing.UIDefaults;
   58.75 +import javax.swing.plaf.basic.BasicLookAndFeel;
   58.76 +import javax.swing.plaf.metal.MetalLookAndFeel;
   58.77 +import static javax.swing.plaf.synth.SynthConstants.*;
   58.78 +import javax.swing.table.JTableHeader;
   58.79 +import java.awt.Insets;
   58.80 +import java.io.File;
   58.81 +import java.util.ArrayList;
   58.82 +import java.util.List;
   58.83 +
   58.84 +/**
   58.85 + * Models a Synth look and feel. Contains all of the colors, fonts, painters, states, etc that compose a synth look and
   58.86 + * feel.
   58.87 + * <p/>
   58.88 + * To model Synth properly, I need to both Model the way Synth works (with styles, and so forth) and the way a look and
   58.89 + * feel works (UIDefaults table, etc) since both of these are supported ways of doing things in Synth.
   58.90 + * <p/>
   58.91 + * One important (but non-visual) thing that needs to be configurable is the support for InputMaps per component. In
   58.92 + * Synth, an input map can be associated with the main Synth element, meaning it applies to everything. Or it can be
   58.93 + * associated with a single style. An Inputmap can have an id, and it can contain multiple key/action pairs (where
   58.94 + * actions are denoted by name).
   58.95 + * <p/>
   58.96 + * It looks like Regions can have InputMaps? Sounds fishy to me. I think only Components really have input maps.
   58.97 + * <p/>
   58.98 + * I would like some way of denoting special keys between mac and other platforms. For example, cut, copy, paste etc
   58.99 + * should be different. In general, the ctrl key and apple (meta) key are reversed from what is typically on windows.
  58.100 + *
  58.101 + * @author  Richard Bair
  58.102 + * @author  Jasper Potts
  58.103 + */
  58.104 +public class SynthModel extends AbstractBean implements HasUIDefaults, HasUIStyle, HasResources {
  58.105 +    //I'm going to want:
  58.106 +    //entries related to the Control color, and other colors of the Basic LAF
  58.107 +    //entries related to fonts (standard fonts) used in the Basic LAF
  58.108 +    //entries related to standard insets, borders, dimensions, icons
  58.109 +    //entries related to component specific entries in the LAF
  58.110 +    private List<UIPaint> colors;
  58.111 +    private List<UIFont> fonts;
  58.112 +    private List<UIInsets> insets;
  58.113 +    private List<UIBorder> borders;
  58.114 +    private List<UIDimension> dimensions;
  58.115 +    private List<UIIcon> icons;
  58.116 +    private List<UIComponent> components;
  58.117 +    /**
  58.118 +     * This is a local UIDefaults that contains all the UIDefaults in this synth model. It is kept uptodate by the
  58.119 +     * indervidual UIDefaults nodes
  58.120 +     */
  58.121 +    private transient UIDefaults modelDefaults = new UIDefaults();
  58.122 +    private transient UIStyle globalStyle = new UIStyle();
  58.123 +
  58.124 +    private transient File resourcesDir;
  58.125 +    private transient File imagesDir;
  58.126 +    private transient File templatesDir;
  58.127 +
  58.128 +    /** Default constructor used by JIBX to create new empty SynthModel */
  58.129 +    protected SynthModel() {
  58.130 +        this(false);
  58.131 +    }
  58.132 +
  58.133 +    public SynthModel(boolean populateWithDefaults) {
  58.134 +        // create observable lists that fire changes on as property changes
  58.135 +        colors = new ArrayList<UIPaint>();
  58.136 +        fonts = new ArrayList<UIFont>();
  58.137 +        insets = new ArrayList<UIInsets>();
  58.138 +        borders = new ArrayList<UIBorder>();
  58.139 +        dimensions = new ArrayList<UIDimension>();
  58.140 +        icons = new ArrayList<UIIcon>();
  58.141 +        components = new ArrayList<UIComponent>();
  58.142 +
  58.143 +        if (populateWithDefaults) {
  58.144 +            //get the ui defaults from the SynthLookAndFeel. Using the UIDefaults table,
  58.145 +            //pre initialize everything.
  58.146 +//        SynthLookAndFeel synth = new SynthLookAndFeel();
  58.147 +            BasicLookAndFeel synth = new MetalLookAndFeel();
  58.148 +            UIDefaults defaults = synth.getDefaults();
  58.149 +
  58.150 +            //pre-init the palettes
  58.151 +            colors.add(new UIColor("desktop", defaults.getColor("desktop"), modelDefaults));
  58.152 +            colors.add(new UIColor("activeCaption", defaults.getColor("activeCaption"), modelDefaults));
  58.153 +            colors.add(new UIColor("activeCaptionText", defaults.getColor("activeCaptionText"), modelDefaults));
  58.154 +            colors.add(new UIColor("activeCaptionBorder", defaults.getColor("activeCaptionBorder"), modelDefaults));
  58.155 +            colors.add(new UIColor("inactiveCaption", defaults.getColor("inactiveCaption"), modelDefaults));
  58.156 +            colors.add(new UIColor("inactiveCaptionText", defaults.getColor("inactiveCaptionText"), modelDefaults));
  58.157 +            colors.add(new UIColor("inactiveCaptionBorder", defaults.getColor("inactiveCaptionBorder"), modelDefaults));
  58.158 +            colors.add(new UIColor("window", defaults.getColor("window"), modelDefaults));
  58.159 +            colors.add(new UIColor("windowBorder", defaults.getColor("windowBorder"), modelDefaults));
  58.160 +            colors.add(new UIColor("windowText", defaults.getColor("windowText"), modelDefaults));
  58.161 +            colors.add(new UIColor("menu", defaults.getColor("menu"), modelDefaults));
  58.162 +            colors.add(new UIColor("menuText", defaults.getColor("menuText"), modelDefaults));
  58.163 +            colors.add(new UIColor("text", defaults.getColor("text"), modelDefaults));
  58.164 +            colors.add(new UIColor("textText", defaults.getColor("textText"), modelDefaults));
  58.165 +            colors.add(new UIColor("textHighlight", defaults.getColor("textHighlight"), modelDefaults));
  58.166 +            colors.add(new UIColor("textHighlightText", defaults.getColor("textHighlightText"), modelDefaults));
  58.167 +            colors.add(new UIColor("textInactiveText", defaults.getColor("textInactiveText"), modelDefaults));
  58.168 +            colors.add(new UIColor("control", defaults.getColor("control"), modelDefaults));
  58.169 +            colors.add(new UIColor("controlText", defaults.getColor("controlText"), modelDefaults));
  58.170 +            colors.add(new UIColor("controlHighlight", defaults.getColor("controlHighlight"), modelDefaults));
  58.171 +            colors.add(new UIColor("controlLHighlight", defaults.getColor("controlLHighlight"), modelDefaults));
  58.172 +            colors.add(new UIColor("controlShadow", defaults.getColor("controlShadow"), modelDefaults));
  58.173 +            colors.add(new UIColor("controlDkShadow", defaults.getColor("controlDkShadow"), modelDefaults));
  58.174 +            colors.add(new UIColor("scrollbar", defaults.getColor("scrollbar"), modelDefaults));
  58.175 +            colors.add(new UIColor("info", defaults.getColor("info"), modelDefaults));
  58.176 +            colors.add(new UIColor("infoText", defaults.getColor("infoText"), modelDefaults));
  58.177 +
  58.178 +            fonts.add(new UIFont("dialogPlain", defaults.getFont("Button.font"), modelDefaults));
  58.179 +            fonts.add(new UIFont("serifPlain", defaults.getFont("TextPane.font"), modelDefaults));
  58.180 +            fonts.add(new UIFont("sansSerifPlain", defaults.getFont("ToolTip.font"), modelDefaults));
  58.181 +            fonts.add(new UIFont("monospacedPlain", defaults.getFont("TextArea.font"), modelDefaults));
  58.182 +            fonts.add(new UIFont("dialogBold", defaults.getFont("InternalFrame.titleFont"), modelDefaults));
  58.183 +
  58.184 +            insets.add(new UIInsets("zeroInsets", new Insets(0, 0, 0, 0)));
  58.185 +            insets.add(new UIInsets("twoInsets", new Insets(2, 2, 2, 2)));
  58.186 +            insets.add(new UIInsets("threeInsets", new Insets(3, 3, 3, 3)));
  58.187 +
  58.188 +            borders.add(new UIBorder("marginBorder", defaults.getBorder("MenuItem.border")));
  58.189 +            borders.add(new UIBorder("etchedBorder", defaults.getBorder("TitledBorder.border")));
  58.190 +            borders.add(new UIBorder("loweredBevelBorder", defaults.getBorder("Table.scrollPaneBorder")));
  58.191 +            borders.add(new UIBorder("blackLineBorder", defaults.getBorder("ToolTip.border")));
  58.192 +
  58.193 +            //TODO have to deal with the special arrow button region
  58.194 +
  58.195 +            //pre-init the list of UI components
  58.196 +            UIComponent button = new UIComponent("Button", JButton.class.getName(), "ButtonUI");
  58.197 +            addStates(this, button, DEFAULT, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.198 +            components.add(button);
  58.199 +
  58.200 +            UIComponent toggleButton =
  58.201 +                    new UIComponent("ToggleButton", JToggleButton.class.getName(), "ToggleButtonUI");
  58.202 +            addStates(this, toggleButton, DEFAULT, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED, SELECTED,
  58.203 +                    SELECTED | PRESSED, SELECTED | MOUSE_OVER, DISABLED | SELECTED);
  58.204 +            components.add(toggleButton);
  58.205 +
  58.206 +            UIComponent radioButton =
  58.207 +                    new UIComponent("RadioButton", JRadioButton.class.getName(), "RadioButtonUI");
  58.208 +            addStates(this, radioButton, DEFAULT, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED, SELECTED,
  58.209 +                    SELECTED | PRESSED, SELECTED | MOUSE_OVER, DISABLED | SELECTED);
  58.210 +            components.add(radioButton);
  58.211 +
  58.212 +            UIComponent checkBox =
  58.213 +                    new UIComponent("CheckBox", JCheckBox.class.getName(), "CheckBoxUI");
  58.214 +            addStates(this, checkBox, DEFAULT, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED, SELECTED,
  58.215 +                    SELECTED | PRESSED, SELECTED | MOUSE_OVER, DISABLED | SELECTED);
  58.216 +            components.add(checkBox);
  58.217 +
  58.218 +            UIComponent colorChooser =
  58.219 +                    new UIComponent("ColorChooser", JColorChooser.class.getName(), "ColorChooserUI");
  58.220 +            addStates(this, colorChooser, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.221 +            components.add(colorChooser);
  58.222 +
  58.223 +            UIComponent comboBox =
  58.224 +                    new UIComponent("ComboBox", JComboBox.class.getName(), "ComboBoxUI");
  58.225 +            addStates(this, comboBox, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.226 +            components.add(comboBox);
  58.227 +
  58.228 +            UIComponent fileChooser =
  58.229 +                    new UIComponent("FileChooser", JFileChooser.class.getName(), "FileChooserUI");
  58.230 +            addStates(this, fileChooser, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.231 +            components.add(fileChooser);
  58.232 +
  58.233 +            //not represented in Synth
  58.234 +//        UIComponent  fileView = new UIComponent ("FileView",
  58.235 +//                list(DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.236 +
  58.237 +            UIComponent internalFrame =
  58.238 +                    new UIComponent("InternalFrame", JInternalFrame.class.getName(), "InternalFrameUI");
  58.239 +            addStates(this, internalFrame, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.240 +            //has an internal frame title pane region
  58.241 +            components.add(internalFrame);
  58.242 +
  58.243 +            //TODO DesktopIcon ???
  58.244 +
  58.245 +            UIComponent desktop =
  58.246 +                    new UIComponent("Desktop", JDesktopPane.class.getName(), "DesktopPaneUI");
  58.247 +            addStates(this, desktop, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.248 +            components.add(desktop);
  58.249 +
  58.250 +            UIComponent label = new UIComponent("Label", JLabel.class.getName(), "LabelUI");
  58.251 +            addStates(this, label, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.252 +            components.add(label);
  58.253 +
  58.254 +            UIComponent list = new UIComponent("List", JList.class.getName(), "ListUI");
  58.255 +            addStates(this, list, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.256 +            components.add(list);
  58.257 +
  58.258 +            UIComponent menuBar = new UIComponent("MenuBar", JMenuBar.class.getName(), "MenuBarUI");
  58.259 +            addStates(this, menuBar, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.260 +            components.add(menuBar);
  58.261 +
  58.262 +            UIComponent menuItem =
  58.263 +                    new UIComponent("MenuItem", JMenuItem.class.getName(), "MenuItemUI");
  58.264 +            addStates(this, menuItem, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.265 +            //has a menuItemAccelerator region
  58.266 +            components.add(menuItem);
  58.267 +
  58.268 +            UIComponent radioButtonMenuItem =
  58.269 +                    new UIComponent("RadioButtonMenuItem", JRadioButtonMenuItem.class.getName(),
  58.270 +                            "RadioButtonMenuItemUI");
  58.271 +            addStates(this, radioButtonMenuItem, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.272 +            components.add(radioButtonMenuItem);
  58.273 +
  58.274 +            UIComponent checkBoxMenuItem =
  58.275 +                    new UIComponent("CheckBoxMenuItem", JCheckBoxMenuItem.class.getName(),
  58.276 +                            "CheckBoxMenuItemUI");
  58.277 +            addStates(this, checkBoxMenuItem, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.278 +            components.add(checkBoxMenuItem);
  58.279 +
  58.280 +            UIComponent menu = new UIComponent("Menu", JMenu.class.getName(), "MenuUI");
  58.281 +            addStates(this, menu, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.282 +            components.add(menu);
  58.283 +
  58.284 +            UIComponent popupMenu =
  58.285 +                    new UIComponent("PopupMenu", JPopupMenu.class.getName(), "PopupMenuUI");
  58.286 +            addStates(this, popupMenu, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.287 +            //has a popupMenuSeparator region
  58.288 +            components.add(popupMenu);
  58.289 +
  58.290 +            UIComponent optionPane =
  58.291 +                    new UIComponent("OptionPane", JOptionPane.class.getName(), "OptionPaneUI");
  58.292 +            addStates(this, optionPane, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.293 +            components.add(optionPane);
  58.294 +
  58.295 +            UIComponent panel = new UIComponent("Panel", JPanel.class.getName(), "PanelUI");
  58.296 +            addStates(this, panel, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.297 +            components.add(panel);
  58.298 +
  58.299 +            UIComponent progressBar =
  58.300 +                    new UIComponent("ProgressBar", JProgressBar.class.getName(), "ProgressBarUI");
  58.301 +            addStates(this, progressBar, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.302 +            components.add(progressBar);
  58.303 +
  58.304 +            UIComponent separator =
  58.305 +                    new UIComponent("Separator", JSeparator.class.getName(), "SeparatorUI");
  58.306 +            addStates(this, separator, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.307 +            components.add(separator);
  58.308 +
  58.309 +            UIRegion scrollBarThumb = new UIRegion("ScrollBar.Thumb");
  58.310 +            addStates(this, scrollBarThumb, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.311 +            UIRegion scrollBarTrack = new UIRegion("ScrollBar.Track");
  58.312 +            addStates(this, scrollBarTrack, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.313 +            UIComponent scrollBar =
  58.314 +                    new UIComponent("ScrollBar", JScrollBar.class.getName(), "ScrollBarUI", scrollBarThumb,
  58.315 +                            scrollBarTrack);
  58.316 +            addStates(this, scrollBar, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.317 +            components.add(scrollBar);
  58.318 +
  58.319 +            UIComponent scrollPane =
  58.320 +                    new UIComponent("ScrollPane", JScrollPane.class.getName(), "ScrollPaneUI");
  58.321 +            addStates(this, scrollPane, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.322 +            components.add(scrollPane);
  58.323 +
  58.324 +            UIComponent viewport =
  58.325 +                    new UIComponent("Viewport", JViewport.class.getName(), "ViewportUI");
  58.326 +            addStates(this, viewport, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.327 +            components.add(viewport);
  58.328 +
  58.329 +            UIComponent slider = new UIComponent("Slider", JSlider.class.getName(), "SliderUI");
  58.330 +            addStates(this, slider, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.331 +            //has sliderThumb and sliderTrack sub regions
  58.332 +            components.add(slider);
  58.333 +
  58.334 +            UIComponent spinner = new UIComponent("Spinner", JSpinner.class.getName(), "SpinnerUI");
  58.335 +            addStates(this, spinner, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.336 +            components.add(spinner);
  58.337 +
  58.338 +            UIComponent splitPane =
  58.339 +                    new UIComponent("SplitPane", JSplitPane.class.getName(), "SplitPaneUI");
  58.340 +            addStates(this, splitPane, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.341 +            //has splitPaneDivider sub region
  58.342 +            components.add(splitPane);
  58.343 +
  58.344 +            UIComponent tabbedPane =
  58.345 +                    new UIComponent("TabbedPane", JTabbedPane.class.getName(), "TabbedPaneUI");
  58.346 +            addStates(this, tabbedPane, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.347 +            //has tabbedPaneContent and tabbedPaneTab and TabbedPaneTabArea sub regions
  58.348 +            components.add(tabbedPane);
  58.349 +
  58.350 +            UIComponent table = new UIComponent("Table", JTable.class.getName(), "TableUI");
  58.351 +            addStates(this, table, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.352 +            components.add(table);
  58.353 +
  58.354 +            UIComponent tableHeader =
  58.355 +                    new UIComponent("TableHeader", JTableHeader.class.getName(), "TableHeaderUI");
  58.356 +            addStates(this, tableHeader, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.357 +            components.add(tableHeader);
  58.358 +
  58.359 +            UIComponent textField =
  58.360 +                    new UIComponent("TextField", JTextField.class.getName(), "TextFieldUI");
  58.361 +            addStates(this, textField, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.362 +            components.add(textField);
  58.363 +
  58.364 +            UIComponent formattedTextField =
  58.365 +                    new UIComponent("FormattedTextField", JFormattedTextField.class.getName(),
  58.366 +                            "FormattedTextFieldUI");
  58.367 +            addStates(this, formattedTextField, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.368 +            components.add(formattedTextField);
  58.369 +
  58.370 +            UIComponent passwordField =
  58.371 +                    new UIComponent("PasswordField", JPasswordField.class.getName(), "PasswordFieldUI");
  58.372 +            addStates(this, passwordField, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.373 +            components.add(passwordField);
  58.374 +
  58.375 +            UIComponent textArea =
  58.376 +                    new UIComponent("TextArea", JTextArea.class.getName(), "TextAreaUI");
  58.377 +            addStates(this, textArea, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.378 +            components.add(textArea);
  58.379 +
  58.380 +            UIComponent textPane =
  58.381 +                    new UIComponent("TextPane", JTextPane.class.getName(), "TextPaneUI");
  58.382 +            addStates(this, textPane, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.383 +            components.add(textPane);
  58.384 +
  58.385 +            UIComponent editorPane =
  58.386 +                    new UIComponent("EditorPane", JEditorPane.class.getName(), "EditorPaneUI");
  58.387 +            addStates(this, editorPane, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.388 +            components.add(editorPane);
  58.389 +
  58.390 +            /*
  58.391 +            * The only thing not represented in Synth as a region. I suppose we'll have
  58.392 +            * to make it a CustomUIComponent
  58.393 +            */
  58.394 +//        UIComponent  titledBorder = new UIComponent ("TitledBorder",
  58.395 +//                list(DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.396 +
  58.397 +            UIComponent toolBar = new UIComponent("ToolBar", JToolBar.class.getName(), "ToolBarUI");
  58.398 +            addStates(this, toolBar, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.399 +            //toolBarContent, toolBarDragWindow, toolBarSeparator sub regions
  58.400 +            components.add(toolBar);
  58.401 +
  58.402 +            UIComponent toolTip = new UIComponent("ToolTip", JToolTip.class.getName(), "ToolTipUI");
  58.403 +            addStates(this, toolTip, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.404 +            components.add(toolTip);
  58.405 +
  58.406 +            //tooltip manager
  58.407 +
  58.408 +            UIComponent tree = new UIComponent("Tree", JTree.class.getName(), "TreeUI");
  58.409 +            addStates(this, tree, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.410 +            //treeCell sub region
  58.411 +            components.add(tree);
  58.412 +
  58.413 +            UIComponent rootPane =
  58.414 +                    new UIComponent("RootPane", JRootPane.class.getName(), "RootPaneUI");
  58.415 +            addStates(this, rootPane, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED);
  58.416 +            components.add(rootPane);
  58.417 +        }
  58.418 +    }
  58.419 +
  58.420 +    public List<UIPaint> getColorPalette() {
  58.421 +        return colors;
  58.422 +    }
  58.423 +
  58.424 +    public List<UIFont> getFontPalette() {
  58.425 +        return fonts;
  58.426 +    }
  58.427 +
  58.428 +    public List<UIInsets> getInsetPalette() {
  58.429 +        return insets;
  58.430 +    }
  58.431 +
  58.432 +    public List<UIBorder> getBorderPalette() {
  58.433 +        return borders;
  58.434 +    }
  58.435 +
  58.436 +    public List<UIDimension> getDimensionPalette() {
  58.437 +        return dimensions;
  58.438 +    }
  58.439 +
  58.440 +    public List<UIIcon> getIconPalette() {
  58.441 +        return icons;
  58.442 +    }
  58.443 +
  58.444 +    public List<UIComponent> getComponents() {
  58.445 +        return components;
  58.446 +    }
  58.447 +
  58.448 +    /**
  58.449 +     * Get the local UIDefaults that contains all the UIDefaults in this synth model. It is kept uptodate by the
  58.450 +     * indervidual UIDefaults nodes
  58.451 +     *
  58.452 +     * @return The UIDefaults for the synth model
  58.453 +     */
  58.454 +    public UIDefaults getUiDefaults() {
  58.455 +        return modelDefaults;
  58.456 +    }
  58.457 +
  58.458 +    public UIStyle getStyle() {
  58.459 +        return globalStyle;
  58.460 +    }
  58.461 +
  58.462 +    // by default there are no painters assigned to the various states
  58.463 +    private static void addStates(SynthModel model, UIRegion parentRegion, int... states) {
  58.464 +        for (int state : states) {
  58.465 +            List<String> stateList = new ArrayList<String>();
  58.466 +            if ((state & ENABLED) != 0) {
  58.467 +                stateList.add(UIStateType.ENABLED_KEY);
  58.468 +            }
  58.469 +            if ((state & MOUSE_OVER) != 0) {
  58.470 +                stateList.add(UIStateType.MOUSE_OVER_KEY);
  58.471 +            }
  58.472 +            if ((state & PRESSED) != 0) {
  58.473 +                stateList.add(UIStateType.PRESSED_KEY);
  58.474 +            }
  58.475 +            if ((state & DISABLED) != 0) {
  58.476 +                stateList.add(UIStateType.DISABLED_KEY);
  58.477 +            }
  58.478 +            if ((state & FOCUSED) != 0) {
  58.479 +                stateList.add(UIStateType.FOCUSED_KEY);
  58.480 +            }
  58.481 +            if ((state & SELECTED) != 0) {
  58.482 +                stateList.add(UIStateType.SELECTED_KEY);
  58.483 +            }
  58.484 +            if ((state & DEFAULT) != 0) {
  58.485 +                stateList.add(UIStateType.DEFAULT_KEY);
  58.486 +            }
  58.487 +            parentRegion.addBackgroundState(new UIState(model, parentRegion, stateList.toArray(new String[stateList.size()])));
  58.488 +        }
  58.489 +    }
  58.490 +
  58.491 +    public File getResourcesDir() {
  58.492 +        return resourcesDir;
  58.493 +    }
  58.494 +
  58.495 +    public void setResourcesDir(File resourcesDir) {
  58.496 +        System.out.println("SynthModel.setResourcesDir(" + resourcesDir + ")");
  58.497 +        File old = getResourcesDir();
  58.498 +        this.resourcesDir = resourcesDir;
  58.499 +        firePropertyChange("resourcesDir", old, getResourcesDir());
  58.500 +    }
  58.501 +
  58.502 +    public File getImagesDir() {
  58.503 +        return imagesDir;
  58.504 +    }
  58.505 +
  58.506 +    public void setImagesDir(File imagesDir) {
  58.507 +        System.out.println("SynthModel.setImagesDir(" + imagesDir + ")");
  58.508 +        File old = getImagesDir();
  58.509 +        this.imagesDir = imagesDir;
  58.510 +        firePropertyChange("imagesDir", old, getImagesDir());
  58.511 +    }
  58.512 +
  58.513 +    public File getTemplatesDir() {
  58.514 +        return templatesDir;
  58.515 +    }
  58.516 +
  58.517 +    public void setTemplatesDir(File templatesDir) {
  58.518 +        System.out.println("SynthModel.setTemplatesDir(" + templatesDir + ")");
  58.519 +        File old = getTemplatesDir();
  58.520 +        this.templatesDir = templatesDir;
  58.521 +        firePropertyChange("templatesDir", old, getTemplatesDir());
  58.522 +    }
  58.523 +
  58.524 +    // =================================================================================================================
  58.525 +    // JIBX Methods
  58.526 +
  58.527 +    public void preSet(IUnmarshallingContext context) {
  58.528 +        File resourcesDir = (File) context.getUserContext();
  58.529 +        this.resourcesDir = resourcesDir;
  58.530 +        this.imagesDir = new File(resourcesDir, "images");
  58.531 +        this.templatesDir = new File(resourcesDir, "templates");
  58.532 +    }
  58.533 +}
    59.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    59.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/SynthModel.jibx.xml	Wed Apr 29 00:27:46 2009 -0700
    59.3 @@ -0,0 +1,181 @@
    59.4 +<?xml version="1.0" encoding="UTF-8"?>
    59.5 +
    59.6 +<!--
    59.7 + Copyright 1998-2004 Sun Microsystems, Inc.  All Rights Reserved.
    59.8 + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    59.9 +
   59.10 + This code is free software; you can redistribute it and/or modify it
   59.11 + under the terms of the GNU General Public License version 2 only, as
   59.12 + published by the Free Software Foundation.  Sun designates this
   59.13 + particular file as subject to the "Classpath" exception as provided
   59.14 + by Sun in the LICENSE file that accompanied this code.
   59.15 +
   59.16 + This code is distributed in the hope that it will be useful, but WITHOUT
   59.17 + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   59.18 + FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   59.19 + version 2 for more details (a copy is included in the LICENSE file that
   59.20 + accompanied this code).
   59.21 +
   59.22 + You should have received a copy of the GNU General Public License version
   59.23 + 2 along with this work; if not, write to the Free Software Foundation,
   59.24 + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   59.25 +
   59.26 + Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   59.27 + CA 95054 USA or visit www.sun.com if you need additional information or
   59.28 + have any questions.
   59.29 +-->
   59.30 +
   59.31 +<!DOCTYPE binding SYSTEM "http://jibx.sourceforge.net">
   59.32 +<binding>
   59.33 +    <mapping class="org.jdesktop.synthdesigner.synthmodel.UIDefault" abstract="true" post-set="postSet">
   59.34 +        <value name="name" field="name" style="attribute"/>
   59.35 +    </mapping>
   59.36 +    <!-- == AWT TYPES =========================================================================================== -->
   59.37 +    <mapping class="java.awt.Color"
   59.38 +             marshaller="org.jdesktop.swingx.designer.jibxhelpers.ColorMapper"
   59.39 +             unmarshaller="org.jdesktop.swingx.designer.jibxhelpers.ColorMapper"/>
   59.40 +    <mapping class="java.lang.Class"
   59.41 +             marshaller="org.jdesktop.synthdesigner.synthmodel.jibxhelpers.ClassMapper"
   59.42 +             unmarshaller="org.jdesktop.synthdesigner.synthmodel.jibxhelpers.ClassMapper"/>
   59.43 +    <!-- == UI FONT =========================================================================================== -->
   59.44 +    <mapping name="typeface" class="org.jdesktop.swingx.designer.font.Typeface" post-set="postSet">
   59.45 +        <value name="family" field="name" style="attribute" usage="optional"/>
   59.46 +        <value name="bold" field="bold" style="attribute" usage="optional" default="Default"/>
   59.47 +        <value name="italic" field="italic" style="attribute" usage="optional" default="Default"/>
   59.48 +        <value name="size" field="size" style="attribute" usage="optional"/>
   59.49 +        <value name="sizeOffset" field="sizeOffset" style="attribute" usage="optional" default="1"/>
   59.50 +        <value name="uiDefaultParentName" field="uiDefaultParentName" style="attribute" usage="optional"/>
   59.51 +    </mapping>
   59.52 +    <mapping name="uiFont" class="org.jdesktop.synthdesigner.synthmodel.UIFont"
   59.53 +             extends="org.jdesktop.synthdesigner.synthmodel.UIDefault">
   59.54 +        <structure map-as="org.jdesktop.synthdesigner.synthmodel.UIDefault"/>
   59.55 +        <collection get-method="getFonts" set-method="setFonts" create-type="java.util.ArrayList"/>
   59.56 +    </mapping>
   59.57 +    <!-- == UI INSETS =========================================================================================== -->
   59.58 +    <mapping name="uiInsets" class="org.jdesktop.synthdesigner.synthmodel.UIInsets"
   59.59 +             extends="org.jdesktop.synthdesigner.synthmodel.UIDefault">
   59.60 +        <structure map-as="org.jdesktop.synthdesigner.synthmodel.UIDefault"/>
   59.61 +        <structure name="insets" get-method="getInsets" set-method="setInsets"
   59.62 +                   marshaller="org.jdesktop.swingx.designer.jibxhelpers.InsetsMapper"
   59.63 +                   unmarshaller="org.jdesktop.swingx.designer.jibxhelpers.InsetsMapper"/>
   59.64 +    </mapping>
   59.65 +    <!-- == UI PAINT =========================================================================================== -->
   59.66 +    <mapping name="matte" class="org.jdesktop.swingx.designer.paint.Matte" post-set="postSet">
   59.67 +        <value name="red" field="red" style="attribute"/>
   59.68 +        <value name="green" field="green" style="attribute"/>
   59.69 +        <value name="blue" field="blue" style="attribute"/>
   59.70 +        <value name="alpha" field="alpha" style="attribute"/>
   59.71 +        <value name="uiDefaultParentName" field="uiDefaultParentName" style="attribute" usage="optional"/>
   59.72 +        <value name="componentPropertyName" field="componentPropertyName" style="attribute" usage="optional"/>
   59.73 +        <value name="hueOffset" field="hueOffset" style="attribute"/>
   59.74 +        <value name="saturationOffset" field="saturationOffset" style="attribute"/>
   59.75 +        <value name="brightnessOffset" field="brightnessOffset" style="attribute"/>
   59.76 +        <value name="alphaOffset" field="alphaOffset" style="attribute"/>
   59.77 +        <value name="uiResource" field="uiResource" style="attribute" usage="optional" default="true"/>
   59.78 +    </mapping>
   59.79 +    <mapping class="org.jdesktop.synthdesigner.synthmodel.UIPaint" abstract="true" type-name="uipaint"
   59.80 +             extends="org.jdesktop.synthdesigner.synthmodel.UIDefault">
   59.81 +        <structure map-as="org.jdesktop.synthdesigner.synthmodel.UIDefault"/>
   59.82 +        <structure get-method="getPaint" set-method="setPaint"/>
   59.83 +    </mapping>
   59.84 +    <mapping name="uiPaint" class="org.jdesktop.synthdesigner.synthmodel.UIPaint"
   59.85 +             extends="org.jdesktop.synthdesigner.synthmodel.UIDefault">
   59.86 +        <structure map-as="uipaint"/>
   59.87 +    </mapping>
   59.88 +    <mapping name="uiColor" class="org.jdesktop.synthdesigner.synthmodel.UIColor"
   59.89 +             extends="org.jdesktop.synthdesigner.synthmodel.UIPaint">
   59.90 +        <structure map-as="uipaint"/>
   59.91 +    </mapping>
   59.92 +    <!-- == UI STYLE =========================================================================================== -->
   59.93 +    <mapping class="org.jdesktop.synthdesigner.synthmodel.UIStyle" abstract="true" post-set="postSet">
   59.94 +        <structure field="font" usage="optional"/>
   59.95 +        <structure name="textForeground" usage="optional">
   59.96 +            <structure field="textForeground" usage="optional"/>
   59.97 +        </structure>
   59.98 +        <structure name="textBackground" usage="optional">
   59.99 +            <structure field="textBackground" usage="optional"/>
  59.100 +        </structure>
  59.101 +        <structure name="background" usage="optional">
  59.102 +            <structure field="background" usage="optional"/>
  59.103 +        </structure>
  59.104 +        <value name="inherit-font" field="fontInherited" usage="optional" default="true"/>
  59.105 +        <value name="inherit-textForeground" field="textForegroundInherited" usage="optional" default="true"/>
  59.106 +        <value name="inherit-textBackground" field="textBackgroundInherited" usage="optional" default="true"/>
  59.107 +        <value name="inherit-background" field="backgroundInherited" usage="optional" default="true"/>
  59.108 +        <value name="hintAlphaInterpolation" field="hintAlphaInterpolation" usage="optional"/>
  59.109 +        <value name="hintAntialiasing" field="hintAntialiasing" usage="optional"/>
  59.110 +        <value name="hintColorRendering" field="hintColorRendering" usage="optional"/>
  59.111 +        <value name="hintDithering" field="hintDithering" usage="optional"/>
  59.112 +        <value name="hintFractionalMetrics" field="hintFractionalMetrics" usage="optional"/>
  59.113 +        <value name="hintInterpolation" field="hintInterpolation" usage="optional"/>
  59.114 +        <value name="hintRendering" field="hintRendering" usage="optional"/>
  59.115 +        <value name="hintStrokeControl" field="hintStrokeControl" usage="optional"/>
  59.116 +        <value name="hintTextAntialiasing" field="hintTextAntialiasing" usage="optional"/>
  59.117 +        <value name="cacheSettingsInherited" field="cacheSettingsInherited" usage="optional" default="true"/>
  59.118 +        <value name="cacheMode" field="cacheMode" usage="optional" default="FIXED_SIZES"/>
  59.119 +        <value name="maxHozCachedImgScaling" field="maxHozCachedImgScaling" usage="optional" default="1"/>
  59.120 +        <value name="maxVertCachedImgScaling" field="maxVertCachedImgScaling" usage="optional" default="1"/>
  59.121 +        <collection name="uiproperties" field="uiProperties" create-type="java.util.ArrayList">
  59.122 +            <structure marshaller="org.jdesktop.synthdesigner.synthmodel.jibxhelpers.UIPropertyMapper"
  59.123 +                       unmarshaller="org.jdesktop.synthdesigner.synthmodel.jibxhelpers.UIPropertyMapper"/>
  59.124 +        </collection>
  59.125 +    </mapping>
  59.126 +    <!-- == UI STATE =========================================================================================== -->
  59.127 +    <mapping name="stateType" class="org.jdesktop.synthdesigner.synthmodel.UIStateType">
  59.128 +        <value name="key" field="key" style="attribute"/>
  59.129 +        <structure name="codeSnippet" usage="optional" test-method="hasCodeSnippet">
  59.130 +            <value field="codeSnippet" style="cdata" usage="optional"/>
  59.131 +        </structure>
  59.132 +    </mapping>
  59.133 +    <mapping name="state" class="org.jdesktop.synthdesigner.synthmodel.UIState" post-set="postSet" pre-set="preSet">
  59.134 +        <value name="stateKeys" field="stateKeys" style="attribute" get-method="getStateKeys" set-method="setStateKeys"
  59.135 +               serializer="org.jdesktop.synthdesigner.synthmodel.UIState.keysToString"
  59.136 +               deserializer="org.jdesktop.synthdesigner.synthmodel.UIState.stringToKeys"/>
  59.137 +        <value name="inverted" field="inverted" style="attribute" usage="optional"/>
  59.138 +        <structure name="style" field="style"/>
  59.139 +        <structure field="canvas"
  59.140 +                   marshaller="org.jdesktop.swingx.designer.jibxhelpers.CanvasMapper"
  59.141 +                   unmarshaller="org.jdesktop.swingx.designer.jibxhelpers.CanvasMapper"/>
  59.142 +    </mapping>
  59.143 +    <!-- == REGIONS =========================================================================================== -->
  59.144 +    <mapping class="org.jdesktop.synthdesigner.synthmodel.UIRegion" abstract="true"
  59.145 +             type-name="region" pre-set="preSet">
  59.146 +        <value name="name" field="name" style="attribute"/>
  59.147 +        <value name="ui" field="ui" style="attribute" usage="optional"/>
  59.148 +        <value name="subregion" field="subregion" style="attribute"/>
  59.149 +        <value name="key" field="key" style="attribute" usage="optional"/>
  59.150 +        <value name="title" field="title" style="attribute" usage="optional"/>
  59.151 +        <structure name="contentMargins" field="contentMargins"
  59.152 +                   marshaller="org.jdesktop.swingx.designer.jibxhelpers.InsetsMapper"
  59.153 +                   unmarshaller="org.jdesktop.swingx.designer.jibxhelpers.InsetsMapper"/>
  59.154 +        <structure name="style" field="style"/>
  59.155 +        <collection name="backgroundStates" field="backgroundStates" create-type="java.util.ArrayList"/>
  59.156 +        <collection name="foregroundStates" field="foregroundStates" create-type="java.util.ArrayList"/>
  59.157 +        <collection name="borderStates" field="borderStates" create-type="java.util.ArrayList"/>
  59.158 +        <collection name="regions" field="subRegions" create-type="java.util.ArrayList"/>
  59.159 +    </mapping>
  59.160 +    <mapping name="region" class="org.jdesktop.synthdesigner.synthmodel.UIRegion">
  59.161 +        <structure map-as="region"/>
  59.162 +    </mapping>
  59.163 +    <mapping name="uiIconRegion" class="org.jdesktop.synthdesigner.synthmodel.UIIconRegion"
  59.164 +             extends="org.jdesktop.synthdesigner.synthmodel.UIRegion">
  59.165 +        <structure map-as="region"/>
  59.166 +        <value name="basicKey" field="basicKey" style="attribute" usage="optional"/>
  59.167 +    </mapping>
  59.168 +    <mapping name="uiComponent" class="org.jdesktop.synthdesigner.synthmodel.UIComponent"
  59.169 +             extends="org.jdesktop.synthdesigner.synthmodel.UIRegion">
  59.170 +        <value name="opaque" field="opaque" style="attribute"/>
  59.171 +        <value name="componentName" field="componentName" style="attribute" usage="optional"/>
  59.172 +        <value name="type" field="type" style="attribute"/>
  59.173 +        <collection name="stateTypes" field="stateTypes" create-type="java.util.ArrayList"/>
  59.174 +        <structure map-as="region"/>
  59.175 +    </mapping>
  59.176 +    <!-- == BASE MODEL =========================================================================================== -->
  59.177 +    <mapping name="synthModel" class="org.jdesktop.synthdesigner.synthmodel.SynthModel" pre-set="preSet">
  59.178 +        <collection name="insets" field="insets" create-type="java.util.ArrayList"/>
  59.179 +        <collection name="colors" field="colors" create-type="java.util.ArrayList"/>
  59.180 +        <collection name="fonts" field="fonts" create-type="java.util.ArrayList"/>
  59.181 +        <structure name="style" field="globalStyle"/>
  59.182 +        <collection name="components" field="components" create-type="java.util.ArrayList"/>
  59.183 +    </mapping>
  59.184 +</binding>
    60.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    60.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIBorder.java	Wed Apr 29 00:27:46 2009 -0700
    60.3 @@ -0,0 +1,53 @@
    60.4 +/*
    60.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    60.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    60.7 + *
    60.8 + * This code is free software; you can redistribute it and/or modify it
    60.9 + * under the terms of the GNU General Public License version 2 only, as
   60.10 + * published by the Free Software Foundation.  Sun designates this
   60.11 + * particular file as subject to the "Classpath" exception as provided
   60.12 + * by Sun in the LICENSE file that accompanied this code.
   60.13 + *
   60.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   60.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   60.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   60.17 + * version 2 for more details (a copy is included in the LICENSE file that
   60.18 + * accompanied this code).
   60.19 + *
   60.20 + * You should have received a copy of the GNU General Public License version
   60.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   60.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   60.23 + *
   60.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   60.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   60.26 + * have any questions.
   60.27 + */
   60.28 +package org.jdesktop.synthdesigner.synthmodel;
   60.29 +
   60.30 +import javax.swing.border.Border;
   60.31 +
   60.32 +/**
   60.33 + * UIBorder
   60.34 + *
   60.35 + * @author  Richard Bair
   60.36 + * @author  Jasper Potts
   60.37 + */
   60.38 +public class UIBorder extends UIDefault<Border> {
   60.39 +
   60.40 +    public UIBorder() {
   60.41 +    }
   60.42 +
   60.43 +    public UIBorder(String id, Border b) {
   60.44 +        super(id, b);
   60.45 +    }
   60.46 +
   60.47 +    public Border getBorder() {
   60.48 +        return super.getValue();
   60.49 +    }
   60.50 +
   60.51 +    public void setBorder(Border b) {
   60.52 +        Border old = getBorder();
   60.53 +        super.setValue(b);
   60.54 +        firePropertyChange("border", old, b);
   60.55 +    }
   60.56 +}
    61.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    61.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIColor.java	Wed Apr 29 00:27:46 2009 -0700
    61.3 @@ -0,0 +1,58 @@
    61.4 +/*
    61.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    61.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    61.7 + *
    61.8 + * This code is free software; you can redistribute it and/or modify it
    61.9 + * under the terms of the GNU General Public License version 2 only, as
   61.10 + * published by the Free Software Foundation.  Sun designates this
   61.11 + * particular file as subject to the "Classpath" exception as provided
   61.12 + * by Sun in the LICENSE file that accompanied this code.
   61.13 + *
   61.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   61.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   61.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   61.17 + * version 2 for more details (a copy is included in the LICENSE file that
   61.18 + * accompanied this code).
   61.19 + *
   61.20 + * You should have received a copy of the GNU General Public License version
   61.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   61.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   61.23 + *
   61.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   61.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   61.26 + * have any questions.
   61.27 + */
   61.28 +package org.jdesktop.synthdesigner.synthmodel;
   61.29 +
   61.30 +import org.jdesktop.swingx.designer.paint.Matte;
   61.31 +
   61.32 +import javax.swing.UIDefaults;
   61.33 +import java.awt.Color;
   61.34 +
   61.35 +/**
   61.36 + * UIColor
   61.37 + *
   61.38 + * @author  Richard Bair
   61.39 + * @author  Jasper Potts
   61.40 + */
   61.41 +public class UIColor extends UIPaint {
   61.42 +
   61.43 +    public UIColor() {
   61.44 +    }
   61.45 +
   61.46 +    public UIColor(String id, Matte value) {
   61.47 +        super(id, value);
   61.48 +    }
   61.49 +
   61.50 +    public UIColor(String id, Color color, UIDefaults modelDefaults) {
   61.51 +        this(id, new Matte(color, modelDefaults));
   61.52 +    }
   61.53 +
   61.54 +    public Matte getPaint() {
   61.55 +        return (Matte) super.getPaint();
   61.56 +    }
   61.57 +
   61.58 +    public void setPaint(Matte c) {
   61.59 +        super.setPaint(c);
   61.60 +    }
   61.61 +}
    62.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    62.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIComponent.java	Wed Apr 29 00:27:46 2009 -0700
    62.3 @@ -0,0 +1,138 @@
    62.4 +/*
    62.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    62.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    62.7 + *
    62.8 + * This code is free software; you can redistribute it and/or modify it
    62.9 + * under the terms of the GNU General Public License version 2 only, as
   62.10 + * published by the Free Software Foundation.  Sun designates this
   62.11 + * particular file as subject to the "Classpath" exception as provided
   62.12 + * by Sun in the LICENSE file that accompanied this code.
   62.13 + *
   62.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   62.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   62.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   62.17 + * version 2 for more details (a copy is included in the LICENSE file that
   62.18 + * accompanied this code).
   62.19 + *
   62.20 + * You should have received a copy of the GNU General Public License version
   62.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   62.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   62.23 + *
   62.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   62.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   62.26 + * have any questions.
   62.27 + */
   62.28 +package org.jdesktop.synthdesigner.synthmodel;
   62.29 +
   62.30 +import org.jdesktop.swingx.designer.utils.HasUIDefaults;
   62.31 +
   62.32 +import java.util.List;
   62.33 +import java.util.ArrayList;
   62.34 +
   62.35 +/**
   62.36 + * UIComponent - model node that represents the designs for a single swing component
   62.37 + *
   62.38 + * @author  Richard Bair
   62.39 + * @author  Jasper Potts
   62.40 + */
   62.41 +public class UIComponent extends UIRegion implements HasUIDefaults {
   62.42 +
   62.43 +    /** The classname of the swing component that this UIComponent represents */
   62.44 +    private String type;
   62.45 +    /** The name of the component if its a named component or null if its a generic component */
   62.46 +    private String componentName = null;
   62.47 +    /** If this components is opaque which means that when it is painted all of its bounds are filled */
   62.48 +    private boolean opaque = false;
   62.49 +    /**
   62.50 +     * A list of state types that are available to this region and sub regions of this component but not subcomponents
   62.51 +     * of this component. If this list is empty then the standard synth set of state types are assumed.
   62.52 +     */
   62.53 +    private List<UIStateType> stateTypes;
   62.54 +
   62.55 +    // =================================================================================================================
   62.56 +    // Contructors
   62.57 +
   62.58 +    /** no-args contructor for JIBX */
   62.59 +    protected UIComponent() {
   62.60 +        super();
   62.61 +        // create new observable list for state types so we get events for when the model changes
   62.62 +        stateTypes = new ArrayList<UIStateType>();
   62.63 +    }
   62.64 +
   62.65 +    public UIComponent(String name, String type, String ui, UIRegion... subRegions) {
   62.66 +        super(name, ui, subRegions);
   62.67 +        this.type = type;
   62.68 +        for (UIRegion r : subRegions) {
   62.69 +            r.setRegion(this);
   62.70 +        }
   62.71 +        // create new observable list for state types so we get events for when the model changes
   62.72 +        stateTypes = new ArrayList<UIStateType>();
   62.73 +    }
   62.74 +
   62.75 +    // =================================================================================================================
   62.76 +    // Bean Methods
   62.77 +
   62.78 +    public String getComponentName() {
   62.79 +        return componentName;
   62.80 +    }
   62.81 +
   62.82 +    public void setComponentName(String componentName) {
   62.83 +        String old = getComponentName();
   62.84 +        this.componentName = componentName;
   62.85 +        firePropertyChange("componentName", old, getComponentName());
   62.86 +    }
   62.87 +
   62.88 +    public boolean isOpaque() {
   62.89 +        return opaque;
   62.90 +    }
   62.91 +
   62.92 +    public void setOpaque(boolean opaque) {
   62.93 +        boolean old = isOpaque();
   62.94 +        this.opaque = opaque;
   62.95 +        firePropertyChange("opaque", old, isOpaque());
   62.96 +    }
   62.97 +
   62.98 +    public String getType() {
   62.99 +        return type;
  62.100 +    }
  62.101 +
  62.102 +    public void setType(String type) {
  62.103 +        String old = getType();
  62.104 +        this.type = type;
  62.105 +        firePropertyChange("type", old, getType());
  62.106 +    }
  62.107 +
  62.108 +    /**
  62.109 +     * Get the list of state types that are available to this region and sub regions of this component but not
  62.110 +     * subcomponents of this component. If this list is empty then the standard synth set of state types are assumed.
  62.111 +     *
  62.112 +     * @return List of available state types
  62.113 +     */
  62.114 +    public List<UIStateType> getStateTypes() {
  62.115 +        return stateTypes;
  62.116 +    }
  62.117 +
  62.118 +    @Override public String getKey() {
  62.119 +        if (key == null || "".equals(key)) {
  62.120 +            if (componentName == null || "".equals(componentName)) {
  62.121 +                return getName();
  62.122 +            } else {
  62.123 +                return "\"" + componentName + "\"";
  62.124 +            }
  62.125 +        } else {
  62.126 +            return key;
  62.127 +        }
  62.128 +    }
  62.129 +
  62.130 +    @Override public String getTitle() {
  62.131 +        if (title == null || "".equals(title)) {
  62.132 +            if (componentName == null || "".equals(componentName)) {
  62.133 +                return getName();
  62.134 +            } else {
  62.135 +                return componentName;
  62.136 +            }
  62.137 +        } else {
  62.138 +            return title;
  62.139 +        }
  62.140 +    }
  62.141 +}
    63.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    63.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIDefault.java	Wed Apr 29 00:27:46 2009 -0700
    63.3 @@ -0,0 +1,116 @@
    63.4 +/*
    63.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    63.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    63.7 + *
    63.8 + * This code is free software; you can redistribute it and/or modify it
    63.9 + * under the terms of the GNU General Public License version 2 only, as
   63.10 + * published by the Free Software Foundation.  Sun designates this
   63.11 + * particular file as subject to the "Classpath" exception as provided
   63.12 + * by Sun in the LICENSE file that accompanied this code.
   63.13 + *
   63.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   63.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   63.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   63.17 + * version 2 for more details (a copy is included in the LICENSE file that
   63.18 + * accompanied this code).
   63.19 + *
   63.20 + * You should have received a copy of the GNU General Public License version
   63.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   63.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   63.23 + *
   63.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   63.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   63.26 + * have any questions.
   63.27 + */
   63.28 +package org.jdesktop.synthdesigner.synthmodel;
   63.29 +
   63.30 +import org.jdesktop.beans.AbstractBean;
   63.31 +import org.jdesktop.swingx.designer.utils.HasUIDefaults;
   63.32 +import org.jibx.runtime.IUnmarshallingContext;
   63.33 +
   63.34 +import javax.swing.UIDefaults;
   63.35 +
   63.36 +/**
   63.37 + * Represents an entry in the UI defaults table.
   63.38 + *
   63.39 + * @author  Richard Bair
   63.40 + * @author  Jasper Potts
   63.41 + */
   63.42 +public class UIDefault<T> extends AbstractBean implements HasUIDefaults {
   63.43 +    private String name;
   63.44 +    private T value;
   63.45 +    /**
   63.46 +     * This is a local UIDefaults that contains all the UIDefaults in the synth model. It is kept uptodate by the
   63.47 +     * indervidual UIDefaults nodes
   63.48 +     */
   63.49 +    private transient UIDefaults modelDefaults = null;
   63.50 +
   63.51 +    public UIDefault() {
   63.52 +    }
   63.53 +
   63.54 +    public UIDefault(String name, T value) {
   63.55 +        this.name = name;
   63.56 +        this.value = value;
   63.57 +    }
   63.58 +
   63.59 +    public UIDefault(String name, T value, UIDefaults modelDefaults) {
   63.60 +        this.name = name;
   63.61 +        this.value = value;
   63.62 +        this.modelDefaults = modelDefaults;
   63.63 +    }
   63.64 +
   63.65 +    // =================================================================================================================
   63.66 +    // JIBX Methods
   63.67 +
   63.68 +    /**
   63.69 +     * Called by JIBX after all fields have been set
   63.70 +     *
   63.71 +     * @param context The JIBX Unmarshalling Context
   63.72 +     */
   63.73 +    private void postSet(IUnmarshallingContext context) {
   63.74 +        // walk up till we get synth model
   63.75 +        for (int i = 0; i < context.getStackDepth(); i++) {
   63.76 +            if (context.getStackObject(i) instanceof HasUIDefaults) {
   63.77 +                modelDefaults = ((HasUIDefaults) context.getStackObject(i)).getUiDefaults();
   63.78 +                if (modelDefaults != null) break;
   63.79 +            }
   63.80 +        }
   63.81 +    }
   63.82 +
   63.83 +    // =================================================================================================================
   63.84 +    // Bean Methods
   63.85 +
   63.86 +    /**
   63.87 +     * Get the local UIDefaults that contains all the UIDefaults in the synth model. It is kept uptodate by the
   63.88 +     * indervidual UIDefaults nodes
   63.89 +     *
   63.90 +     * @return The UIDefaults for the synth model
   63.91 +     */
   63.92 +    public UIDefaults getUiDefaults() {
   63.93 +        return modelDefaults;
   63.94 +    }
   63.95 +
   63.96 +    public void setValue(T t) {
   63.97 +        T old = this.value;
   63.98 +        this.value = t;
   63.99 +        firePropertyChange("value", old, getValue());
  63.100 +    }
  63.101 +
  63.102 +    public T getValue() {
  63.103 +        return value;
  63.104 +    }
  63.105 +
  63.106 +    public final String getName() {
  63.107 +        return name;
  63.108 +    }
  63.109 +
  63.110 +    public void setName(String name) {
  63.111 +        String old = this.name;
  63.112 +        firePropertyChange("name", old, name);
  63.113 +        this.name = name;
  63.114 +        // update model defaults
  63.115 +        if (old != null) modelDefaults.remove(old);
  63.116 +        modelDefaults.put(getName(), getValue());
  63.117 +    }
  63.118 +
  63.119 +}
    64.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    64.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIDimension.java	Wed Apr 29 00:27:46 2009 -0700
    64.3 @@ -0,0 +1,48 @@
    64.4 +/*
    64.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    64.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    64.7 + *
    64.8 + * This code is free software; you can redistribute it and/or modify it
    64.9 + * under the terms of the GNU General Public License version 2 only, as
   64.10 + * published by the Free Software Foundation.  Sun designates this
   64.11 + * particular file as subject to the "Classpath" exception as provided
   64.12 + * by Sun in the LICENSE file that accompanied this code.
   64.13 + *
   64.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   64.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   64.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   64.17 + * version 2 for more details (a copy is included in the LICENSE file that
   64.18 + * accompanied this code).
   64.19 + *
   64.20 + * You should have received a copy of the GNU General Public License version
   64.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   64.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   64.23 + *
   64.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   64.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   64.26 + * have any questions.
   64.27 + */
   64.28 +package org.jdesktop.synthdesigner.synthmodel;
   64.29 +
   64.30 +import java.awt.Dimension;
   64.31 +
   64.32 +/**
   64.33 + * UIDimension
   64.34 + *
   64.35 + * @author  Richard Bair
   64.36 + * @author  Jasper Potts
   64.37 + */
   64.38 +public class UIDimension extends UIDefault<Dimension> {
   64.39 +    public UIDimension() {
   64.40 +    }
   64.41 +
   64.42 +    public Dimension getDimension() {
   64.43 +        return super.getValue();
   64.44 +    }
   64.45 +
   64.46 +    public void setDimension(Dimension d) {
   64.47 +        Dimension old = getDimension();
   64.48 +        super.setValue(d);
   64.49 +        firePropertyChange("dimension", old, d);
   64.50 +    }
   64.51 +}
    65.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    65.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIFont.java	Wed Apr 29 00:27:46 2009 -0700
    65.3 @@ -0,0 +1,79 @@
    65.4 +/*
    65.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    65.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    65.7 + *
    65.8 + * This code is free software; you can redistribute it and/or modify it
    65.9 + * under the terms of the GNU General Public License version 2 only, as
   65.10 + * published by the Free Software Foundation.  Sun designates this
   65.11 + * particular file as subject to the "Classpath" exception as provided
   65.12 + * by Sun in the LICENSE file that accompanied this code.
   65.13 + *
   65.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   65.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   65.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   65.17 + * version 2 for more details (a copy is included in the LICENSE file that
   65.18 + * accompanied this code).
   65.19 + *
   65.20 + * You should have received a copy of the GNU General Public License version
   65.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   65.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   65.23 + *
   65.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   65.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   65.26 + * have any questions.
   65.27 + */
   65.28 +package org.jdesktop.synthdesigner.synthmodel;
   65.29 +
   65.30 +import java.awt.Font;
   65.31 +import org.jdesktop.swingx.designer.font.Typeface;
   65.32 +import java.util.Arrays;
   65.33 +import java.util.List;
   65.34 +import java.util.ArrayList;
   65.35 +import javax.swing.UIDefaults;
   65.36 +
   65.37 +/**
   65.38 + * Represents a single font entry in the UIDefaults table. Each UIFont takes a
   65.39 + * list of Typefaces. These typefaces are listed by order of preference. Thus,
   65.40 + * when putting a font into UIDefaults, the code can check whether each font
   65.41 + * exists, and when it finds the first font that does, insert it.
   65.42 + *
   65.43 + * @author  Richard Bair
   65.44 + * @author  Jasper Potts
   65.45 + */
   65.46 +public class UIFont extends UIDefault<List<Typeface>> implements Cloneable {
   65.47 +
   65.48 +    private void updateUIDefaults() {
   65.49 +        if (getUiDefaults() != null) {
   65.50 +            for (Typeface t : getFonts()) {
   65.51 +                if (t.isFontSupported()) {
   65.52 +                    getUiDefaults().put(getName(), t.getFont());
   65.53 +                    return;
   65.54 +                }
   65.55 +            }
   65.56 +        }
   65.57 +
   65.58 +        //TODO must not have found any. Default to the Default platform font
   65.59 +        getUiDefaults().put(getName(), new Font("Arial", Font.PLAIN, 12));
   65.60 +    }
   65.61 +
   65.62 +    public UIFont() {
   65.63 +        setValue(new ArrayList<Typeface>());
   65.64 +    }
   65.65 +
   65.66 +    public UIFont(String id, List<Typeface> values, UIDefaults defaults) {
   65.67 +        super(id, values, defaults);
   65.68 +        updateUIDefaults();
   65.69 +    }
   65.70 +
   65.71 +    public UIFont(String id, Font font, UIDefaults modelDefaults) {
   65.72 +        this(id, Arrays.asList(new Typeface(font, modelDefaults)), modelDefaults);
   65.73 +    }
   65.74 +
   65.75 +    public List<Typeface> getFonts() {
   65.76 +        return super.getValue();
   65.77 +    }
   65.78 +
   65.79 +    private void setFonts(List<Typeface> values) {
   65.80 +        super.setValue(values);
   65.81 +    }
   65.82 +}
    66.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    66.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIIcon.java	Wed Apr 29 00:27:46 2009 -0700
    66.3 @@ -0,0 +1,49 @@
    66.4 +/*
    66.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    66.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    66.7 + *
    66.8 + * This code is free software; you can redistribute it and/or modify it
    66.9 + * under the terms of the GNU General Public License version 2 only, as
   66.10 + * published by the Free Software Foundation.  Sun designates this
   66.11 + * particular file as subject to the "Classpath" exception as provided
   66.12 + * by Sun in the LICENSE file that accompanied this code.
   66.13 + *
   66.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   66.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   66.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   66.17 + * version 2 for more details (a copy is included in the LICENSE file that
   66.18 + * accompanied this code).
   66.19 + *
   66.20 + * You should have received a copy of the GNU General Public License version
   66.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   66.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   66.23 + *
   66.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   66.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   66.26 + * have any questions.
   66.27 + */
   66.28 +package org.jdesktop.synthdesigner.synthmodel;
   66.29 +
   66.30 +import javax.swing.Icon;
   66.31 +
   66.32 +/**
   66.33 + * UIIcon
   66.34 + *
   66.35 + * @author  Richard Bair
   66.36 + * @author  Jasper Potts
   66.37 + */
   66.38 +public class UIIcon extends UIDefault<Icon> {
   66.39 +
   66.40 +    public UIIcon() {
   66.41 +    }
   66.42 +
   66.43 +    public Icon getIcon() {
   66.44 +        return super.getValue();
   66.45 +    }
   66.46 +
   66.47 +    public void setIcon(Icon i) {
   66.48 +        Icon old = getIcon();
   66.49 +        super.setValue(i);
   66.50 +        firePropertyChange("icon", old, i);
   66.51 +    }
   66.52 +}
    67.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    67.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIIconRegion.java	Wed Apr 29 00:27:46 2009 -0700
    67.3 @@ -0,0 +1,55 @@
    67.4 +/*
    67.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    67.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    67.7 + *
    67.8 + * This code is free software; you can redistribute it and/or modify it
    67.9 + * under the terms of the GNU General Public License version 2 only, as
   67.10 + * published by the Free Software Foundation.  Sun designates this
   67.11 + * particular file as subject to the "Classpath" exception as provided
   67.12 + * by Sun in the LICENSE file that accompanied this code.
   67.13 + *
   67.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   67.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   67.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   67.17 + * version 2 for more details (a copy is included in the LICENSE file that
   67.18 + * accompanied this code).
   67.19 + *
   67.20 + * You should have received a copy of the GNU General Public License version
   67.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   67.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   67.23 + *
   67.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   67.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   67.26 + * have any questions.
   67.27 + */
   67.28 +package org.jdesktop.synthdesigner.synthmodel;
   67.29 +
   67.30 +/**
   67.31 + * A UIRegion subclass which is used for generating icons. For example, JRadioButton and JCheckBox represent themselves
   67.32 + * mainly via their icons. However, from the designers perspective, the main design isn't an "icon", but just a region
   67.33 + * on the button.
   67.34 + * <p/>
   67.35 + * That type of region is represented by a UIIconRegion. UIIconRegion contains a string which references the UIDefault
   67.36 + * value associated with this icon. For example, RadioButton.icon.
   67.37 + *
   67.38 + * @author  Richard Bair
   67.39 + * @author  Jasper Potts
   67.40 + */
   67.41 +public class UIIconRegion extends UIRegion {
   67.42 +    /** The UiDefaults key which this icon should be stored for basic LaF to find it. This is absolute */
   67.43 +    private String basicKey = null;
   67.44 +
   67.45 +    public UIIconRegion() {
   67.46 +        super();
   67.47 +    }
   67.48 +
   67.49 +    public String getBasicKey() {
   67.50 +        return basicKey;
   67.51 +    }
   67.52 +
   67.53 +    public void setBasicKey(String basicKey) {
   67.54 +        String old = getBasicKey();
   67.55 +        this.basicKey = basicKey;
   67.56 +        firePropertyChange("basicKey",old,getBasicKey());
   67.57 +    }
   67.58 +}
    68.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    68.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIInsets.java	Wed Apr 29 00:27:46 2009 -0700
    68.3 @@ -0,0 +1,62 @@
    68.4 +/*
    68.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    68.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    68.7 + *
    68.8 + * This code is free software; you can redistribute it and/or modify it
    68.9 + * under the terms of the GNU General Public License version 2 only, as
   68.10 + * published by the Free Software Foundation.  Sun designates this
   68.11 + * particular file as subject to the "Classpath" exception as provided
   68.12 + * by Sun in the LICENSE file that accompanied this code.
   68.13 + *
   68.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   68.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   68.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   68.17 + * version 2 for more details (a copy is included in the LICENSE file that
   68.18 + * accompanied this code).
   68.19 + *
   68.20 + * You should have received a copy of the GNU General Public License version
   68.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   68.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   68.23 + *
   68.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   68.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   68.26 + * have any questions.
   68.27 + */
   68.28 +package org.jdesktop.synthdesigner.synthmodel;
   68.29 +
   68.30 +import java.awt.Insets;
   68.31 +
   68.32 +/**
   68.33 + * UIInsets
   68.34 + *
   68.35 + * @author  Richard Bair
   68.36 + * @author  Jasper Potts
   68.37 + */
   68.38 +public class UIInsets extends UIDefault<Insets> {
   68.39 +
   68.40 +    public UIInsets() {
   68.41 +    }
   68.42 +
   68.43 +    public UIInsets(String id, Insets value) {
   68.44 +        super(id, value);
   68.45 +    }
   68.46 +
   68.47 +    public Insets getInsets() {
   68.48 +        return super.getValue();
   68.49 +    }
   68.50 +
   68.51 +    public void setInsets(Insets i) {
   68.52 +        Insets old = getInsets();
   68.53 +        super.setValue(i);
   68.54 +        firePropertyChange("insets", old, i);
   68.55 +        // update model defaults
   68.56 +        getUiDefaults().put(getName(), i);
   68.57 +    }
   68.58 +
   68.59 +
   68.60 +    public String toString() {
   68.61 +        return "UiInset(" + getName() + ")" +
   68.62 +                ((getInsets() == null) ? " NONE" : "(" + getInsets().top + "," + getInsets().left + "," +
   68.63 +                        getInsets().bottom + "," + getInsets().right + ")");
   68.64 +    }
   68.65 +}
    69.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    69.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIPaint.java	Wed Apr 29 00:27:46 2009 -0700
    69.3 @@ -0,0 +1,84 @@
    69.4 +/*
    69.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    69.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    69.7 + *
    69.8 + * This code is free software; you can redistribute it and/or modify it
    69.9 + * under the terms of the GNU General Public License version 2 only, as
   69.10 + * published by the Free Software Foundation.  Sun designates this
   69.11 + * particular file as subject to the "Classpath" exception as provided
   69.12 + * by Sun in the LICENSE file that accompanied this code.
   69.13 + *
   69.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   69.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   69.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   69.17 + * version 2 for more details (a copy is included in the LICENSE file that
   69.18 + * accompanied this code).
   69.19 + *
   69.20 + * You should have received a copy of the GNU General Public License version
   69.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   69.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   69.23 + *
   69.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   69.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   69.26 + * have any questions.
   69.27 + */
   69.28 +package org.jdesktop.synthdesigner.synthmodel;
   69.29 +
   69.30 +import org.jdesktop.swingx.designer.paint.Matte;
   69.31 +import org.jdesktop.swingx.designer.paint.PaintModel;
   69.32 +
   69.33 +import java.beans.PropertyChangeEvent;
   69.34 +import java.beans.PropertyChangeListener;
   69.35 +
   69.36 +/**
   69.37 + * UIPaint
   69.38 + *
   69.39 + * @author  Richard Bair
   69.40 + * @author  Jasper Potts
   69.41 + */
   69.42 +public class UIPaint extends UIDefault<PaintModel> {
   69.43 +
   69.44 +    /** Listener to keep model UiDefaults up to date for this UiPaint */
   69.45 +    private PropertyChangeListener matteListener = new PropertyChangeListener() {
   69.46 +        public void propertyChange(PropertyChangeEvent evt) {
   69.47 +            PaintModel paintModel = getValue();
   69.48 +            if (paintModel instanceof Matte) {
   69.49 +                getUiDefaults().put(getName(), ((Matte) paintModel).getColor());
   69.50 +            }
   69.51 +            // propogate the paint change up as PaintModel is a mutable object
   69.52 +            if (evt.getPropertyName().equals("paint")) {
   69.53 +                firePropertyChange("paint", null, getPaint());
   69.54 +                firePropertyChange("value", null, getPaint());
   69.55 +            }
   69.56 +        }
   69.57 +    };
   69.58 +
   69.59 +    public UIPaint() {}
   69.60 +
   69.61 +    public UIPaint(String id, PaintModel value) {
   69.62 +        super(id, value, (value instanceof Matte) ? ((Matte) value).getUiDefaults() : null);
   69.63 +        // update model defaults
   69.64 +        if (value instanceof Matte) {
   69.65 +            Matte matte = (Matte) value;
   69.66 +            if (getUiDefaults() != null) getUiDefaults().put(getName(), matte.getColor());
   69.67 +            matte.addPropertyChangeListener(matteListener);
   69.68 +        }
   69.69 +    }
   69.70 +
   69.71 +    public PaintModel getPaint() {
   69.72 +        return super.getValue();
   69.73 +    }
   69.74 +
   69.75 +    public void setPaint(PaintModel c) {
   69.76 +        PaintModel old = getPaint();
   69.77 +        if (old instanceof Matte) old.removePropertyChangeListener(matteListener);
   69.78 +        super.setValue(c);
   69.79 +        firePropertyChange("paint", old, c);
   69.80 +        // update model defaults
   69.81 +        if (c instanceof Matte) {
   69.82 +            Matte matte = (Matte) c;
   69.83 +            getUiDefaults().put(getName(), matte.getColor());
   69.84 +            matte.addPropertyChangeListener(matteListener);
   69.85 +        }
   69.86 +    }
   69.87 +}
    70.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    70.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIProperty.java	Wed Apr 29 00:27:46 2009 -0700
    70.3 @@ -0,0 +1,85 @@
    70.4 +/*
    70.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    70.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    70.7 + *
    70.8 + * This code is free software; you can redistribute it and/or modify it
    70.9 + * under the terms of the GNU General Public License version 2 only, as
   70.10 + * published by the Free Software Foundation.  Sun designates this
   70.11 + * particular file as subject to the "Classpath" exception as provided
   70.12 + * by Sun in the LICENSE file that accompanied this code.
   70.13 + *
   70.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   70.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   70.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   70.17 + * version 2 for more details (a copy is included in the LICENSE file that
   70.18 + * accompanied this code).
   70.19 + *
   70.20 + * You should have received a copy of the GNU General Public License version
   70.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   70.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   70.23 + *
   70.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   70.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   70.26 + * have any questions.
   70.27 + */
   70.28 +package org.jdesktop.synthdesigner.synthmodel;
   70.29 +
   70.30 +import org.jdesktop.beans.AbstractBean;
   70.31 +
   70.32 +/**
   70.33 + * UIProperty
   70.34 + *
   70.35 + * @author  Richard Bair
   70.36 + * @author  Jasper Potts
   70.37 + */
   70.38 +public class UIProperty extends AbstractBean {
   70.39 +    public static enum PropertyType {
   70.40 +        BOOLEAN, INT, FLOAT, DOUBLE, STRING, FONT, COLOR, INSETS, DIMENSION, BORDER
   70.41 +    }
   70.42 +
   70.43 +    private String name;
   70.44 +    private PropertyType type;
   70.45 +    private Object value;
   70.46 +
   70.47 +    protected UIProperty() {
   70.48 +    }
   70.49 +
   70.50 +    public UIProperty(String name, PropertyType type, Object value) {
   70.51 +        this.name = name;
   70.52 +        this.type = type;
   70.53 +        this.value = value;
   70.54 +    }
   70.55 +
   70.56 +    // =================================================================================================================
   70.57 +    // Bean Methods
   70.58 +
   70.59 +    public String getName() {
   70.60 +        return name;
   70.61 +    }
   70.62 +
   70.63 +    public void setName(String name) {
   70.64 +        String old = getName();
   70.65 +        this.name = name;
   70.66 +        firePropertyChange("name", old, getName());
   70.67 +    }
   70.68 +
   70.69 +    public PropertyType getType() {
   70.70 +        return type;
   70.71 +    }
   70.72 +
   70.73 +    public void setType(PropertyType type) {
   70.74 +        PropertyType old = getType();
   70.75 +        this.type = type;
   70.76 +        firePropertyChange("type", old, getType());
   70.77 +    }
   70.78 +
   70.79 +    public Object getValue() {
   70.80 +        return value;
   70.81 +    }
   70.82 +
   70.83 +    public void setValue(Object value) {
   70.84 +        Object old = getValue();
   70.85 +        this.value = value;
   70.86 +        firePropertyChange("value", old, getValue());
   70.87 +    }
   70.88 +}
    71.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    71.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIRegion.java	Wed Apr 29 00:27:46 2009 -0700
    71.3 @@ -0,0 +1,253 @@
    71.4 +/*
    71.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    71.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    71.7 + *
    71.8 + * This code is free software; you can redistribute it and/or modify it
    71.9 + * under the terms of the GNU General Public License version 2 only, as
   71.10 + * published by the Free Software Foundation.  Sun designates this
   71.11 + * particular file as subject to the "Classpath" exception as provided
   71.12 + * by Sun in the LICENSE file that accompanied this code.
   71.13 + *
   71.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   71.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   71.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   71.17 + * version 2 for more details (a copy is included in the LICENSE file that
   71.18 + * accompanied this code).
   71.19 + *
   71.20 + * You should have received a copy of the GNU General Public License version
   71.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   71.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   71.23 + *
   71.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   71.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   71.26 + * have any questions.
   71.27 + */
   71.28 +package org.jdesktop.synthdesigner.synthmodel;
   71.29 +
   71.30 +import org.jdesktop.beans.AbstractBean;
   71.31 +import org.jdesktop.swingx.designer.utils.HasUIDefaults;
   71.32 +import org.jibx.runtime.IUnmarshallingContext;
   71.33 +
   71.34 +import javax.swing.UIDefaults;
   71.35 +import java.awt.Insets;
   71.36 +import java.beans.PropertyChangeEvent;
   71.37 +import java.beans.PropertyChangeListener;
   71.38 +import java.util.List;
   71.39 +import java.util.ArrayList;
   71.40 +
   71.41 +/**
   71.42 + * Represents a "Region" in synth, which also includes entire components.
   71.43 + *
   71.44 + * @author  Richard Bair
   71.45 + * @author  Jasper Potts
   71.46 + */
   71.47 +public class UIRegion extends AbstractBean implements HasUIDefaults, HasUIStyle {
   71.48 +    private String name;//the code-wise name of the region
   71.49 +    protected String key; //the UIdefaults key for this region
   71.50 +    protected String title; //the user friendly name/title of this region
   71.51 +    /** List of background states */
   71.52 +    private List<UIState> backgroundStates;
   71.53 +    /** List of foreground states */
   71.54 +    private List<UIState> foregroundStates;
   71.55 +    /** List of border states */
   71.56 +    private List<UIState> borderStates;
   71.57 +    private UIStyle style = new UIStyle();
   71.58 +    protected Insets contentMargins = new Insets(0, 0, 0, 0);
   71.59 +    /** Sub regions, if any */
   71.60 +    private List<UIRegion> subRegions;
   71.61 +
   71.62 +    //together with name, these two fields allow me to reconstruct, in
   71.63 +    //code, a synth Region, including a custom Region, if you make one.
   71.64 +    private String ui;
   71.65 +    private boolean subregion;
   71.66 +    /**
   71.67 +     * This is a local UIDefaults that contains all the UIDefaults in the synth model. It is kept uptodate by the
   71.68 +     * indervidual UIDefaults nodes
   71.69 +     */
   71.70 +    private transient UIDefaults modelDefaults = null;
   71.71 +
   71.72 +    private UIRegion region; //the region that this region belongs to
   71.73 +
   71.74 +    // =================================================================================================================
   71.75 +    // Constructors
   71.76 +
   71.77 +    /** no-args contructor for JIBX */
   71.78 +    protected UIRegion() {
   71.79 +        subRegions = new ArrayList<UIRegion>();
   71.80 +        backgroundStates = new ArrayList<UIState>();
   71.81 +        foregroundStates = new ArrayList<UIState>();
   71.82 +        borderStates = new ArrayList<UIState>();
   71.83 +        style.addPropertyChangeListener(new PropertyChangeListener() {
   71.84 +            public void propertyChange(PropertyChangeEvent evt) {
   71.85 +                firePropertyChange("style." + evt.getPropertyName(), evt.getOldValue(), evt.getNewValue());
   71.86 +            }
   71.87 +        });
   71.88 +    }
   71.89 +
   71.90 +    public UIRegion(String name, UIRegion... subRegions) {
   71.91 +        this(name, null, true, subRegions);
   71.92 +    }
   71.93 +
   71.94 +    public UIRegion(String name, String ui, UIRegion... subRegions) {
   71.95 +        this(name, ui, false, subRegions);
   71.96 +    }
   71.97 +
   71.98 +    public UIRegion(String name, String ui, boolean subregion, UIRegion... subRegions) {
   71.99 +        this();
  71.100 +        this.name = name;
  71.101 +        this.ui = ui;
  71.102 +        this.subregion = subregion;
  71.103 +        if (subRegions != null) {
  71.104 +            for (UIRegion r : subRegions) {
  71.105 +                if (r != null) {
  71.106 +                    this.subRegions.add(r);
  71.107 +                    r.getStyle().setParentStyle(getStyle());
  71.108 +                }
  71.109 +            }
  71.110 +        }
  71.111 +    }
  71.112 +
  71.113 +    // =================================================================================================================
  71.114 +    // JIBX Methods
  71.115 +
  71.116 +    /**
  71.117 +     * Called by JIBX after all fields have been set
  71.118 +     *
  71.119 +     * @param context The JIBX Unmarshalling Context
  71.120 +     */
  71.121 +    private void preSet(IUnmarshallingContext context) {
  71.122 +        // walk up till we get synth model
  71.123 +        for (int i = 0; i < context.getStackDepth(); i++) {
  71.124 +            if (context.getStackObject(i) instanceof HasUIDefaults) {
  71.125 +                modelDefaults = ((HasUIDefaults) context.getStackObject(i)).getUiDefaults();
  71.126 +                if (modelDefaults != null) break;
  71.127 +            }
  71.128 +        }
  71.129 +        for (int i = 0; i < context.getStackDepth(); i++) {
  71.130 +            if (context.getStackObject(i) instanceof UIRegion && context.getStackObject(i) != this) {
  71.131 +                region = (UIRegion) context.getStackObject(i);
  71.132 +                break;
  71.133 +            }
  71.134 +        }
  71.135 +    }
  71.136 +
  71.137 +    // =================================================================================================================
  71.138 +    // Bean Methods
  71.139 +
  71.140 +    public Insets getContentMargins() {
  71.141 +        return contentMargins;
  71.142 +    }
  71.143 +
  71.144 +    public void setContentMargins(Insets contentMargins) {
  71.145 +        Insets old = getContentMargins();
  71.146 +        this.contentMargins = contentMargins;
  71.147 +        firePropertyChange("contentMargins", old, getContentMargins());
  71.148 +    }
  71.149 +
  71.150 +    void setRegion(UIRegion r) {
  71.151 +        this.region = r;
  71.152 +    }
  71.153 +
  71.154 +    public UIRegion getRegion() {
  71.155 +        return region;
  71.156 +    }
  71.157 +
  71.158 +    /**
  71.159 +     * Get the local UIDefaults that contains all the UIDefaults in the synth model. It is kept uptodate by the
  71.160 +     * indervidual UIDefaults nodes
  71.161 +     *
  71.162 +     * @return The UIDefaults for the synth model
  71.163 +     */
  71.164 +    public UIDefaults getUiDefaults() {
  71.165 +        return modelDefaults;
  71.166 +    }
  71.167 +
  71.168 +    public String getName() {
  71.169 +        return name;
  71.170 +    }
  71.171 +
  71.172 +    public final UIRegion[] getSubRegions() {
  71.173 +        return subRegions.toArray(new UIRegion[0]);
  71.174 +    }
  71.175 +
  71.176 +    public final UIState[] getBackgroundStates() {
  71.177 +        return backgroundStates.toArray(new UIState[0]);
  71.178 +    }
  71.179 +
  71.180 +    public final UIState[] getForegroundStates() {
  71.181 +        return foregroundStates.toArray(new UIState[0]);
  71.182 +    }
  71.183 +
  71.184 +    public final UIState[] getBorderStates() {
  71.185 +        return borderStates.toArray(new UIState[0]);
  71.186 +    }
  71.187 +
  71.188 +    public UIStyle getStyle() {
  71.189 +        return style;
  71.190 +    }
  71.191 +
  71.192 +    public final boolean isSubRegion() {
  71.193 +        return subregion;
  71.194 +    }
  71.195 +
  71.196 +    public final String getUi() {
  71.197 +        return ui;
  71.198 +    }
  71.199 +
  71.200 +    public void addBackgroundState(UIState state) {
  71.201 +        // check if we already have that state
  71.202 +        for (UIState uiState : backgroundStates) {
  71.203 +            if (uiState.getName().equals(state.getName())) return;
  71.204 +        }
  71.205 +        backgroundStates.add(state);
  71.206 +        state.setRegion(this);
  71.207 +        firePropertyChange("backgroundStates", null, backgroundStates);
  71.208 +    }
  71.209 +
  71.210 +    public void removeBackgroundState(UIState state) {
  71.211 +        if (backgroundStates.remove(state)) {
  71.212 +            firePropertyChange("backgroundStates", null, backgroundStates);
  71.213 +        }
  71.214 +    }
  71.215 +
  71.216 +    public void addForegroundState(UIState state) {
  71.217 +        // check if we already have that state
  71.218 +        for (UIState uiState : foregroundStates) {
  71.219 +            if (uiState.getName().equals(state.getName())) return;
  71.220 +        }
  71.221 +        foregroundStates.add(state);
  71.222 +        state.setRegion(this);
  71.223 +        firePropertyChange("foregroundStates", null, foregroundStates);
  71.224 +    }
  71.225 +
  71.226 +    public void removeForegroundState(UIState state) {
  71.227 +        if (foregroundStates.remove(state)) {
  71.228 +            firePropertyChange("foregroundStates", null, foregroundStates);
  71.229 +        }
  71.230 +    }
  71.231 +
  71.232 +    public void addBorderState(UIState state) {
  71.233 +        // check if we already have that state
  71.234 +        for (UIState uiState : borderStates) {
  71.235 +            if (uiState.getName().equals(state.getName())) return;
  71.236 +        }
  71.237 +        borderStates.add(state);
  71.238 +        state.setRegion(this);
  71.239 +        firePropertyChange("borderStates", null, borderStates);
  71.240 +    }
  71.241 +
  71.242 +    public void removeBorderState(UIState state) {
  71.243 +        if (borderStates.remove(state)) {
  71.244 +            firePropertyChange("borderStates", null, borderStates);
  71.245 +        }
  71.246 +    }
  71.247 +
  71.248 +
  71.249 +    public String getKey() {
  71.250 +        return key == null || "".equals(key) ? name : key;
  71.251 +    }
  71.252 +
  71.253 +    public String getTitle() {
  71.254 +        return title == null || "".equals(title) ? name : title;
  71.255 +    }
  71.256 +}
    72.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    72.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIState.java	Wed Apr 29 00:27:46 2009 -0700
    72.3 @@ -0,0 +1,298 @@
    72.4 +/*
    72.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    72.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    72.7 + *
    72.8 + * This code is free software; you can redistribute it and/or modify it
    72.9 + * under the terms of the GNU General Public License version 2 only, as
   72.10 + * published by the Free Software Foundation.  Sun designates this
   72.11 + * particular file as subject to the "Classpath" exception as provided
   72.12 + * by Sun in the LICENSE file that accompanied this code.
   72.13 + *
   72.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   72.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   72.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   72.17 + * version 2 for more details (a copy is included in the LICENSE file that
   72.18 + * accompanied this code).
   72.19 + *
   72.20 + * You should have received a copy of the GNU General Public License version
   72.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   72.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   72.23 + *
   72.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   72.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   72.26 + * have any questions.
   72.27 + */
   72.28 +package org.jdesktop.synthdesigner.synthmodel;
   72.29 +
   72.30 +import org.jdesktop.beans.AbstractBean;
   72.31 +import org.jdesktop.swingx.designer.Canvas;
   72.32 +import org.jdesktop.swingx.designer.utils.HasPath;
   72.33 +import org.jdesktop.swingx.designer.utils.HasUIDefaults;
   72.34 +import org.jibx.runtime.IUnmarshallingContext;
   72.35 +
   72.36 +import javax.swing.UIDefaults;
   72.37 +import java.beans.PropertyChangeEvent;
   72.38 +import java.beans.PropertyChangeListener;
   72.39 +import java.io.File;
   72.40 +import java.util.ArrayList;
   72.41 +import java.util.Arrays;
   72.42 +import java.util.Collections;
   72.43 +import java.util.Iterator;
   72.44 +import java.util.List;
   72.45 +
   72.46 +/**
   72.47 + * Represents a State in the Synth LAF.
   72.48 + *
   72.49 + * @author  Richard Bair
   72.50 + * @author  Jasper Potts
   72.51 + */
   72.52 +public class UIState extends AbstractBean implements HasUIStyle, HasPath {
   72.53 +
   72.54 +    private List<String> stateKeys;
   72.55 +    private boolean inverted; //indicates whether to invert the meaning of the 9-square stretching insets
   72.56 +    /** A cached string representing the list of stateKeys deliminated with "+" */
   72.57 +    private String cachedName = null;
   72.58 +    private Canvas canvas;
   72.59 +    private UIStyle style;
   72.60 +    /** the region that this state belongs to */
   72.61 +    private UIRegion region;
   72.62 +    /**
   72.63 +     * This is a local UIDefaults that contains all the UIDefaults in the synth model. It is kept uptodate by the
   72.64 +     * indervidual UIDefaults nodes
   72.65 +     */
   72.66 +    private transient UIDefaults modelDefaults = null;
   72.67 +
   72.68 +    // =================================================================================================================
   72.69 +    // Contructors
   72.70 +
   72.71 +    public UIState() {
   72.72 +        // Create state keys as event list so model changes are propogated
   72.73 +        stateKeys = new ArrayList<String>();
   72.74 +    }
   72.75 +
   72.76 +    public UIState(SynthModel model, UIRegion parentRegion, String... stateTypeKeys) {
   72.77 +        // Create state keys as event list so model changes are propogated
   72.78 +        stateKeys = new ArrayList<String>();
   72.79 +        this.stateKeys.addAll(Arrays.asList(stateTypeKeys));
   72.80 +        //
   72.81 +        modelDefaults = model.getUiDefaults();
   72.82 +        region = parentRegion;
   72.83 +        // create new canvas
   72.84 +        canvas = new Canvas(100, 30);
   72.85 +        canvas.setUiDefaults(modelDefaults);
   72.86 +        String canvasPath = getPath();
   72.87 +        canvas.setResourcesDir(new File(model.getResourcesDir(), canvasPath));
   72.88 +        canvas.setTemplatesDir(new File(model.getTemplatesDir(), canvasPath));
   72.89 +        canvas.setImagesDir(new File(model.getImagesDir(), canvasPath));
   72.90 +        canvas.addPropertyChangeListener(new PropertyChangeListener() {
   72.91 +            public void propertyChange(PropertyChangeEvent evt) {
   72.92 +                firePropertyChange("canvas." + evt.getPropertyName(), evt.getOldValue(), evt.getNewValue());
   72.93 +            }
   72.94 +        });
   72.95 +        // create new style
   72.96 +        style = new UIStyle();
   72.97 +        style.setParentStyle(region.getStyle());
   72.98 +        style.addPropertyChangeListener(new PropertyChangeListener() {
   72.99 +            public void propertyChange(PropertyChangeEvent evt) {
  72.100 +                firePropertyChange("style." + evt.getPropertyName(), evt.getOldValue(), evt.getNewValue());
  72.101 +            }
  72.102 +        });
  72.103 +    }
  72.104 +
  72.105 +    // =================================================================================================================
  72.106 +    // JIBX Methods
  72.107 +
  72.108 +    /**
  72.109 +     * JIBX needs this
  72.110 +     *
  72.111 +     * @param stateKeys The new list of states
  72.112 +     */
  72.113 +    private void setStateKeys(List<String> stateKeys) {
  72.114 +        if (stateKeys != this.stateKeys) {
  72.115 +            this.stateKeys.clear();
  72.116 +            this.stateKeys.addAll(stateKeys);
  72.117 +        }
  72.118 +    }
  72.119 +
  72.120 +    /**
  72.121 +     * Called by JIBX after all fields have been set
  72.122 +     *
  72.123 +     * @param context The JIBX Unmarshalling Context
  72.124 +     */
  72.125 +    private void preSet(IUnmarshallingContext context) {
  72.126 +        // walk up till we get synth model
  72.127 +        for (int i = 0; i < context.getStackDepth(); i++) {
  72.128 +            if (context.getStackObject(i) instanceof HasUIDefaults) {
  72.129 +                modelDefaults = ((HasUIDefaults) context.getStackObject(i)).getUiDefaults();
  72.130 +                if (modelDefaults != null) break;
  72.131 +            }
  72.132 +        }
  72.133 +        for (int i = 0; i < context.getStackDepth(); i++) {
  72.134 +            if (context.getStackObject(i) instanceof UIRegion) {
  72.135 +                region = (UIRegion) context.getStackObject(i);
  72.136 +                break;
  72.137 +            }
  72.138 +        }
  72.139 +    }
  72.140 +
  72.141 +    /**
  72.142 +     * Called by JIBX after all fields have been set
  72.143 +     *
  72.144 +     * @param context The JIBX Unmarshalling Context
  72.145 +     */
  72.146 +    private void postSet(IUnmarshallingContext context) {
  72.147 +        // add listeners to pass canvas and style events up tree
  72.148 +        canvas.addPropertyChangeListener(new PropertyChangeListener() {
  72.149 +            public void propertyChange(PropertyChangeEvent evt) {
  72.150 +                firePropertyChange("canvas." + evt.getPropertyName(), evt.getOldValue(), evt.getNewValue());
  72.151 +            }
  72.152 +        });
  72.153 +        style.addPropertyChangeListener(new PropertyChangeListener() {
  72.154 +            public void propertyChange(PropertyChangeEvent evt) {
  72.155 +                firePropertyChange("style." + evt.getPropertyName(), evt.getOldValue(), evt.getNewValue());
  72.156 +            }
  72.157 +        });
  72.158 +    }
  72.159 +
  72.160 +    // =================================================================================================================
  72.161 +    // Bean Methods
  72.162 +
  72.163 +    /**
  72.164 +     * Get path to this UI State of the form /RegionA/RegionB/StateName
  72.165 +     *
  72.166 +     * @return Path to this state
  72.167 +     */
  72.168 +    public String getPath() {
  72.169 +        StringBuilder buf = new StringBuilder(getName());
  72.170 +        UIRegion region = getRegion();
  72.171 +        // check if we are foreground background or border
  72.172 +        boolean found = false;
  72.173 +        for (UIState state : region.getBackgroundStates()) {
  72.174 +            if (state == this) {
  72.175 +                buf.insert(0, "Background/");
  72.176 +                found = true;
  72.177 +                break;
  72.178 +            }
  72.179 +        }
  72.180 +        if (!found) {
  72.181 +            for (UIState state : region.getForegroundStates()) {
  72.182 +                if (state == this) {
  72.183 +                    buf.insert(0, "Foreground/");
  72.184 +                    found = true;
  72.185 +                    break;
  72.186 +                }
  72.187 +            }
  72.188 +        }
  72.189 +        if (!found) {
  72.190 +            for (UIState state : region.getBorderStates()) {
  72.191 +                if (state == this) {
  72.192 +                    buf.insert(0, "Border/");
  72.193 +                    found = true;
  72.194 +                    break;
  72.195 +                }
  72.196 +            }
  72.197 +        }
  72.198 +        // add parent regions
  72.199 +        while (region != null) {
  72.200 +            buf.insert(0, '/');
  72.201 +            if (region instanceof UIComponent && ((UIComponent) region).getComponentName() != null) {
  72.202 +                buf.insert(0, ((UIComponent) region).getComponentName());
  72.203 +            } else {
  72.204 +                buf.insert(0, region.getName());
  72.205 +            }
  72.206 +            region = region.getRegion();
  72.207 +        }
  72.208 +        return buf.toString();
  72.209 +    }
  72.210 +
  72.211 +    void setRegion(UIRegion r) {
  72.212 +        this.region = r;
  72.213 +        this.style.setParentStyle(r.getStyle());
  72.214 +    }
  72.215 +
  72.216 +    public UIRegion getRegion() {
  72.217 +        return region;
  72.218 +    }
  72.219 +
  72.220 +    /**
  72.221 +     * Get the local UIDefaults that contains all the UIDefaults in the synth model. It is kept uptodate by the
  72.222 +     * indervidual UIDefaults nodes
  72.223 +     *
  72.224 +     * @return The UIDefaults for the synth model
  72.225 +     */
  72.226 +    public UIDefaults getUIDefaults() {
  72.227 +        return modelDefaults;
  72.228 +    }
  72.229 +
  72.230 +
  72.231 +    /**
  72.232 +     * Get the list of state type keys for this state. This state is applied when the current component state matches as
  72.233 +     * many as possible of these state types.
  72.234 +     *
  72.235 +     * @return List of state types that need to be true for this state. This is direct access to the data and changes to
  72.236 +     *         the returned list will effect this UiState.
  72.237 +     */
  72.238 +    public List<String> getStateKeys() {
  72.239 +        return stateKeys;
  72.240 +    }
  72.241 +
  72.242 +    public void setInverted(boolean b) {
  72.243 +        boolean old = inverted;
  72.244 +        inverted = b;
  72.245 +        firePropertyChange("invert", old, b);
  72.246 +    }
  72.247 +
  72.248 +    public final boolean isInverted() {
  72.249 +        return inverted;
  72.250 +    }
  72.251 +
  72.252 +    /**
  72.253 +     * Get the name of this state
  72.254 +     *
  72.255 +     * @return
  72.256 +     */
  72.257 +    public String getName() {
  72.258 +        if (cachedName == null) {
  72.259 +            StringBuilder buf = new StringBuilder();
  72.260 +            List<String> keys = new ArrayList<String>(stateKeys);
  72.261 +            Collections.sort(keys);
  72.262 +            for (Iterator<String> iter = keys.iterator(); iter.hasNext();) {
  72.263 +                buf.append(iter.next());
  72.264 +                if (iter.hasNext()) buf.append('+');
  72.265 +            }
  72.266 +            cachedName = buf.toString();
  72.267 +        }
  72.268 +        return cachedName;
  72.269 +    }
  72.270 +
  72.271 +    public final Canvas getCanvas() {
  72.272 +        return canvas;
  72.273 +    }
  72.274 +
  72.275 +    public void setCanvas(Canvas c) {
  72.276 +        Canvas old = canvas;
  72.277 +        canvas = c;
  72.278 +        firePropertyChange("canvas", old, c);
  72.279 +    }
  72.280 +
  72.281 +    public UIStyle getStyle() {
  72.282 +        return style;
  72.283 +    }
  72.284 +
  72.285 +    // =================================================================================================================
  72.286 +    // JIBX Helper Methods
  72.287 +
  72.288 +    public static String keysToString(List<String> keys) {
  72.289 +        StringBuilder buf = new StringBuilder();
  72.290 +        for (Iterator<String> iter = keys.iterator(); iter.hasNext();) {
  72.291 +            buf.append(iter.next());
  72.292 +            if (iter.hasNext()) buf.append('+');
  72.293 +        }
  72.294 +        return buf.toString();
  72.295 +    }
  72.296 +
  72.297 +    public static List<String> stringToKeys(String keysString) {
  72.298 +        return Arrays.asList(keysString.split("\\+"));
  72.299 +    }
  72.300 +
  72.301 +}
    73.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    73.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIStateType.java	Wed Apr 29 00:27:46 2009 -0700
    73.3 @@ -0,0 +1,129 @@
    73.4 +/*
    73.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    73.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    73.7 + *
    73.8 + * This code is free software; you can redistribute it and/or modify it
    73.9 + * under the terms of the GNU General Public License version 2 only, as
   73.10 + * published by the Free Software Foundation.  Sun designates this
   73.11 + * particular file as subject to the "Classpath" exception as provided
   73.12 + * by Sun in the LICENSE file that accompanied this code.
   73.13 + *
   73.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   73.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   73.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   73.17 + * version 2 for more details (a copy is included in the LICENSE file that
   73.18 + * accompanied this code).
   73.19 + *
   73.20 + * You should have received a copy of the GNU General Public License version
   73.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   73.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   73.23 + *
   73.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   73.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   73.26 + * have any questions.
   73.27 + */
   73.28 +package org.jdesktop.synthdesigner.synthmodel;
   73.29 +
   73.30 +import org.jdesktop.beans.AbstractBean;
   73.31 +
   73.32 +/**
   73.33 + * UIStateType - A UIComponents has a collection of these which constitute the avilables states which can be chosen in
   73.34 + * the components regions. A UIStateType can be either a custom state or one of the predefined standard states.
   73.35 + *
   73.36 + * @author  Richard Bair
   73.37 + * @author  Jasper Potts
   73.38 + */
   73.39 +public class UIStateType extends AbstractBean {
   73.40 +    /* Keys for standard synth states */
   73.41 +    public static final String ENABLED_KEY = "Enabled";
   73.42 +    public static final String MOUSE_OVER_KEY = "MouseOver";
   73.43 +    public static final String PRESSED_KEY = "Pressed";
   73.44 +    public static final String DISABLED_KEY = "Disabled";
   73.45 +    public static final String FOCUSED_KEY = "Focused";
   73.46 +    public static final String SELECTED_KEY = "Selected";
   73.47 +    public static final String DEFAULT_KEY = "Default";
   73.48 +    public static final String[] STANDARD_SYNTH_STATE_KEYS = new String[]{
   73.49 +            ENABLED_KEY, MOUSE_OVER_KEY, PRESSED_KEY, DISABLED_KEY, FOCUSED_KEY, SELECTED_KEY, DEFAULT_KEY
   73.50 +    };
   73.51 +    public static final UIStateType[] STANDARD_SYNTH_STATES = new UIStateType[]{
   73.52 +            new UIStateType(ENABLED_KEY),
   73.53 +            new UIStateType(MOUSE_OVER_KEY),
   73.54 +            new UIStateType(PRESSED_KEY),
   73.55 +            new UIStateType(DISABLED_KEY),
   73.56 +            new UIStateType(FOCUSED_KEY),
   73.57 +            new UIStateType(SELECTED_KEY),
   73.58 +            new UIStateType(DEFAULT_KEY)
   73.59 +    };
   73.60 +
   73.61 +    /** Unique string for the ui key for this state, must be unique within a components set of UiStateTypes */
   73.62 +    private String key;
   73.63 +    /**
   73.64 +     * Snippet of java code that defines calculates the value of this state for a particular component. The varaiable
   73.65 +     * <code>c</code> is the component. You end with a return statement returning boolean true/false for the current
   73.66 +     * value of this state for this component. This can be null if the key is one of that standard synth states defined
   73.67 +     * in constants in this class.
   73.68 +     */
   73.69 +    private String codeSnippet;
   73.70 +
   73.71 +    /** JIBX no-args contructor */
   73.72 +    private UIStateType() {}
   73.73 +
   73.74 +    private UIStateType(String key) {
   73.75 +        this.key = key;
   73.76 +        this.codeSnippet = null;
   73.77 +    }
   73.78 +
   73.79 +    public UIStateType(String key, String codeSnippet) {
   73.80 +        this.key = key;
   73.81 +        this.codeSnippet = codeSnippet;
   73.82 +    }
   73.83 +
   73.84 +    // =================================================================================================================
   73.85 +    // Bean Methods
   73.86 +
   73.87 +    /**
   73.88 +     * Get the ui defaults key for this state type. Unique string for the ui key for this state, must be unique within a
   73.89 +     * components set of UiStateTypes.
   73.90 +     *
   73.91 +     * @return Unique ui default key
   73.92 +     */
   73.93 +    public String getKey() {
   73.94 +        return key;
   73.95 +    }
   73.96 +
   73.97 +    /**
   73.98 +     * Get the snippet of java code that defines calculates the value of this state for a particular component. The
   73.99 +     * varaiable <code>c</code> is the component. You end with a return statement returning boolean true/false for the
  73.100 +     * current value of this state for this component. This can be null if the key is one of that standard synth states
  73.101 +     * defined in constants in this class.
  73.102 +     *
  73.103 +     * @return Snippet of java code or null if this is a synth standard state
  73.104 +     */
  73.105 +    public String getCodeSnippet() {
  73.106 +        return codeSnippet;
  73.107 +    }
  73.108 +
  73.109 +    /**
  73.110 +     * Set the snippet of java code that defines calculates the value of this state for a particular component. The
  73.111 +     * varaiable <code>c</code> is the component. You end with a return statement returning boolean true/false for the
  73.112 +     * current value of this state for this component. This can be null if the key is one of that standard synth states
  73.113 +     * defined in constants in this class.
  73.114 +     *
  73.115 +     * @param codeSnippet Snippet of java code or null if this is a synth standard state
  73.116 +     */
  73.117 +    public void setCodeSnippet(String codeSnippet) {
  73.118 +        this.codeSnippet = codeSnippet;
  73.119 +    }
  73.120 +
  73.121 +    /**
  73.122 +     * Returns if this state type is a standard synth type and has no code snippet or a custom type that has a code
  73.123 +     * snippet. It is used by JIBX to determin if the code snippet should be written to XML.
  73.124 +     *
  73.125 +     * @return <code>true</code> if codeSnippet is non null
  73.126 +     */
  73.127 +    public boolean hasCodeSnippet() {
  73.128 +        return codeSnippet != null;
  73.129 +    }
  73.130 +
  73.131 +
  73.132 +}
    74.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    74.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIStyle.java	Wed Apr 29 00:27:46 2009 -0700
    74.3 @@ -0,0 +1,467 @@
    74.4 +/*
    74.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    74.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    74.7 + *
    74.8 + * This code is free software; you can redistribute it and/or modify it
    74.9 + * under the terms of the GNU General Public License version 2 only, as
   74.10 + * published by the Free Software Foundation.  Sun designates this
   74.11 + * particular file as subject to the "Classpath" exception as provided
   74.12 + * by Sun in the LICENSE file that accompanied this code.
   74.13 + *
   74.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   74.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   74.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   74.17 + * version 2 for more details (a copy is included in the LICENSE file that
   74.18 + * accompanied this code).
   74.19 + *
   74.20 + * You should have received a copy of the GNU General Public License version
   74.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   74.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   74.23 + *
   74.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   74.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   74.26 + * have any questions.
   74.27 + */
   74.28 +package org.jdesktop.synthdesigner.synthmodel;
   74.29 +
   74.30 +import org.jdesktop.beans.AbstractBean;
   74.31 +import org.jdesktop.swingx.designer.font.Typeface;
   74.32 +import org.jdesktop.swingx.designer.paint.Matte;
   74.33 +import org.jibx.runtime.IUnmarshallingContext;
   74.34 +
   74.35 +import java.beans.PropertyChangeEvent;
   74.36 +import java.beans.PropertyChangeListener;
   74.37 +import java.util.List;
   74.38 +import java.util.ArrayList;
   74.39 +
   74.40 +/**
   74.41 + * UIStyle
   74.42 + *
   74.43 + * @author  Richard Bair
   74.44 + * @author  Jasper Potts
   74.45 + */
   74.46 +public class UIStyle extends AbstractBean {
   74.47 +    public static enum CacheMode {NO_CACHING,FIXED_SIZES,NINE_SQUARE_SCALE}
   74.48 +    public static enum HintAlphaInterpolation {
   74.49 +        DEFAULT, QUALITY, SPEED
   74.50 +    }
   74.51 +
   74.52 +    public static enum HintAntialiasing {
   74.53 +        DEFAULT, ON, OFF
   74.54 +    }
   74.55 +
   74.56 +    public static enum HintColorRendering {
   74.57 +        DEFAULT, QUALITY, SPEED
   74.58 +    }
   74.59 +
   74.60 +    public static enum HintDithering {
   74.61 +        DEFAULT, DISABLE, ENABLE
   74.62 +    }
   74.63 +
   74.64 +    public static enum HintFractionalMetrics {
   74.65 +        DEFAULT, ON, OFF
   74.66 +    }
   74.67 +
   74.68 +    public static enum HintInterpolation {
   74.69 +        NEAREST_NEIGHBOR, BILINEAR, BICUBIC
   74.70 +    }
   74.71 +
   74.72 +    public static enum HintRendering {
   74.73 +        DEFAULT, QUALITY, SPEED
   74.74 +    }
   74.75 +
   74.76 +    public static enum HintStrokeControl {
   74.77 +        DEFAULT, NORMALIZE, PURE
   74.78 +    }
   74.79 +
   74.80 +    public static enum HintTextAntialiasing {
   74.81 +        DEFAULT, ON, OFF, GASP, LCD_HBGR, LCD_HRGB, LCD_VBGR, LCD_VRGB
   74.82 +    }
   74.83 +
   74.84 +    private Typeface font = null;
   74.85 +    private boolean fontInherited = true;
   74.86 +    private Matte textForeground = null;
   74.87 +    private boolean textForegroundInherited = true;
   74.88 +    private Matte textBackground = null;
   74.89 +    private boolean textBackgroundInherited = true;
   74.90 +    private Matte background = null;
   74.91 +    private boolean backgroundInherited = true;
   74.92 +
   74.93 +    private boolean cacheSettingsInherited = true;
   74.94 +    private CacheMode cacheMode = CacheMode.FIXED_SIZES;
   74.95 +    private double maxHozCachedImgScaling = 1;
   74.96 +    private double maxVertCachedImgScaling = 1;
   74.97 +
   74.98 +    private HintAlphaInterpolation hintAlphaInterpolation = null;
   74.99 +    private HintAntialiasing hintAntialiasing = null;
  74.100 +    private HintColorRendering hintColorRendering = null;
  74.101 +    private HintDithering hintDithering = null;
  74.102 +    private HintFractionalMetrics hintFractionalMetrics = null;
  74.103 +    private HintInterpolation hintInterpolation = null;
  74.104 +    private HintRendering hintRendering = null;
  74.105 +    private HintStrokeControl hintStrokeControl = null;
  74.106 +    private HintTextAntialiasing hintTextAntialiasing = null;
  74.107 +    private List<UIProperty> uiProperties;
  74.108 +    private UIStyle parentStyle = null;
  74.109 +
  74.110 +    private PropertyChangeListener textForegoundListener = new PropertyChangeListener() {
  74.111 +        public void propertyChange(PropertyChangeEvent evt) {
  74.112 +            firePropertyChange("textForeground." + evt.getPropertyName(), evt.getOldValue(), evt.getNewValue());
  74.113 +        }
  74.114 +    };
  74.115 +    private PropertyChangeListener textBackgroundListener = new PropertyChangeListener() {
  74.116 +        public void propertyChange(PropertyChangeEvent evt) {
  74.117 +            firePropertyChange("textBackground." + evt.getPropertyName(), evt.getOldValue(), evt.getNewValue());
  74.118 +        }
  74.119 +    };
  74.120 +    private PropertyChangeListener backgroundListener = new PropertyChangeListener() {
  74.121 +        public void propertyChange(PropertyChangeEvent evt) {
  74.122 +            firePropertyChange("background." + evt.getPropertyName(), evt.getOldValue(), evt.getNewValue());
  74.123 +        }
  74.124 +    };
  74.125 +
  74.126 +    // =================================================================================================================
  74.127 +    // Constructors
  74.128 +
  74.129 +    public UIStyle() {
  74.130 +        uiProperties = new ArrayList<UIProperty>();
  74.131 +    }
  74.132 +
  74.133 +    // =================================================================================================================
  74.134 +    // JIBX Methods
  74.135 +
  74.136 +    /**
  74.137 +     * Called by JIBX after all fields have been set
  74.138 +     *
  74.139 +     * @param context The JIBX Unmarshalling Context
  74.140 +     */
  74.141 +    private void postSet(IUnmarshallingContext context) {
  74.142 +        // walk up till we get a parent style
  74.143 +        for (int i = 0; i < context.getStackDepth(); i++) {
  74.144 +            if (context.getStackObject(i) instanceof HasUIStyle) {
  74.145 +                HasUIStyle hasStyle = (HasUIStyle) context.getStackObject(i);
  74.146 +                if (hasStyle.getStyle() != this) {
  74.147 +                    parentStyle = hasStyle.getStyle();
  74.148 +                    if (parentStyle != null) break;
  74.149 +                }
  74.150 +            }
  74.151 +        }
  74.152 +    }
  74.153 +
  74.154 +    // =================================================================================================================
  74.155 +    // Bean Methods
  74.156 +
  74.157 +    public UIStyle getParentStyle() {
  74.158 +        return parentStyle;
  74.159 +    }
  74.160 +
  74.161 +    public void setParentStyle(UIStyle parentStyle) {
  74.162 +        UIStyle old = getParentStyle();
  74.163 +        this.parentStyle = parentStyle;
  74.164 +        firePropertyChange("parentStyle", old, getParentStyle());
  74.165 +    }
  74.166 +
  74.167 +    public List<UIProperty> getUiProperties() {
  74.168 +        return uiProperties;
  74.169 +    }
  74.170 +
  74.171 +    public void addUiProperty(UIProperty uiProperty) {
  74.172 +        uiProperties.add(uiProperty);
  74.173 +        // todo not quite sure what events we want here
  74.174 +        fireIndexedPropertyChange("uiProperties", uiProperties.size(), null, uiProperty);
  74.175 +//        firePropertyChange("uiProperties", null, uiProperties);
  74.176 +    }
  74.177 +
  74.178 +    public void removeUiProperty(UIProperty uiProperty) {
  74.179 +        int index = uiProperties.indexOf(uiProperty);
  74.180 +        if (index != -1) {
  74.181 +            uiProperties.remove(uiProperty);
  74.182 +            // todo not quite sure what events we want here
  74.183 +            fireIndexedPropertyChange("uiProperties", index, null, uiProperty);
  74.184 +//            firePropertyChange("uiProperties", null, uiProperties);
  74.185 +        }
  74.186 +    }
  74.187 +
  74.188 +    public Typeface getFont() {
  74.189 +        if (isFontInherited()) {
  74.190 +            return parentStyle == null ? font : parentStyle.getFont();
  74.191 +        } else {
  74.192 +            return font;
  74.193 +        }
  74.194 +    }
  74.195 +
  74.196 +    public void setFont(Typeface font) {
  74.197 +        Typeface old = getFont();
  74.198 +        this.font = font;
  74.199 +        firePropertyChange("font", old, font);
  74.200 +    }
  74.201 +
  74.202 +    public boolean isFontInherited() {
  74.203 +        return fontInherited;
  74.204 +    }
  74.205 +
  74.206 +    public void setFontInherited(boolean b) {
  74.207 +        boolean old = isFontInherited();
  74.208 +        fontInherited = b;
  74.209 +        firePropertyChange("fontInherited", old, b);
  74.210 +
  74.211 +        if (!fontInherited && font == null && parentStyle != null && parentStyle.getFont() != null) {
  74.212 +            font = parentStyle.getFont().clone();
  74.213 +            firePropertyChange("font", null, font);
  74.214 +        }
  74.215 +    }
  74.216 +
  74.217 +    public Matte getTextForeground() {
  74.218 +        if (isTextForegroundInherited()) {
  74.219 +            return parentStyle == null ? null : parentStyle.getTextForeground();
  74.220 +        } else {
  74.221 +            return textForeground;
  74.222 +        }
  74.223 +    }
  74.224 +
  74.225 +    public boolean isTextForegroundInherited() {
  74.226 +        return textForegroundInherited;
  74.227 +    }
  74.228 +
  74.229 +    public void setTextForegroundInherited(boolean b) {
  74.230 +        boolean old = isTextForegroundInherited();
  74.231 +        textForegroundInherited = b;
  74.232 +        firePropertyChange("foregroundInherited", old, b);
  74.233 +
  74.234 +        if (!textForegroundInherited && textForeground == null && parentStyle != null &&
  74.235 +                parentStyle.getTextForeground() != null) {
  74.236 +            textForeground = parentStyle.getTextForeground().clone();
  74.237 +            firePropertyChange("textForeground", null, textForeground);
  74.238 +        }
  74.239 +    }
  74.240 +
  74.241 +    public void setTextForeground(Matte textForeground) {
  74.242 +        Matte old = this.textForeground;
  74.243 +        if (old != null) old.removePropertyChangeListener(textForegoundListener);
  74.244 +        this.textForeground = textForeground;
  74.245 +        if (this.textForeground != null) this.textForeground.addPropertyChangeListener(textForegoundListener);
  74.246 +        firePropertyChange("textForeground", old, this.textForeground);
  74.247 +    }
  74.248 +
  74.249 +    public Matte getTextBackground() {
  74.250 +        if (isTextBackgroundInherited()) {
  74.251 +            return parentStyle == null ? null : parentStyle.getBackground();
  74.252 +        } else {
  74.253 +            return textBackground;
  74.254 +        }
  74.255 +    }
  74.256 +
  74.257 +    public boolean isTextBackgroundInherited() {
  74.258 +        return textBackgroundInherited;
  74.259 +    }
  74.260 +
  74.261 +    public void setTextBackgroundInherited(boolean b) {
  74.262 +        boolean old = isBackgroundInherited();
  74.263 +        textBackgroundInherited = b;
  74.264 +        firePropertyChange("textBackgroundInherited", old, b);
  74.265 +
  74.266 +        if (!textBackgroundInherited && textBackground == null && parentStyle != null &&
  74.267 +                parentStyle.getTextBackground() != null) {
  74.268 +            textBackground = parentStyle.getTextBackground().clone();
  74.269 +            firePropertyChange("textBackground", null, textBackground);
  74.270 +        }
  74.271 +    }
  74.272 +
  74.273 +    public void setTextBackground(Matte textBackground) {
  74.274 +        Matte old = this.textBackground;
  74.275 +        if (old != null) old.removePropertyChangeListener(textBackgroundListener);
  74.276 +        this.textBackground = textBackground;
  74.277 +        if (this.textBackground != null) this.textBackground.addPropertyChangeListener(textBackgroundListener);
  74.278 +        firePropertyChange("textBackground", old, this.textBackground);
  74.279 +    }
  74.280 +
  74.281 +    public Matte getBackground() {
  74.282 +        if (isBackgroundInherited()) {
  74.283 +            return parentStyle == null ? null : parentStyle.getBackground();
  74.284 +        } else {
  74.285 +            return background;
  74.286 +        }
  74.287 +    }
  74.288 +
  74.289 +    public boolean isBackgroundInherited() {
  74.290 +        return backgroundInherited;
  74.291 +    }
  74.292 +
  74.293 +    public void setBackgroundInherited(boolean b) {
  74.294 +        boolean old = isBackgroundInherited();
  74.295 +        backgroundInherited = b;
  74.296 +        firePropertyChange("backgroundInherited", old, b);
  74.297 +
  74.298 +        if (!backgroundInherited && background == null && parentStyle != null && parentStyle.getBackground() != null) {
  74.299 +            background = parentStyle.getBackground().clone();
  74.300 +            firePropertyChange("background", null, background);
  74.301 +        }
  74.302 +    }
  74.303 +
  74.304 +    public void setBackground(Matte background) {
  74.305 +        Matte old = this.background;
  74.306 +        if (old != null) old.removePropertyChangeListener(backgroundListener);
  74.307 +        this.background = background;
  74.308 +        if (this.background != null) this.background.addPropertyChangeListener(backgroundListener);
  74.309 +        firePropertyChange("background", old, this.background);
  74.310 +    }
  74.311 +
  74.312 +    public HintAlphaInterpolation getHintAlphaInterpolation() {
  74.313 +        return hintAlphaInterpolation;
  74.314 +    }
  74.315 +
  74.316 +    public void setHintAlphaInterpolation(HintAlphaInterpolation hintAlphaInterpolation) {
  74.317 +        HintAlphaInterpolation old = getHintAlphaInterpolation();
  74.318 +        this.hintAlphaInterpolation = hintAlphaInterpolation;
  74.319 +        firePropertyChange("hintAlphaInterpolation", old, getHintAlphaInterpolation());
  74.320 +    }
  74.321 +
  74.322 +    public HintAntialiasing getHintAntialiasing() {
  74.323 +        return hintAntialiasing;
  74.324 +    }
  74.325 +
  74.326 +    public void setHintAntialiasing(HintAntialiasing hintAntialiasing) {
  74.327 +        HintAntialiasing old = getHintAntialiasing();
  74.328 +        this.hintAntialiasing = hintAntialiasing;
  74.329 +        firePropertyChange("hintAntialiasing", old, getHintAntialiasing());
  74.330 +    }
  74.331 +
  74.332 +    public HintColorRendering getHintColorRendering() {
  74.333 +        return hintColorRendering;
  74.334 +    }
  74.335 +
  74.336 +    public void setHintColorRendering(HintColorRendering hintColorRendering) {
  74.337 +        HintColorRendering old = getHintColorRendering();
  74.338 +        this.hintColorRendering = hintColorRendering;
  74.339 +        firePropertyChange("hintColorRendering", old, getHintColorRendering());
  74.340 +    }
  74.341 +
  74.342 +    public HintDithering getHintDithering() {
  74.343 +        return hintDithering;
  74.344 +    }
  74.345 +
  74.346 +    public void setHintDithering(HintDithering hintDithering) {
  74.347 +        HintDithering old = getHintDithering();
  74.348 +        this.hintDithering = hintDithering;
  74.349 +        firePropertyChange("hintDithering", old, getHintDithering());
  74.350 +    }
  74.351 +
  74.352 +    public HintFractionalMetrics getHintFractionalMetrics() {
  74.353 +        return hintFractionalMetrics;
  74.354 +    }
  74.355 +
  74.356 +    public void setHintFractionalMetrics(HintFractionalMetrics hintFractionalMetrics) {
  74.357 +        HintFractionalMetrics old = getHintFractionalMetrics();
  74.358 +        this.hintFractionalMetrics = hintFractionalMetrics;
  74.359 +        firePropertyChange("hintFractionalMetrics", old, getHintFractionalMetrics());
  74.360 +    }
  74.361 +
  74.362 +    public HintInterpolation getHintInterpolation() {
  74.363 +        return hintInterpolation;
  74.364 +    }
  74.365 +
  74.366 +    public void setHintInterpolation(HintInterpolation hintInterpolation) {
  74.367 +        HintInterpolation old = getHintInterpolation();
  74.368 +        this.hintInterpolation = hintInterpolation;
  74.369 +        firePropertyChange("hintInterpolation", old, getHintInterpolation());
  74.370 +    }
  74.371 +
  74.372 +    public HintRendering getHintRendering() {
  74.373 +        return hintRendering;
  74.374 +    }
  74.375 +
  74.376 +    public void setHintRendering(HintRendering hintRendering) {
  74.377 +        HintRendering old = getHintRendering();
  74.378 +        this.hintRendering = hintRendering;
  74.379 +        firePropertyChange("hintRendering", old, getHintRendering());
  74.380 +    }
  74.381 +
  74.382 +    public HintStrokeControl getHintStrokeControl() {
  74.383 +        return hintStrokeControl;
  74.384 +    }
  74.385 +
  74.386 +    public void setHintStrokeControl(HintStrokeControl hintStrokeControl) {
  74.387 +        HintStrokeControl old = getHintStrokeControl();
  74.388 +        this.hintStrokeControl = hintStrokeControl;
  74.389 +        firePropertyChange("hintStrokeControl", old, getHintStrokeControl());
  74.390 +    }
  74.391 +
  74.392 +    public HintTextAntialiasing getHintTextAntialiasing() {
  74.393 +        return hintTextAntialiasing;
  74.394 +    }
  74.395 +
  74.396 +    public void setHintTextAntialiasing(HintTextAntialiasing hintTextAntialiasing) {
  74.397 +        HintTextAntialiasing old = getHintTextAntialiasing();
  74.398 +        this.hintTextAntialiasing = hintTextAntialiasing;
  74.399 +        firePropertyChange("hintTextAntialiasing", old, getHintTextAntialiasing());
  74.400 +    }
  74.401 +
  74.402 +    public boolean isCacheSettingsInherited() {
  74.403 +        return cacheSettingsInherited;
  74.404 +    }
  74.405 +
  74.406 +    public void setCacheSettingsInherited(boolean cacheSettingsInherited) {
  74.407 +        boolean old = isCacheSettingsInherited();
  74.408 +        this.cacheSettingsInherited = cacheSettingsInherited;
  74.409 +        firePropertyChange("cacheSettingsInherited", old, isCacheSettingsInherited());
  74.410 +    }
  74.411 +
  74.412 +    public CacheMode getCacheMode() {
  74.413 +        if (isCacheSettingsInherited()) {
  74.414 +            return (parentStyle == null)?CacheMode.FIXED_SIZES : parentStyle.getCacheMode();
  74.415 +        } else {
  74.416 +            return cacheMode;
  74.417 +        }
  74.418 +    }
  74.419 +
  74.420 +    public void setCacheMode(CacheMode cacheMode) {
  74.421 +        CacheMode old = this.cacheMode;
  74.422 +        this.cacheMode = cacheMode;
  74.423 +        if (isCacheSettingsInherited()) {
  74.424 +            setCacheSettingsInherited(false);
  74.425 +            UIStyle parent = getParentStyle();
  74.426 +            setMaxHozCachedImgScaling(parent == null ? 1 : parent.getMaxHozCachedImgScaling());
  74.427 +            setMaxVertCachedImgScaling(parent == null ? 1 : parent.getMaxVertCachedImgScaling());
  74.428 +        }
  74.429 +        firePropertyChange("cacheMode",old,cacheMode);
  74.430 +    }
  74.431 +
  74.432 +    public double getMaxHozCachedImgScaling() {
  74.433 +        if (isCacheSettingsInherited()) {
  74.434 +            return parentStyle == null ? 1 : parentStyle.getMaxHozCachedImgScaling();
  74.435 +        } else {
  74.436 +            return maxHozCachedImgScaling;
  74.437 +        }
  74.438 +    }
  74.439 +
  74.440 +    public void setMaxHozCachedImgScaling(double maxHozCachedImgScaling) {
  74.441 +        double old = getMaxHozCachedImgScaling();
  74.442 +        this.maxHozCachedImgScaling = maxHozCachedImgScaling;
  74.443 +        if (isCacheSettingsInherited()) {
  74.444 +            setCacheSettingsInherited(false);
  74.445 +            setCacheMode((parentStyle == null)?CacheMode.FIXED_SIZES : parentStyle.getCacheMode());
  74.446 +            setMaxVertCachedImgScaling(parentStyle == null ? 1 : parentStyle.getMaxVertCachedImgScaling());
  74.447 +        }
  74.448 +        firePropertyChange("maxHozCachedImgScaling", old, getMaxHozCachedImgScaling());
  74.449 +    }
  74.450 +
  74.451 +    public double getMaxVertCachedImgScaling() {
  74.452 +        if (isCacheSettingsInherited()) {
  74.453 +            return parentStyle == null ? 1 : parentStyle.getMaxVertCachedImgScaling();
  74.454 +        } else {
  74.455 +            return maxVertCachedImgScaling;
  74.456 +        }
  74.457 +    }
  74.458 +
  74.459 +    public void setMaxVertCachedImgScaling(double maxVertCachedImgScaling) {
  74.460 +        double old = getMaxVertCachedImgScaling();
  74.461 +        this.maxVertCachedImgScaling = maxVertCachedImgScaling;
  74.462 +        if (isCacheSettingsInherited()) {
  74.463 +            setCacheSettingsInherited(false);
  74.464 +            setCacheMode((parentStyle == null)?CacheMode.FIXED_SIZES : parentStyle.getCacheMode());
  74.465 +            setMaxHozCachedImgScaling(parentStyle == null ? 1 : parentStyle.getMaxHozCachedImgScaling());
  74.466 +        }
  74.467 +        firePropertyChange("maxVertCachedImgScaling", old, getMaxVertCachedImgScaling());
  74.468 +    }
  74.469 +}
  74.470 +
    75.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    75.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/jibxhelpers/BorderMapper.java	Wed Apr 29 00:27:46 2009 -0700
    75.3 @@ -0,0 +1,285 @@
    75.4 +/*
    75.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    75.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    75.7 + *
    75.8 + * This code is free software; you can redistribute it and/or modify it
    75.9 + * under the terms of the GNU General Public License version 2 only, as
   75.10 + * published by the Free Software Foundation.  Sun designates this
   75.11 + * particular file as subject to the "Classpath" exception as provided
   75.12 + * by Sun in the LICENSE file that accompanied this code.
   75.13 + *
   75.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   75.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   75.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   75.17 + * version 2 for more details (a copy is included in the LICENSE file that
   75.18 + * accompanied this code).
   75.19 + *
   75.20 + * You should have received a copy of the GNU General Public License version
   75.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   75.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   75.23 + *
   75.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   75.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   75.26 + * have any questions.
   75.27 + */
   75.28 +package org.jdesktop.synthdesigner.synthmodel.jibxhelpers;
   75.29 +
   75.30 +import org.jibx.runtime.IMarshaller;
   75.31 +import org.jibx.runtime.IUnmarshaller;
   75.32 +import org.jibx.runtime.IAliasable;
   75.33 +import org.jibx.runtime.IUnmarshallingContext;
   75.34 +import org.jibx.runtime.JiBXException;
   75.35 +import org.jibx.runtime.IMarshallingContext;
   75.36 +import org.jibx.runtime.impl.MarshallingContext;
   75.37 +import org.jibx.runtime.impl.UnmarshallingContext;
   75.38 +import org.jdesktop.swingx.designer.jibxhelpers.ColorMapper;
   75.39 +
   75.40 +import javax.swing.border.LineBorder;
   75.41 +import javax.swing.border.EmptyBorder;
   75.42 +import javax.swing.border.EtchedBorder;
   75.43 +import javax.swing.border.BevelBorder;
   75.44 +import javax.swing.border.MatteBorder;
   75.45 +import javax.swing.border.CompoundBorder;
   75.46 +import javax.swing.border.Border;
   75.47 +import javax.swing.BorderFactory;
   75.48 +import java.awt.Insets;
   75.49 +import java.awt.Color;
   75.50 +import org.jdesktop.synthdesigner.synthmodel.PainterBorder;
   75.51 +
   75.52 +/**
   75.53 + * BorderMapper - JIBX xml mapper for swing standard borders
   75.54 + *
   75.55 + * @author Jasper Potts
   75.56 + */
   75.57 +public class BorderMapper implements IMarshaller, IUnmarshaller, IAliasable {
   75.58 +    private static enum BorderType {
   75.59 +        empty, line, etched, bevel, matte, compound, painter
   75.60 +    }
   75.61 +    private static enum SubType {
   75.62 +        raised(EtchedBorder.RAISED), lowered(EtchedBorder.LOWERED);
   75.63 +        private int subtype;
   75.64 +
   75.65 +        SubType(int type) {
   75.66 +            this.subtype = type;
   75.67 +        }
   75.68 +
   75.69 +        public int getSubType() {
   75.70 +            return subtype;
   75.71 +        }
   75.72 +    }
   75.73 +    private static final String ELEMENT_NAME = "border";
   75.74 +    private static final String TYPE_NAME = "type";
   75.75 +    private static final String SUB_TYPE_NAME = "subtype";
   75.76 +    private static final String TOP_NAME = "top";
   75.77 +    private static final String BOTTOM_NAME = "bottom";
   75.78 +    private static final String LEFT_NAME = "left";
   75.79 +    private static final String RIGHT_NAME = "right";
   75.80 +    private static final String THICKNESS_NAME = "thickness";
   75.81 +    private static final String INSIDE_NAME = "inside";
   75.82 +    private static final String OUTSIDE_NAME = "outside";
   75.83 +    private static final String PAINTER_NAME = "painter";
   75.84 +
   75.85 +    private String uri;
   75.86 +    private int index;
   75.87 +    private String name;
   75.88 +
   75.89 +    public BorderMapper() {
   75.90 +        uri = null;
   75.91 +        index = 0;
   75.92 +        name = ELEMENT_NAME;
   75.93 +    }
   75.94 +
   75.95 +    public BorderMapper(String uri, int index, String name) {
   75.96 +        this.uri = uri;
   75.97 +        this.index = index;
   75.98 +        this.name = name;
   75.99 +    }
  75.100 +
  75.101 +    public boolean isExtension(int i) {
  75.102 +        return false;
  75.103 +    }
  75.104 +
  75.105 +    public boolean isPresent(IUnmarshallingContext iUnmarshallingContext) throws
  75.106 +            JiBXException {
  75.107 +        return iUnmarshallingContext.isAt(uri, ELEMENT_NAME);
  75.108 +    }
  75.109 +
  75.110 +    public void marshal(Object object, IMarshallingContext iMarshallingContext)
  75.111 +            throws JiBXException {
  75.112 +        if (!(iMarshallingContext instanceof MarshallingContext)) {
  75.113 +            throw new JiBXException("Invalid object type for marshaller");
  75.114 +        } else {
  75.115 +            MarshallingContext ctx = (MarshallingContext) iMarshallingContext;
  75.116 +            if (object instanceof PainterBorder) {
  75.117 +                PainterBorder border = (PainterBorder) object;
  75.118 +                Insets insets = border.getBorderInsets();
  75.119 +                ctx.startTagAttributes(index, name)
  75.120 +                        .attribute(index, TYPE_NAME, BorderType.painter.toString())
  75.121 +                        .attribute(index, PAINTER_NAME, border.getPainterName())
  75.122 +                        .attribute(index, TOP_NAME, insets.top)
  75.123 +                        .attribute(index, BOTTOM_NAME, insets.bottom)
  75.124 +                        .attribute(index, LEFT_NAME, insets.left)
  75.125 +                        .attribute(index, RIGHT_NAME, insets.right)
  75.126 +                        .closeStartContent();
  75.127 +                ctx.endTag(index, name);
  75.128 +            } else if (object instanceof EmptyBorder) {
  75.129 +                Insets insets = ((EmptyBorder) object).getBorderInsets();
  75.130 +                ctx.startTagAttributes(index, name)
  75.131 +                        .attribute(index, TYPE_NAME,
  75.132 +                                BorderType.empty.toString())
  75.133 +                        .attribute(index, TOP_NAME, insets.top)
  75.134 +                        .attribute(index, BOTTOM_NAME, insets.bottom)
  75.135 +                        .attribute(index, LEFT_NAME, insets.left)
  75.136 +                        .attribute(index, RIGHT_NAME, insets.right)
  75.137 +                        .closeStartEmpty();
  75.138 +            } else if (object instanceof LineBorder) {
  75.139 +                LineBorder border = (LineBorder) object;
  75.140 +                ctx.startTagAttributes(index, name).
  75.141 +                        attribute(index, TYPE_NAME, BorderType.line.toString()).
  75.142 +                        attribute(index, THICKNESS_NAME, border.getThickness()).
  75.143 +                        closeStartContent();
  75.144 +                new ColorMapper().marshal(border.getLineColor(), ctx);
  75.145 +                ctx.endTag(index, name);
  75.146 +            } else if (object instanceof EtchedBorder) {
  75.147 +                EtchedBorder border = (EtchedBorder) object;
  75.148 +                ctx.startTagAttributes(index, name).
  75.149 +                        attribute(index, TYPE_NAME,
  75.150 +                                BorderType.etched.toString()).
  75.151 +                        attribute(index, SUB_TYPE_NAME,
  75.152 +                                border.getEtchType()==EtchedBorder.RAISED?
  75.153 +                                        SubType.raised.toString():
  75.154 +                                        SubType.lowered.toString()).
  75.155 +                        closeStartContent();
  75.156 +                new ColorMapper().marshal(border.getHighlightColor(), ctx);
  75.157 +                new ColorMapper().marshal(border.getShadowColor(), ctx);
  75.158 +                ctx.endTag(index, name);
  75.159 +            } else if (object instanceof BevelBorder) {
  75.160 +                BevelBorder border = (BevelBorder) object;
  75.161 +                ctx.startTagAttributes(index, name).
  75.162 +                        attribute(index, TYPE_NAME,
  75.163 +                                BorderType.bevel.toString()).
  75.164 +                        attribute(index, SUB_TYPE_NAME,
  75.165 +                                border.getBevelType()==BevelBorder.RAISED?
  75.166 +                                        SubType.raised.toString():
  75.167 +                                        SubType.lowered.toString()).
  75.168 +                        closeStartContent();
  75.169 +                new ColorMapper().marshal(border.getHighlightInnerColor(), ctx);
  75.170 +                new ColorMapper().marshal(border.getHighlightOuterColor(), ctx);
  75.171 +                new ColorMapper().marshal(border.getShadowInnerColor(), ctx);
  75.172 +                new ColorMapper().marshal(border.getHighlightOuterColor(), ctx);
  75.173 +                ctx.endTag(index, name);
  75.174 +            } else if (object instanceof MatteBorder) {
  75.175 +                MatteBorder border = (MatteBorder) object;
  75.176 +                Insets insets = ((EmptyBorder) object).getBorderInsets();
  75.177 +                ctx.startTagAttributes(index, name)
  75.178 +                        .attribute(index, TYPE_NAME,
  75.179 +                                BorderType.matte.toString())
  75.180 +                        .attribute(index, TOP_NAME, insets.top)
  75.181 +                        .attribute(index, BOTTOM_NAME, insets.bottom)
  75.182 +                        .attribute(index, LEFT_NAME, insets.left)
  75.183 +                        .attribute(index, RIGHT_NAME, insets.right)
  75.184 +                        .closeStartContent();
  75.185 +                new ColorMapper().marshal(border.getMatteColor(), ctx);
  75.186 +                // todo: we should support tiled icons here to be 100% complete
  75.187 +                ctx.endTag(index, name);
  75.188 +            } else if (object instanceof CompoundBorder) {
  75.189 +                CompoundBorder border = (CompoundBorder) object;
  75.190 +                ctx.startTagAttributes(index, name)
  75.191 +                        .attribute(index, TYPE_NAME,
  75.192 +                                BorderType.compound.toString())
  75.193 +                        .closeStartContent();
  75.194 +                new BorderMapper(null,0, INSIDE_NAME).marshal(border.getInsideBorder(),ctx);
  75.195 +                new BorderMapper(null,0, OUTSIDE_NAME).marshal(border.getOutsideBorder(),ctx);
  75.196 +                ctx.endTag(index, name);
  75.197 +            } else {
  75.198 +                throw new JiBXException("Invalid object type for marshaller");
  75.199 +            }
  75.200 +        }
  75.201 +    }
  75.202 +
  75.203 +    public Object unmarshal(Object object,
  75.204 +                            IUnmarshallingContext iUnmarshallingContext)
  75.205 +            throws JiBXException {
  75.206 +        Border border = null;
  75.207 +        // make sure we're at the appropriate start tag
  75.208 +        UnmarshallingContext ctx = (UnmarshallingContext) iUnmarshallingContext;
  75.209 +        if (!ctx.isAt(uri, name)) {
  75.210 +            ctx.throwStartTagNameError(uri, name);
  75.211 +        }
  75.212 +        // get type
  75.213 +        BorderType type = BorderType.valueOf(ctx.attributeText(uri, TYPE_NAME)
  75.214 +                .toLowerCase());
  75.215 +        int top,bottom,left,right;
  75.216 +        Color color;
  75.217 +        switch(type){
  75.218 +            case empty:
  75.219 +                top = ctx.attributeInt(uri, TOP_NAME, index);
  75.220 +                bottom = ctx.attributeInt(uri, BOTTOM_NAME, index);
  75.221 +                left = ctx.attributeInt(uri, LEFT_NAME, index);
  75.222 +                right = ctx.attributeInt(uri, RIGHT_NAME, index);
  75.223 +                border = BorderFactory.createEmptyBorder(top,left,bottom,right);
  75.224 +                break;
  75.225 +            case line:
  75.226 +                int thickness = ctx.attributeInt(uri, THICKNESS_NAME, index);
  75.227 +                ctx.parsePastStartTag(uri,name);
  75.228 +                color = (Color)new ColorMapper().unmarshal(null,ctx);
  75.229 +                border = BorderFactory.createLineBorder(color,thickness);
  75.230 +                break;
  75.231 +            case etched:
  75.232 +                SubType etchedType = SubType.valueOf(
  75.233 +                        ctx.attributeText(uri, SUB_TYPE_NAME).toLowerCase());
  75.234 +                ctx.parsePastStartTag(uri,name);
  75.235 +                Color highColor = (Color)new ColorMapper()
  75.236 +                        .unmarshal(null,ctx);
  75.237 +                Color shadowColor = (Color)new ColorMapper()
  75.238 +                        .unmarshal(null,ctx);
  75.239 +                border = BorderFactory.createEtchedBorder(
  75.240 +                        etchedType.getSubType(),highColor,shadowColor);
  75.241 +                break;
  75.242 +            case bevel:
  75.243 +                SubType bevelType = SubType.valueOf(
  75.244 +                        ctx.attributeText(uri, SUB_TYPE_NAME).toLowerCase());
  75.245 +                ctx.parsePastStartTag(uri,name);
  75.246 +                Color innerHighColor = (Color)new ColorMapper()
  75.247 +                        .unmarshal(null,ctx);
  75.248 +                Color outerHighColor = (Color)new ColorMapper()
  75.249 +                        .unmarshal(null,ctx);
  75.250 +                Color innerShadowColor = (Color)new ColorMapper()
  75.251 +                        .unmarshal(null,ctx);
  75.252 +                Color outerShadowColor = (Color)new ColorMapper()
  75.253 +                        .unmarshal(null,ctx);
  75.254 +                border = BorderFactory.createBevelBorder(
  75.255 +                        bevelType.getSubType(),outerHighColor,innerHighColor,
  75.256 +                        outerShadowColor,innerShadowColor);
  75.257 +                break;
  75.258 +            case matte:
  75.259 +                top = ctx.attributeInt(uri, TOP_NAME, index);
  75.260 +                bottom = ctx.attributeInt(uri, BOTTOM_NAME, index);
  75.261 +                left = ctx.attributeInt(uri, LEFT_NAME, index);
  75.262 +                right = ctx.attributeInt(uri, RIGHT_NAME, index);
  75.263 +                ctx.parsePastStartTag(uri,name);
  75.264 +                color = (Color)new ColorMapper().unmarshal(null,ctx);
  75.265 +                border = BorderFactory.createMatteBorder(top,left,bottom,right,
  75.266 +                        color);
  75.267 +                break;
  75.268 +            case compound:
  75.269 +                ctx.parsePastStartTag(uri,name);
  75.270 +                Border inside = (Border) new BorderMapper(null,0, INSIDE_NAME)
  75.271 +                        .unmarshal(null,ctx);
  75.272 +                Border outside = (Border) new BorderMapper(null,0, OUTSIDE_NAME)
  75.273 +                        .unmarshal(null,ctx);
  75.274 +                border = BorderFactory.createCompoundBorder(outside, inside);
  75.275 +                break;
  75.276 +            case painter:
  75.277 +                String painterName = ctx.attributeText(uri, PAINTER_NAME);
  75.278 +                top = ctx.attributeInt(uri, TOP_NAME, index);
  75.279 +                bottom = ctx.attributeInt(uri, BOTTOM_NAME, index);
  75.280 +                left = ctx.attributeInt(uri, LEFT_NAME, index);
  75.281 +                right = ctx.attributeInt(uri, RIGHT_NAME, index);
  75.282 +                border = new PainterBorder(painterName, top, left, bottom, right);
  75.283 +        }
  75.284 +        ctx.parsePastEndTag(uri, name);
  75.285 +        return border;
  75.286 +    }
  75.287 +}
  75.288 +
    76.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    76.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/jibxhelpers/ClassConverter.java	Wed Apr 29 00:27:46 2009 -0700
    76.3 @@ -0,0 +1,53 @@
    76.4 +/*
    76.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    76.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    76.7 + *
    76.8 + * This code is free software; you can redistribute it and/or modify it
    76.9 + * under the terms of the GNU General Public License version 2 only, as
   76.10 + * published by the Free Software Foundation.  Sun designates this
   76.11 + * particular file as subject to the "Classpath" exception as provided
   76.12 + * by Sun in the LICENSE file that accompanied this code.
   76.13 + *
   76.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   76.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   76.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   76.17 + * version 2 for more details (a copy is included in the LICENSE file that
   76.18 + * accompanied this code).
   76.19 + *
   76.20 + * You should have received a copy of the GNU General Public License version
   76.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   76.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   76.23 + *
   76.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   76.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   76.26 + * have any questions.
   76.27 + */
   76.28 +package org.jdesktop.synthdesigner.synthmodel.jibxhelpers;
   76.29 +
   76.30 +/**
   76.31 + * ClassConverter
   76.32 + *
   76.33 + * @author Created by Jasper Potts (Jul 16, 2007)
   76.34 + */
   76.35 +public class ClassConverter {
   76.36 +
   76.37 +    public static String classToString(Class c) {
   76.38 +        return c == null ? "" : c.getName();
   76.39 +    }
   76.40 +
   76.41 +    public static Class stringToClass(String className) {
   76.42 +        if (className == null || className.length() == 0) {
   76.43 +            return null;
   76.44 +        }
   76.45 +        try {
   76.46 +            ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
   76.47 +            if (classLoader == null) classLoader = ClassConverter.class.getClassLoader();
   76.48 +            return classLoader.loadClass(className);
   76.49 +        } catch (ClassNotFoundException e) {
   76.50 +            System.err.println("Failed to find class with name [" + className + "] in ClassConverter");
   76.51 +            e.printStackTrace();
   76.52 +            return null;
   76.53 +        }
   76.54 +    }
   76.55 +
   76.56 +}
    77.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    77.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/jibxhelpers/ClassMapper.java	Wed Apr 29 00:27:46 2009 -0700
    77.3 @@ -0,0 +1,78 @@
    77.4 +/*
    77.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    77.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    77.7 + *
    77.8 + * This code is free software; you can redistribute it and/or modify it
    77.9 + * under the terms of the GNU General Public License version 2 only, as
   77.10 + * published by the Free Software Foundation.  Sun designates this
   77.11 + * particular file as subject to the "Classpath" exception as provided
   77.12 + * by Sun in the LICENSE file that accompanied this code.
   77.13 + *
   77.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   77.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   77.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   77.17 + * version 2 for more details (a copy is included in the LICENSE file that
   77.18 + * accompanied this code).
   77.19 + *
   77.20 + * You should have received a copy of the GNU General Public License version
   77.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   77.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   77.23 + *
   77.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   77.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   77.26 + * have any questions.
   77.27 + */
   77.28 +package org.jdesktop.synthdesigner.synthmodel.jibxhelpers;
   77.29 +
   77.30 +import org.jibx.runtime.IMarshaller;
   77.31 +import org.jibx.runtime.IMarshallingContext;
   77.32 +import org.jibx.runtime.IUnmarshaller;
   77.33 +import org.jibx.runtime.IUnmarshallingContext;
   77.34 +import org.jibx.runtime.JiBXException;
   77.35 +import org.jibx.runtime.impl.MarshallingContext;
   77.36 +import org.jibx.runtime.impl.UnmarshallingContext;
   77.37 +
   77.38 +
   77.39 +public class ClassMapper implements IMarshaller, IUnmarshaller {
   77.40 +    private static final String ELEMENT_NAME = "type";
   77.41 +
   77.42 +    public boolean isExtension(int i) {
   77.43 +        return false;
   77.44 +    }
   77.45 +
   77.46 +    public boolean isPresent(IUnmarshallingContext iUnmarshallingContext) throws JiBXException {
   77.47 +        return iUnmarshallingContext.isAt(null, ELEMENT_NAME);
   77.48 +    }
   77.49 +
   77.50 +    public void marshal(Object object, IMarshallingContext iMarshallingContext) throws JiBXException {
   77.51 +        if (!(object instanceof Class)) {
   77.52 +            throw new JiBXException("Invalid object type for marshaller");
   77.53 +        } else if (!(iMarshallingContext instanceof MarshallingContext)) {
   77.54 +            throw new JiBXException("Invalid object type for marshaller");
   77.55 +        } else {
   77.56 +            MarshallingContext ctx = (MarshallingContext) iMarshallingContext;
   77.57 +            Class clazz = (Class) object;
   77.58 +            ctx.startTagAttributes(0, ELEMENT_NAME).
   77.59 +                    attribute(0, "value", clazz.getName()).
   77.60 +                    closeStartEmpty();
   77.61 +        }
   77.62 +    }
   77.63 +
   77.64 +    public Object unmarshal(Object object, IUnmarshallingContext iUnmarshallingContext) throws JiBXException {
   77.65 +        // make sure we're at the appropriate start tag
   77.66 +        UnmarshallingContext ctx = (UnmarshallingContext) iUnmarshallingContext;
   77.67 +        if (!ctx.isAt(null, ELEMENT_NAME)) {
   77.68 +            ctx.throwStartTagNameError(null, ELEMENT_NAME);
   77.69 +        }
   77.70 +        // get values
   77.71 +        String value = ctx.attributeText(null, "value", null);
   77.72 +        ctx.parsePastEndTag(null, ELEMENT_NAME);
   77.73 +        // create
   77.74 +        try {
   77.75 +            return Class.forName(value);
   77.76 +        } catch (Exception e) {
   77.77 +            e.printStackTrace();
   77.78 +        }
   77.79 +        return null;
   77.80 +    }
   77.81 +}
    78.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    78.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/jibxhelpers/FontMapper.java	Wed Apr 29 00:27:46 2009 -0700
    78.3 @@ -0,0 +1,86 @@
    78.4 +/*
    78.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    78.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    78.7 + *
    78.8 + * This code is free software; you can redistribute it and/or modify it
    78.9 + * under the terms of the GNU General Public License version 2 only, as
   78.10 + * published by the Free Software Foundation.  Sun designates this
   78.11 + * particular file as subject to the "Classpath" exception as provided
   78.12 + * by Sun in the LICENSE file that accompanied this code.
   78.13 + *
   78.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   78.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   78.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   78.17 + * version 2 for more details (a copy is included in the LICENSE file that
   78.18 + * accompanied this code).
   78.19 + *
   78.20 + * You should have received a copy of the GNU General Public License version
   78.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   78.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   78.23 + *
   78.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   78.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   78.26 + * have any questions.
   78.27 + */
   78.28 +package org.jdesktop.synthdesigner.synthmodel.jibxhelpers;
   78.29 +
   78.30 +import org.jibx.runtime.IMarshaller;
   78.31 +import org.jibx.runtime.IMarshallingContext;
   78.32 +import org.jibx.runtime.IUnmarshaller;
   78.33 +import org.jibx.runtime.IUnmarshallingContext;
   78.34 +import org.jibx.runtime.JiBXException;
   78.35 +import org.jibx.runtime.impl.MarshallingContext;
   78.36 +import org.jibx.runtime.impl.UnmarshallingContext;
   78.37 +
   78.38 +import java.awt.Font;
   78.39 +
   78.40 +/**
   78.41 + * FontMapper
   78.42 + *
   78.43 + * @author Created by Jasper Potts (Jun 8, 2007)
   78.44 + */
   78.45 +public class FontMapper implements IMarshaller, IUnmarshaller {
   78.46 +    private static final String ELEMENT_NAME = "font";
   78.47 +    private static final String FAMILY_NAME = "family";
   78.48 +    private static final String STYLE_NAME = "style";
   78.49 +    private static final String SIZE_NAME = "size";
   78.50 +
   78.51 +    public boolean isExtension(int i) {
   78.52 +        return false;
   78.53 +    }
   78.54 +
   78.55 +    public boolean isPresent(IUnmarshallingContext iUnmarshallingContext) throws JiBXException {
   78.56 +        return iUnmarshallingContext.isAt(null, ELEMENT_NAME);
   78.57 +    }
   78.58 +
   78.59 +    public void marshal(Object object, IMarshallingContext iMarshallingContext) throws JiBXException {
   78.60 +        if (!(object instanceof Font)) {
   78.61 +            throw new JiBXException("Invalid object type for marshaller");
   78.62 +        } else if (!(iMarshallingContext instanceof MarshallingContext)) {
   78.63 +            throw new JiBXException("Invalid object type for marshaller");
   78.64 +        } else {
   78.65 +            MarshallingContext ctx = (MarshallingContext) iMarshallingContext;
   78.66 +            Font font = (Font) object;
   78.67 +            ctx.startTagAttributes(0, ELEMENT_NAME).
   78.68 +                    attribute(0, FAMILY_NAME, font.getFamily()).
   78.69 +                    attribute(0, STYLE_NAME, font.getStyle()).
   78.70 +                    attribute(0, SIZE_NAME, font.getSize()).
   78.71 +                    closeStartEmpty();
   78.72 +        }
   78.73 +    }
   78.74 +
   78.75 +    public Object unmarshal(Object object, IUnmarshallingContext iUnmarshallingContext) throws JiBXException {
   78.76 +        // make sure we're at the appropriate start tag
   78.77 +        UnmarshallingContext ctx = (UnmarshallingContext) iUnmarshallingContext;
   78.78 +        if (!ctx.isAt(null, ELEMENT_NAME)) {
   78.79 +            ctx.throwStartTagNameError(null, ELEMENT_NAME);
   78.80 +        }
   78.81 +        // get values
   78.82 +        String name = ctx.attributeText(null, FAMILY_NAME, null);
   78.83 +        int style = ctx.attributeInt(null, STYLE_NAME, 0);
   78.84 +        int size = ctx.attributeInt(null, SIZE_NAME, 0);
   78.85 +        ctx.parsePastEndTag(null, ELEMENT_NAME);
   78.86 +        // create
   78.87 +        return new Font(name, style, size);
   78.88 +    }
   78.89 +}
    79.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    79.2 +++ b/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/jibxhelpers/UIPropertyMapper.java	Wed Apr 29 00:27:46 2009 -0700
    79.3 @@ -0,0 +1,155 @@
    79.4 +/*
    79.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    79.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    79.7 + *
    79.8 + * This code is free software; you can redistribute it and/or modify it
    79.9 + * under the terms of the GNU General Public License version 2 only, as
   79.10 + * published by the Free Software Foundation.  Sun designates this
   79.11 + * particular file as subject to the "Classpath" exception as provided
   79.12 + * by Sun in the LICENSE file that accompanied this code.
   79.13 + *
   79.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   79.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   79.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   79.17 + * version 2 for more details (a copy is included in the LICENSE file that
   79.18 + * accompanied this code).
   79.19 + *
   79.20 + * You should have received a copy of the GNU General Public License version
   79.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   79.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   79.23 + *
   79.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   79.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   79.26 + * have any questions.
   79.27 + */
   79.28 +package org.jdesktop.synthdesigner.synthmodel.jibxhelpers;
   79.29 +
   79.30 +import org.jdesktop.swingx.designer.jibxhelpers.DimensionMapper;
   79.31 +import org.jdesktop.swingx.designer.jibxhelpers.InsetsMapper;
   79.32 +import org.jdesktop.synthdesigner.synthmodel.UIProperty;
   79.33 +import org.jibx.runtime.IMarshallable;
   79.34 +import org.jibx.runtime.IMarshaller;
   79.35 +import org.jibx.runtime.IMarshallingContext;
   79.36 +import org.jibx.runtime.IUnmarshaller;
   79.37 +import org.jibx.runtime.IUnmarshallingContext;
   79.38 +import org.jibx.runtime.JiBXException;
   79.39 +import org.jibx.runtime.impl.MarshallingContext;
   79.40 +import org.jibx.runtime.impl.UnmarshallingContext;
   79.41 +
   79.42 +/**
   79.43 + * UIPropertyMapper
   79.44 + *
   79.45 + * @author Created by Jasper Potts (Jul 10, 2007)
   79.46 + */
   79.47 +public class UIPropertyMapper implements IMarshaller, IUnmarshaller {
   79.48 +    private static final String ELEMENT_NAME = "uiProperty";
   79.49 +    private static final String NAME_NAME = "name";
   79.50 +    private static final String TYPE_NAME = "type";
   79.51 +    private static final String VALUE_NAME = "value";
   79.52 +
   79.53 +    public boolean isExtension(int i) {
   79.54 +        return false;
   79.55 +    }
   79.56 +
   79.57 +    public boolean isPresent(IUnmarshallingContext iUnmarshallingContext) throws JiBXException {
   79.58 +        return iUnmarshallingContext.isAt(null, ELEMENT_NAME);
   79.59 +    }
   79.60 +
   79.61 +    public void marshal(Object object, IMarshallingContext iMarshallingContext) throws JiBXException {
   79.62 +        if (!(object instanceof UIProperty)) {
   79.63 +            throw new JiBXException("Invalid object type for marshaller");
   79.64 +        } else if (!(iMarshallingContext instanceof MarshallingContext)) {
   79.65 +            throw new JiBXException("Invalid object type for marshaller");
   79.66 +        } else {
   79.67 +            MarshallingContext ctx = (MarshallingContext) iMarshallingContext;
   79.68 +            UIProperty property = (UIProperty) object;
   79.69 +            ctx.startTagAttributes(0, ELEMENT_NAME);
   79.70 +            ctx.attribute(0, NAME_NAME, property.getName());
   79.71 +            ctx.attribute(0, TYPE_NAME, property.getType().toString());
   79.72 +            switch (property.getType()) {
   79.73 +                case BOOLEAN:
   79.74 +                case DOUBLE:
   79.75 +                case INT:
   79.76 +                case FLOAT:
   79.77 +                case STRING:
   79.78 +                    ctx.attribute(0, VALUE_NAME, property.getValue().toString());
   79.79 +                    ctx.closeStartEmpty();
   79.80 +                    break;
   79.81 +                case INSETS:
   79.82 +                    ctx.closeStartContent();
   79.83 +                    new InsetsMapper().marshal(property.getValue(), ctx);
   79.84 +                    ctx.endTag(0, ELEMENT_NAME);
   79.85 +                    break;
   79.86 +                case COLOR:
   79.87 +                case FONT:
   79.88 +                    ctx.closeStartContent();
   79.89 +                    if (property.getValue() instanceof IMarshallable) {
   79.90 +                        ((IMarshallable) property.getValue()).marshal(ctx);
   79.91 +                    } else {
   79.92 +                        throw new JiBXException("Mapped value is not marshallable");
   79.93 +                    }
   79.94 +                    ctx.endTag(0, ELEMENT_NAME);
   79.95 +                    break;
   79.96 +                case DIMENSION:
   79.97 +                    ctx.closeStartContent();
   79.98 +                    new DimensionMapper().marshal(property.getValue(), ctx);
   79.99 +                    ctx.endTag(0, ELEMENT_NAME);
  79.100 +                    break;
  79.101 +                case BORDER:
  79.102 +                    ctx.closeStartContent();
  79.103 +                    new BorderMapper().marshal(property.getValue(), ctx);
  79.104 +                    ctx.endTag(0, ELEMENT_NAME);
  79.105 +                    break;
  79.106 +            }
  79.107 +        }
  79.108 +    }
  79.109 +
  79.110 +    public Object unmarshal(Object object, IUnmarshallingContext iUnmarshallingContext) throws JiBXException {
  79.111 +        // make sure we're at the appropriate start tag
  79.112 +        UnmarshallingContext ctx = (UnmarshallingContext) iUnmarshallingContext;
  79.113 +        if (!ctx.isAt(null, ELEMENT_NAME)) {
  79.114 +            ctx.throwStartTagNameError(null, ELEMENT_NAME);
  79.115 +        }
  79.116 +        // get values
  79.117 +        Object value = null;
  79.118 +        String name = ctx.attributeText(null, NAME_NAME, null);
  79.119 +        UIProperty.PropertyType type = UIProperty.PropertyType.valueOf(ctx.attributeText(null, TYPE_NAME, null));
  79.120 +        switch (type) {
  79.121 +            case BOOLEAN:
  79.122 +                value = Boolean.parseBoolean(ctx.attributeText(null, VALUE_NAME, null));
  79.123 +                break;
  79.124 +            case DOUBLE:
  79.125 +                value = Double.parseDouble(ctx.attributeText(null, VALUE_NAME, null));
  79.126 +                break;
  79.127 +            case INT:
  79.128 +                value = Integer.parseInt(ctx.attributeText(null, VALUE_NAME, null));
  79.129 +                break;
  79.130 +            case FLOAT:
  79.131 +                value = Float.parseFloat(ctx.attributeText(null, VALUE_NAME, null));
  79.132 +                break;
  79.133 +            case STRING:
  79.134 +                value = ctx.attributeText(null, VALUE_NAME, null);
  79.135 +                break;
  79.136 +            case INSETS:
  79.137 +                ctx.parsePastStartTag(null, ELEMENT_NAME);
  79.138 +                value = new InsetsMapper().unmarshal(value, ctx);
  79.139 +                break;
  79.140 +            case COLOR:
  79.141 +            case FONT:
  79.142 +                ctx.parsePastStartTag(null, ELEMENT_NAME);
  79.143 +                value = ctx.unmarshalElement();
  79.144 +                break;
  79.145 +            case DIMENSION:
  79.146 +                ctx.parsePastStartTag(null, ELEMENT_NAME);
  79.147 +                value = new DimensionMapper().unmarshal(value, ctx);
  79.148 +                break;
  79.149 +            case BORDER:
  79.150 +                ctx.parsePastStartTag(null, ELEMENT_NAME);
  79.151 +                value = new BorderMapper().unmarshal(value, ctx);
  79.152 +                break;
  79.153 +        }
  79.154 +        ctx.parsePastEndTag(null, ELEMENT_NAME);
  79.155 +        // create
  79.156 +        return new UIProperty(name, type, value);
  79.157 +    }
  79.158 +}
    80.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    80.2 +++ b/src/share/classes/com/sun/java/swing/Painter.java	Wed Apr 29 00:27:46 2009 -0700
    80.3 @@ -0,0 +1,33 @@
    80.4 +/*
    80.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    80.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    80.7 + *
    80.8 + * This code is free software; you can redistribute it and/or modify it
    80.9 + * under the terms of the GNU General Public License version 2 only, as
   80.10 + * published by the Free Software Foundation.  Sun designates this
   80.11 + * particular file as subject to the "Classpath" exception as provided
   80.12 + * by Sun in the LICENSE file that accompanied this code.
   80.13 + *
   80.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   80.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   80.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   80.17 + * version 2 for more details (a copy is included in the LICENSE file that
   80.18 + * accompanied this code).
   80.19 + *
   80.20 + * You should have received a copy of the GNU General Public License version
   80.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   80.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   80.23 + *
   80.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   80.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   80.26 + * have any questions.
   80.27 + */
   80.28 +package com.sun.java.swing;
   80.29 +
   80.30 +/**
   80.31 + * This class is preserved for backward compatibility with JDK 6.
   80.32 + *
   80.33 + * @deprecated Use {@link javax.swing.Painter} instead.
   80.34 + */
   80.35 +public interface Painter<T> extends javax.swing.Painter {
   80.36 +}
    81.1 --- a/src/share/classes/com/sun/java/swing/plaf/gtk/GTKFileChooserUI.java	Tue Apr 28 14:43:44 2009 -0700
    81.2 +++ b/src/share/classes/com/sun/java/swing/plaf/gtk/GTKFileChooserUI.java	Wed Apr 29 00:27:46 2009 -0700
    81.3 @@ -134,6 +134,15 @@
    81.4          super(filechooser);
    81.5      }
    81.6  
    81.7 +    protected ActionMap createActionMap() {
    81.8 +        ActionMap map = new ActionMapUIResource();
    81.9 +        map.put("approveSelection", getApproveSelectionAction());
   81.10 +        map.put("cancelSelection", getCancelSelectionAction());
   81.11 +        map.put("Go Up", getChangeToParentDirectoryAction());
   81.12 +        map.put("fileNameCompletion", getFileNameCompletionAction());
   81.13 +        return map;
   81.14 +    }
   81.15 +
   81.16      public String getFileName() {
   81.17          JFileChooser fc = getFileChooser();
   81.18          String typedInName = fileNameTextField != null ?
    82.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    82.2 +++ b/src/share/classes/com/sun/java/swing/plaf/nimbus/AbstractRegionPainter.java	Wed Apr 29 00:27:46 2009 -0700
    82.3 @@ -0,0 +1,33 @@
    82.4 +/*
    82.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    82.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    82.7 + *
    82.8 + * This code is free software; you can redistribute it and/or modify it
    82.9 + * under the terms of the GNU General Public License version 2 only, as
   82.10 + * published by the Free Software Foundation.  Sun designates this
   82.11 + * particular file as subject to the "Classpath" exception as provided
   82.12 + * by Sun in the LICENSE file that accompanied this code.
   82.13 + *
   82.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   82.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   82.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   82.17 + * version 2 for more details (a copy is included in the LICENSE file that
   82.18 + * accompanied this code).
   82.19 + *
   82.20 + * You should have received a copy of the GNU General Public License version
   82.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   82.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   82.23 + *
   82.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   82.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   82.26 + * have any questions.
   82.27 + */
   82.28 +package com.sun.java.swing.plaf.nimbus;
   82.29 +
   82.30 +/**
   82.31 + * This class is preserved for backward compatibility with JDK 6.
   82.32 + *
   82.33 + * @deprecated Use {@link javax.swing.plaf.nimbus.AbstractRegionPainter} instead.
   82.34 + */
   82.35 +public abstract class AbstractRegionPainter extends javax.swing.plaf.nimbus.AbstractRegionPainter {
   82.36 +}
    83.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    83.2 +++ b/src/share/classes/com/sun/java/swing/plaf/nimbus/NimbusLookAndFeel.java	Wed Apr 29 00:27:46 2009 -0700
    83.3 @@ -0,0 +1,33 @@
    83.4 +/*
    83.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    83.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    83.7 + *
    83.8 + * This code is free software; you can redistribute it and/or modify it
    83.9 + * under the terms of the GNU General Public License version 2 only, as
   83.10 + * published by the Free Software Foundation.  Sun designates this
   83.11 + * particular file as subject to the "Classpath" exception as provided
   83.12 + * by Sun in the LICENSE file that accompanied this code.
   83.13 + *
   83.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   83.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   83.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   83.17 + * version 2 for more details (a copy is included in the LICENSE file that
   83.18 + * accompanied this code).
   83.19 + *
   83.20 + * You should have received a copy of the GNU General Public License version
   83.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   83.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   83.23 + *
   83.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   83.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   83.26 + * have any questions.
   83.27 + */
   83.28 +package com.sun.java.swing.plaf.nimbus;
   83.29 +
   83.30 +/**
   83.31 + * This class is preserved for backward compatibility with JDK 6.
   83.32 + *
   83.33 + * @deprecated Use {@link javax.swing.plaf.nimbus.NimbusLookAndFeel} instead.
   83.34 + */
   83.35 +public class NimbusLookAndFeel extends javax.swing.plaf.nimbus.NimbusLookAndFeel {
   83.36 +}
    84.1 --- a/src/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java	Tue Apr 28 14:43:44 2009 -0700
    84.2 +++ b/src/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java	Wed Apr 29 00:27:46 2009 -0700
    84.3 @@ -1009,6 +1009,7 @@
    84.4              "PopupMenu.background", MenuBackgroundColor,
    84.5              "PopupMenu.foreground", MenuTextColor,
    84.6              "PopupMenu.popupSound", "win.sound.menuPopup",
    84.7 +            "PopupMenu.consumeEventOnClose", Boolean.TRUE,
    84.8  
    84.9              // Menus
   84.10              "Menu.font", MenuFont,
    85.1 --- a/src/share/classes/com/sun/media/sound/SoftAudioPusher.java	Tue Apr 28 14:43:44 2009 -0700
    85.2 +++ b/src/share/classes/com/sun/media/sound/SoftAudioPusher.java	Wed Apr 29 00:27:46 2009 -0700
    85.3 @@ -54,6 +54,7 @@
    85.4              return;
    85.5          active = true;
    85.6          audiothread = new Thread(this);
    85.7 +        audiothread.setDaemon(true);
    85.8          audiothread.setPriority(Thread.MAX_PRIORITY);
    85.9          audiothread.start();
   85.10      }
    86.1 --- a/src/share/classes/com/sun/media/sound/SoftChannel.java	Tue Apr 28 14:43:44 2009 -0700
    86.2 +++ b/src/share/classes/com/sun/media/sound/SoftChannel.java	Wed Apr 29 00:27:46 2009 -0700
    86.3 @@ -93,7 +93,6 @@
    86.4      protected double portamento_time = 1; // keyschanges per control buffer time
    86.5      protected int[] portamento_lastnote = new int[128];
    86.6      protected int portamento_lastnote_ix = 0;
    86.7 -    private int portamento_control_note = -1;
    86.8      private boolean portamento = false;
    86.9      private boolean mono = false;
   86.10      private boolean mute = false;
   86.11 @@ -369,12 +368,12 @@
   86.12          voice.setSoloMute(solomute);
   86.13          if (releaseTriggered)
   86.14              return;
   86.15 -        if (portamento_control_note != -1) {
   86.16 +        if (controller[84] != 0) {
   86.17              voice.co_noteon_keynumber[0]
   86.18 -                    = (tuning.getTuning(portamento_control_note) / 100.0)
   86.19 +                    = (tuning.getTuning(controller[84]) / 100.0)
   86.20                      * (1f / 128f);
   86.21              voice.portamento = true;
   86.22 -            portamento_control_note = -1;
   86.23 +            controlChange(84, 0);
   86.24          } else if (portamento) {
   86.25              if (mono) {
   86.26                  if (portamento_lastnote[0] != -1) {
   86.27 @@ -382,7 +381,7 @@
   86.28                              = (tuning.getTuning(portamento_lastnote[0]) / 100.0)
   86.29                              * (1f / 128f);
   86.30                      voice.portamento = true;
   86.31 -                    portamento_control_note = -1;
   86.32 +                    controlChange(84, 0);
   86.33                  }
   86.34                  portamento_lastnote[0] = noteNumber;
   86.35              } else {
   86.36 @@ -449,19 +448,19 @@
   86.37                      }
   86.38                  }
   86.39  
   86.40 -                if (portamento_control_note != -1) {
   86.41 +                if (controller[84] != 0) {
   86.42                      boolean n_found = false;
   86.43                      for (int i = 0; i < voices.length; i++) {
   86.44                          if (voices[i].on && voices[i].channel == channel
   86.45                                  && voices[i].active
   86.46 -                                && voices[i].note == portamento_control_note
   86.47 +                                && voices[i].note == controller[84]
   86.48                                  && voices[i].releaseTriggered == false) {
   86.49                              voices[i].portamento = true;
   86.50                              voices[i].setNote(noteNumber);
   86.51                              n_found = true;
   86.52                          }
   86.53                      }
   86.54 -                    portamento_control_note = -1;
   86.55 +                    controlChange(84, 0);
   86.56                      if (n_found)
   86.57                          return;
   86.58                  }
   86.59 @@ -556,6 +555,18 @@
   86.60                          && voices[i].releaseTriggered == false) {
   86.61                      voices[i].noteOff(velocity);
   86.62                  }
   86.63 +                // We must also check stolen voices
   86.64 +                if (voices[i].stealer_channel == this && voices[i].stealer_noteNumber == noteNumber) {
   86.65 +                    SoftVoice v = voices[i];
   86.66 +                    v.stealer_releaseTriggered = false;
   86.67 +                    v.stealer_channel = null;
   86.68 +                    v.stealer_performer = null;
   86.69 +                    v.stealer_voiceID = -1;
   86.70 +                    v.stealer_noteNumber = 0;
   86.71 +                    v.stealer_velocity = 0;
   86.72 +                    v.stealer_extendedConnectionBlocks = null;
   86.73 +                    v.stealer_channelmixer = null;
   86.74 +                }
   86.75              }
   86.76  
   86.77              // Try play back note-off triggered voices,
   86.78 @@ -1141,9 +1152,6 @@
   86.79                      }
   86.80                  }
   86.81                  break;
   86.82 -            case 84:
   86.83 -                portamento_control_note = value;
   86.84 -                break;
   86.85              case 98:
   86.86                  nrpn_control = (nrpn_control & (127 << 7)) + value;
   86.87                  rpn_control = RPN_NULL_VALUE;
    87.1 --- a/src/share/classes/com/sun/media/sound/SoftChorus.java	Tue Apr 28 14:43:44 2009 -0700
    87.2 +++ b/src/share/classes/com/sun/media/sound/SoftChorus.java	Wed Apr 29 00:27:46 2009 -0700
    87.3 @@ -38,11 +38,11 @@
    87.4  
    87.5          private float[] delaybuffer;
    87.6          private int rovepos = 0;
    87.7 -        private volatile float gain = 1;
    87.8 -        private volatile float rgain = 0;
    87.9 -        private volatile float delay = 0;
   87.10 +        private float gain = 1;
   87.11 +        private float rgain = 0;
   87.12 +        private float delay = 0;
   87.13          private float lastdelay = 0;
   87.14 -        private volatile float feedback = 0;
   87.15 +        private float feedback = 0;
   87.16  
   87.17          public VariableDelay(int maxbuffersize) {
   87.18              delaybuffer = new float[maxbuffersize];
   87.19 @@ -115,10 +115,8 @@
   87.20  
   87.21      private static class LFODelay {
   87.22  
   87.23 -        private volatile double c_cos_delta;
   87.24 -        private volatile double c_sin_delta;
   87.25 -        private double c_cos = 1;
   87.26 -        private double c_sin = 0;
   87.27 +        private double phase = 1;
   87.28 +        private double phase_step = 0;
   87.29          private double depth = 0;
   87.30          private VariableDelay vdelay;
   87.31          private double samplerate;
   87.32 @@ -139,13 +137,11 @@
   87.33  
   87.34          public void setRate(double rate) {
   87.35              double g = (Math.PI * 2) * (rate / controlrate);
   87.36 -            c_cos_delta = Math.cos(g);
   87.37 -            c_sin_delta = Math.sin(g);
   87.38 +            phase_step = g;
   87.39          }
   87.40  
   87.41          public void setPhase(double phase) {
   87.42 -            c_cos = Math.cos(phase);
   87.43 -            c_sin = Math.sin(phase);
   87.44 +            this.phase = phase;
   87.45          }
   87.46  
   87.47          public void setFeedBack(float feedback) {
   87.48 @@ -161,16 +157,16 @@
   87.49          }
   87.50  
   87.51          public void processMix(float[] in, float[] out, float[] rout) {
   87.52 -            c_cos = c_cos * c_cos_delta - c_sin * c_sin_delta;
   87.53 -            c_sin = c_cos * c_sin_delta + c_sin * c_cos_delta;
   87.54 -            vdelay.setDelay((float) (depth * 0.5 * (c_cos + 2)));
   87.55 +            phase += phase_step;
   87.56 +            while(phase > (Math.PI * 2)) phase -= (Math.PI * 2);
   87.57 +            vdelay.setDelay((float) (depth * 0.5 * (Math.cos(phase) + 2)));
   87.58              vdelay.processMix(in, out, rout);
   87.59          }
   87.60  
   87.61          public void processReplace(float[] in, float[] out, float[] rout) {
   87.62 -            c_cos = c_cos * c_cos_delta - c_sin * c_sin_delta;
   87.63 -            c_sin = c_cos * c_sin_delta + c_sin * c_cos_delta;
   87.64 -            vdelay.setDelay((float) (depth * 0.5 * (c_cos + 2)));
   87.65 +            phase += phase_step;
   87.66 +            while(phase > (Math.PI * 2)) phase -= (Math.PI * 2);
   87.67 +            vdelay.setDelay((float) (depth * 0.5 * (Math.cos(phase) + 2)));
   87.68              vdelay.processReplace(in, out, rout);
   87.69  
   87.70          }
    88.1 --- a/src/share/classes/com/sun/media/sound/SoftFilter.java	Tue Apr 28 14:43:44 2009 -0700
    88.2 +++ b/src/share/classes/com/sun/media/sound/SoftFilter.java	Wed Apr 29 00:27:46 2009 -0700
    88.3 @@ -543,8 +543,6 @@
    88.4  
    88.5      public void filter1(SoftAudioBuffer sbuffer) {
    88.6  
    88.7 -        float[] buffer = sbuffer.array();
    88.8 -
    88.9          if (dirty) {
   88.10              filter1calc();
   88.11              dirty = false;
   88.12 @@ -559,6 +557,7 @@
   88.13  
   88.14          if (wet > 0 || last_wet > 0) {
   88.15  
   88.16 +            float[] buffer = sbuffer.array();
   88.17              int len = buffer.length;
   88.18              float a0 = this.last_a0;
   88.19              float q = this.last_q;
   88.20 @@ -577,14 +576,16 @@
   88.21                      q += q_delta;
   88.22                      gain += gain_delta;
   88.23                      wet += wet_delta;
   88.24 -                    y1 = (1 - q * a0) * y1 - (a0) * y2 + (a0) * buffer[i];
   88.25 -                    y2 = (1 - q * a0) * y2 + (a0) * y1;
   88.26 +                    float ga0 = (1 - q * a0);
   88.27 +                    y1 = ga0 * y1 + (a0) * (buffer[i] - y2);
   88.28 +                    y2 = ga0 * y2 + (a0) * y1;
   88.29                      buffer[i] = y2 * gain * wet + buffer[i] * (1 - wet);
   88.30                  }
   88.31              } else if (a0_delta == 0 && q_delta == 0) {
   88.32 +                float ga0 = (1 - q * a0);
   88.33                  for (int i = 0; i < len; i++) {
   88.34 -                    y1 = (1 - q * a0) * y1 - (a0) * y2 + (a0) * buffer[i];
   88.35 -                    y2 = (1 - q * a0) * y2 + (a0) * y1;
   88.36 +                    y1 = ga0 * y1 + (a0) * (buffer[i] - y2);
   88.37 +                    y2 = ga0 * y2 + (a0) * y1;
   88.38                      buffer[i] = y2 * gain;
   88.39                  }
   88.40              } else {
   88.41 @@ -592,8 +593,9 @@
   88.42                      a0 += a0_delta;
   88.43                      q += q_delta;
   88.44                      gain += gain_delta;
   88.45 -                    y1 = (1 - q * a0) * y1 - (a0) * y2 + (a0) * buffer[i];
   88.46 -                    y2 = (1 - q * a0) * y2 + (a0) * y1;
   88.47 +                    float ga0 = (1 - q * a0);
   88.48 +                    y1 = ga0 * y1 + (a0) * (buffer[i] - y2);
   88.49 +                    y2 = ga0 * y2 + (a0) * y1;
   88.50                      buffer[i] = y2 * gain;
   88.51                  }
   88.52              }
    89.1 --- a/src/share/classes/com/sun/media/sound/SoftJitterCorrector.java	Tue Apr 28 14:43:44 2009 -0700
    89.2 +++ b/src/share/classes/com/sun/media/sound/SoftJitterCorrector.java	Wed Apr 29 00:27:46 2009 -0700
    89.3 @@ -216,6 +216,7 @@
    89.4              };
    89.5  
    89.6              thread = new Thread(runnable);
    89.7 +            thread.setDaemon(true);
    89.8              thread.setPriority(Thread.MAX_PRIORITY);
    89.9              thread.start();
   89.10          }
    90.1 --- a/src/share/classes/com/sun/media/sound/SoftLowFrequencyOscillator.java	Tue Apr 28 14:43:44 2009 -0700
    90.2 +++ b/src/share/classes/com/sun/media/sound/SoftLowFrequencyOscillator.java	Wed Apr 29 00:27:46 2009 -0700
    90.3 @@ -45,6 +45,13 @@
    90.4      private double sin_factor = 0;
    90.5      private static double PI2 = 2.0 * Math.PI;
    90.6  
    90.7 +    public SoftLowFrequencyOscillator() {
    90.8 +        // If sin_step is 0 then sin_stepfreq must be -INF
    90.9 +        for (int i = 0; i < sin_stepfreq.length; i++) {
   90.10 +            sin_stepfreq[i] = Double.NEGATIVE_INFINITY;
   90.11 +        }
   90.12 +    }
   90.13 +
   90.14      public void reset() {
   90.15          for (int i = 0; i < used_count; i++) {
   90.16              out[i][0] = 0;
   90.17 @@ -53,7 +60,8 @@
   90.18              freq[i][0] = 0;
   90.19              delay_counter[i] = 0;
   90.20              sin_phase[i] = 0;
   90.21 -            sin_stepfreq[i] = 0;
   90.22 +            // If sin_step is 0 then sin_stepfreq must be -INF
   90.23 +            sin_stepfreq[i] = Double.NEGATIVE_INFINITY;
   90.24              sin_step[i] = 0;
   90.25          }
   90.26          used_count = 0;
    91.1 --- a/src/share/classes/com/sun/media/sound/SoftMainMixer.java	Tue Apr 28 14:43:44 2009 -0700
    91.2 +++ b/src/share/classes/com/sun/media/sound/SoftMainMixer.java	Wed Apr 29 00:27:46 2009 -0700
    91.3 @@ -48,16 +48,18 @@
    91.4  
    91.5      public final static int CHANNEL_LEFT = 0;
    91.6      public final static int CHANNEL_RIGHT = 1;
    91.7 -    public final static int CHANNEL_EFFECT1 = 2;
    91.8 -    public final static int CHANNEL_EFFECT2 = 3;
    91.9 -    public final static int CHANNEL_EFFECT3 = 4;
   91.10 -    public final static int CHANNEL_EFFECT4 = 5;
   91.11 +    public final static int CHANNEL_MONO = 2;
   91.12 +    public final static int CHANNEL_EFFECT1 = 3;
   91.13 +    public final static int CHANNEL_EFFECT2 = 4;
   91.14 +    public final static int CHANNEL_EFFECT3 = 5;
   91.15 +    public final static int CHANNEL_EFFECT4 = 6;
   91.16      public final static int CHANNEL_LEFT_DRY = 10;
   91.17      public final static int CHANNEL_RIGHT_DRY = 11;
   91.18      public final static int CHANNEL_SCRATCH1 = 12;
   91.19      public final static int CHANNEL_SCRATCH2 = 13;
   91.20      public final static int CHANNEL_CHANNELMIXER_LEFT = 14;
   91.21      public final static int CHANNEL_CHANNELMIXER_RIGHT = 15;
   91.22 +    public final static int CHANNEL_CHANNELMIXER_MONO = 16;
   91.23      protected boolean active_sensing_on = false;
   91.24      private long msec_last_activity = -1;
   91.25      private boolean pusher_silent = false;
   91.26 @@ -485,8 +487,10 @@
   91.27              // to channelmixer left,right input/output
   91.28              SoftAudioBuffer leftbak = buffers[CHANNEL_LEFT];
   91.29              SoftAudioBuffer rightbak = buffers[CHANNEL_RIGHT];
   91.30 +            SoftAudioBuffer monobak = buffers[CHANNEL_MONO];
   91.31              buffers[CHANNEL_LEFT] = buffers[CHANNEL_CHANNELMIXER_LEFT];
   91.32 -            buffers[CHANNEL_RIGHT] = buffers[CHANNEL_CHANNELMIXER_LEFT];
   91.33 +            buffers[CHANNEL_RIGHT] = buffers[CHANNEL_CHANNELMIXER_RIGHT];
   91.34 +            buffers[CHANNEL_MONO] = buffers[CHANNEL_CHANNELMIXER_MONO];
   91.35  
   91.36              int bufferlen = buffers[CHANNEL_LEFT].getSize();
   91.37  
   91.38 @@ -503,6 +507,7 @@
   91.39              for (ModelChannelMixer cmixer : act_registeredMixers) {
   91.40                  for (int i = 0; i < cbuffer.length; i++)
   91.41                      Arrays.fill(cbuffer[i], 0);
   91.42 +                buffers[CHANNEL_MONO].clear();
   91.43                  boolean hasactivevoices = false;
   91.44                  for (int i = 0; i < voicestatus.length; i++)
   91.45                      if (voicestatus[i].active)
   91.46 @@ -517,6 +522,26 @@
   91.47                      }
   91.48                  }
   91.49  
   91.50 +                if(!buffers[CHANNEL_MONO].isSilent())
   91.51 +                {
   91.52 +                    float[] mono = buffers[CHANNEL_MONO].array();
   91.53 +                    float[] left = buffers[CHANNEL_LEFT].array();
   91.54 +                    if (nrofchannels != 1) {
   91.55 +                        float[] right = buffers[CHANNEL_RIGHT].array();
   91.56 +                        for (int i = 0; i < bufferlen; i++) {
   91.57 +                            float v = mono[i];
   91.58 +                            left[i] += v;
   91.59 +                            right[i] += v;
   91.60 +                        }
   91.61 +                    }
   91.62 +                    else
   91.63 +                    {
   91.64 +                        for (int i = 0; i < bufferlen; i++) {
   91.65 +                            left[i] += mono[i];
   91.66 +                        }
   91.67 +                    }
   91.68 +                }
   91.69 +
   91.70                  for (int i = 0; i < cbuffer.length; i++) {
   91.71                      float[] cbuff = cbuffer[i];
   91.72                      float[] obuff = obuffer[i];
   91.73 @@ -539,6 +564,7 @@
   91.74  
   91.75              buffers[CHANNEL_LEFT] = leftbak;
   91.76              buffers[CHANNEL_RIGHT] = rightbak;
   91.77 +            buffers[CHANNEL_MONO] = monobak;
   91.78  
   91.79          }
   91.80  
   91.81 @@ -547,6 +573,27 @@
   91.82                  if (voicestatus[i].channelmixer == null)
   91.83                      voicestatus[i].processAudioLogic(buffers);
   91.84  
   91.85 +        if(!buffers[CHANNEL_MONO].isSilent())
   91.86 +        {
   91.87 +            float[] mono = buffers[CHANNEL_MONO].array();
   91.88 +            float[] left = buffers[CHANNEL_LEFT].array();
   91.89 +            int bufferlen = buffers[CHANNEL_LEFT].getSize();
   91.90 +            if (nrofchannels != 1) {
   91.91 +                float[] right = buffers[CHANNEL_RIGHT].array();
   91.92 +                for (int i = 0; i < bufferlen; i++) {
   91.93 +                    float v = mono[i];
   91.94 +                    left[i] += v;
   91.95 +                    right[i] += v;
   91.96 +                }
   91.97 +            }
   91.98 +            else
   91.99 +            {
  91.100 +                for (int i = 0; i < bufferlen; i++) {
  91.101 +                    left[i] += mono[i];
  91.102 +                }
  91.103 +            }
  91.104 +        }
  91.105 +
  91.106          // Run effects
  91.107          if (synth.chorus_on)
  91.108              chorus.processAudio();
  91.109 @@ -665,7 +712,7 @@
  91.110                                  / synth.getControlRate());
  91.111  
  91.112          control_mutex = synth.control_mutex;
  91.113 -        buffers = new SoftAudioBuffer[16];
  91.114 +        buffers = new SoftAudioBuffer[17];
  91.115          for (int i = 0; i < buffers.length; i++) {
  91.116              buffers[i] = new SoftAudioBuffer(buffersize, synth.getFormat());
  91.117          }
    92.1 --- a/src/share/classes/com/sun/media/sound/SoftSynthesizer.java	Tue Apr 28 14:43:44 2009 -0700
    92.2 +++ b/src/share/classes/com/sun/media/sound/SoftSynthesizer.java	Wed Apr 29 00:27:46 2009 -0700
    92.3 @@ -889,9 +889,12 @@
    92.4              return;
    92.5          }
    92.6          synchronized (control_mutex) {
    92.7 +            Throwable causeException = null;
    92.8              try {
    92.9 -                if (line != null)
   92.10 +                if (line != null) {
   92.11 +                    // can throw IllegalArgumentException
   92.12                      setFormat(line.getFormat());
   92.13 +                }
   92.14  
   92.15                  AudioInputStream ais = openStream(getFormat(), info);
   92.16  
   92.17 @@ -900,10 +903,13 @@
   92.18  
   92.19                  if (line == null)
   92.20                  {
   92.21 -                    if(testline != null)
   92.22 +                    if (testline != null) {
   92.23                          line = testline;
   92.24 -                    else
   92.25 +                    } else {
   92.26 +                        // can throw LineUnavailableException,
   92.27 +                        // IllegalArgumentException, SecurityException
   92.28                          line = AudioSystem.getSourceDataLine(getFormat());
   92.29 +                    }
   92.30                  }
   92.31  
   92.32                  double latency = this.latency;
   92.33 @@ -911,6 +917,8 @@
   92.34                  if (!line.isOpen()) {
   92.35                      int bufferSize = getFormat().getFrameSize()
   92.36                          * (int)(getFormat().getFrameRate() * (latency/1000000f));
   92.37 +                    // can throw LineUnavailableException,
   92.38 +                    // IllegalArgumentException, SecurityException
   92.39                      line.open(getFormat(), bufferSize);
   92.40  
   92.41                      // Remember that we opened that line
   92.42 @@ -954,13 +962,22 @@
   92.43                      weakstream.sourceDataLine = sourceDataLine;
   92.44                  }
   92.45  
   92.46 +            } catch (LineUnavailableException e) {
   92.47 +                causeException = e;
   92.48 +            } catch (IllegalArgumentException e) {
   92.49 +                causeException = e;
   92.50 +            } catch (SecurityException e) {
   92.51 +                causeException = e;
   92.52 +            }
   92.53  
   92.54 -
   92.55 -            } catch (LineUnavailableException e) {
   92.56 +            if (causeException != null) {
   92.57                  if (isOpen())
   92.58                      close();
   92.59                  // am: need MidiUnavailableException(Throwable) ctor!
   92.60 -                throw new MidiUnavailableException(e.toString());
   92.61 +                MidiUnavailableException ex = new MidiUnavailableException(
   92.62 +                        "Can not open line");
   92.63 +                ex.initCause(causeException);
   92.64 +                throw ex;
   92.65              }
   92.66  
   92.67          }
    93.1 --- a/src/share/classes/com/sun/media/sound/SoftVoice.java	Tue Apr 28 14:43:44 2009 -0700
    93.2 +++ b/src/share/classes/com/sun/media/sound/SoftVoice.java	Wed Apr 29 00:27:46 2009 -0700
    93.3 @@ -782,6 +782,7 @@
    93.4  
    93.5          SoftAudioBuffer left = buffer[SoftMainMixer.CHANNEL_LEFT];
    93.6          SoftAudioBuffer right = buffer[SoftMainMixer.CHANNEL_RIGHT];
    93.7 +        SoftAudioBuffer mono = buffer[SoftMainMixer.CHANNEL_MONO];
    93.8          SoftAudioBuffer eff1 = buffer[SoftMainMixer.CHANNEL_EFFECT1];
    93.9          SoftAudioBuffer eff2 = buffer[SoftMainMixer.CHANNEL_EFFECT2];
   93.10          SoftAudioBuffer leftdry = buffer[SoftMainMixer.CHANNEL_LEFT_DRY];
   93.11 @@ -803,13 +804,22 @@
   93.12                  mixAudioStream(rightdry, left, last_out_mixer_left,
   93.13                          out_mixer_left);
   93.14          } else {
   93.15 -            mixAudioStream(leftdry, left, last_out_mixer_left, out_mixer_left);
   93.16 -            if (rightdry != null)
   93.17 -                mixAudioStream(rightdry, right, last_out_mixer_right,
   93.18 +            if(rightdry == null &&
   93.19 +                    last_out_mixer_left == last_out_mixer_right &&
   93.20 +                    out_mixer_left == out_mixer_right)
   93.21 +            {
   93.22 +                mixAudioStream(leftdry, mono, last_out_mixer_left, out_mixer_left);
   93.23 +            }
   93.24 +            else
   93.25 +            {
   93.26 +                mixAudioStream(leftdry, left, last_out_mixer_left, out_mixer_left);
   93.27 +                if (rightdry != null)
   93.28 +                    mixAudioStream(rightdry, right, last_out_mixer_right,
   93.29                          out_mixer_right);
   93.30 -            else
   93.31 -                mixAudioStream(leftdry, right, last_out_mixer_right,
   93.32 +                else
   93.33 +                    mixAudioStream(leftdry, right, last_out_mixer_right,
   93.34                          out_mixer_right);
   93.35 +            }
   93.36          }
   93.37  
   93.38          if (rightdry == null) {
    94.1 --- a/src/share/classes/java/awt/Color.java	Tue Apr 28 14:43:44 2009 -0700
    94.2 +++ b/src/share/classes/java/awt/Color.java	Wed Apr 29 00:27:46 2009 -0700
    94.3 @@ -687,7 +687,7 @@
    94.4       * @since   JDK1.0
    94.5       */
    94.6      public boolean equals(Object obj) {
    94.7 -        return obj instanceof Color && ((Color)obj).value == this.value;
    94.8 +        return obj instanceof Color && ((Color)obj).getRGB() == this.getRGB();
    94.9      }
   94.10  
   94.11      /**
    95.1 --- a/src/share/classes/java/awt/Component.java	Tue Apr 28 14:43:44 2009 -0700
    95.2 +++ b/src/share/classes/java/awt/Component.java	Wed Apr 29 00:27:46 2009 -0700
    95.3 @@ -6666,7 +6666,7 @@
    95.4  
    95.5  
    95.6              // Update stacking order
    95.7 -            peer.setZOrder(getHWPeerAboveMe());
    95.8 +            updateZOrder();
    95.9  
   95.10              if (!isAddNotifyComplete) {
   95.11                  mixOnShowing();
   95.12 @@ -9838,4 +9838,11 @@
   95.13  
   95.14          return doesClassImplement(obj.getClass(), interfaceName);
   95.15      }
   95.16 +
   95.17 +    // Note that the method is overriden in the Window class,
   95.18 +    // a window doesn't need to be updated in the Z-order.
   95.19 +    void updateZOrder() {
   95.20 +        peer.setZOrder(getHWPeerAboveMe());
   95.21 +    }
   95.22 +
   95.23  }
    96.1 --- a/src/share/classes/java/awt/Container.java	Tue Apr 28 14:43:44 2009 -0700
    96.2 +++ b/src/share/classes/java/awt/Container.java	Wed Apr 29 00:27:46 2009 -0700
    96.3 @@ -840,7 +840,7 @@
    96.4                      // Native container changed - need to reparent native widgets
    96.5                      newNativeContainer.reparentChild(comp);
    96.6                  }
    96.7 -                comp.peer.setZOrder(comp.getHWPeerAboveMe());
    96.8 +                comp.updateZOrder();
    96.9  
   96.10                  if (!comp.isLightweight() && isLightweight()) {
   96.11                      // If component is heavyweight and one of the containers is lightweight
   96.12 @@ -3977,10 +3977,8 @@
   96.13              Component comp = getComponent(index);
   96.14              if (!comp.isLightweight()) {
   96.15                  comp.applyCurrentShape();
   96.16 -                if (comp instanceof Container && ((Container)comp).getLayout() == null) {
   96.17 -                    ((Container)comp).recursiveApplyCurrentShape();
   96.18 -                }
   96.19 -            } else if (comp instanceof Container &&
   96.20 +            }
   96.21 +            if (comp instanceof Container &&
   96.22                      ((Container)comp).hasHeavyweightDescendants()) {
   96.23                  ((Container)comp).recursiveApplyCurrentShape();
   96.24              }
    97.1 --- a/src/share/classes/java/awt/GraphicsConfiguration.java	Tue Apr 28 14:43:44 2009 -0700
    97.2 +++ b/src/share/classes/java/awt/GraphicsConfiguration.java	Wed Apr 29 00:27:46 2009 -0700
    97.3 @@ -440,13 +440,14 @@
    97.4       * the {@link GraphicsDevice.WindowTranslucency#PERPIXEL_TRANSLUCENT
    97.5       * PERPIXEL_TRANSLUCENT} kind of translucency.
    97.6       *
    97.7 -     * @param gc GraphicsConfiguration
    97.8 -     * @throws NullPointerException if the gc argument is null
    97.9       * @return whether the given GraphicsConfiguration supports
   97.10       *         the translucency effects.
   97.11 +     *
   97.12       * @see Window#setBackground(Color)
   97.13 +     *
   97.14 +     * @since 1.7
   97.15       */
   97.16 -    /*public */boolean isTranslucencyCapable() {
   97.17 +    public boolean isTranslucencyCapable() {
   97.18          // Overridden in subclasses
   97.19          return false;
   97.20      }
    98.1 --- a/src/share/classes/java/awt/GraphicsDevice.java	Tue Apr 28 14:43:44 2009 -0700
    98.2 +++ b/src/share/classes/java/awt/GraphicsDevice.java	Wed Apr 29 00:27:46 2009 -0700
    98.3 @@ -112,10 +112,14 @@
    98.4       */
    98.5      public final static int TYPE_IMAGE_BUFFER           = 2;
    98.6  
    98.7 -    /** Kinds of translucency supported by the underlying system.
    98.8 -     *  @see #isTranslucencySupported
    98.9 +    /**
   98.10 +     * Kinds of translucency supported by the underlying system.
   98.11 +     *
   98.12 +     * @see #isWindowTranslucencySupported
   98.13 +     *
   98.14 +     * @since 1.7
   98.15       */
   98.16 -    /*public */static enum WindowTranslucency {
   98.17 +    public static enum WindowTranslucency {
   98.18          /**
   98.19           * Represents support in the underlying system for windows each pixel
   98.20           * of which is guaranteed to be either completely opaque, with
   98.21 @@ -246,38 +250,44 @@
   98.22       * full-screen window is not visible, this method will make it visible.
   98.23       * It will remain visible when returning to windowed mode.
   98.24       * <p>
   98.25 -     * When returning to windowed mode from an exclusive full-screen window, any
   98.26 -     * display changes made by calling <code>setDisplayMode</code> are
   98.27 +     * When entering full-screen mode, all the translucency effects are reset for
   98.28 +     * the window. Its shape is set to {@code null}, the opacity value is set to
   98.29 +     * 1.0f, and the background color alpha is set to 255 (completely opaque).
   98.30 +     * These values are not restored when returning to windowed mode.
   98.31 +     * <p>
   98.32 +     * When returning to windowed mode from an exclusive full-screen window,
   98.33 +     * any display changes made by calling {@code setDisplayMode} are
   98.34       * automatically restored to their original state.
   98.35       *
   98.36 -     * @param w a window to use as the full-screen window; <code>null</code>
   98.37 +     * @param w a window to use as the full-screen window; {@code null}
   98.38       * if returning to windowed mode.  Some platforms expect the
   98.39       * fullscreen window to be a top-level component (i.e., a Frame);
   98.40       * therefore it is preferable to use a Frame here rather than a
   98.41       * Window.
   98.42 +     *
   98.43       * @see #isFullScreenSupported
   98.44       * @see #getFullScreenWindow
   98.45       * @see #setDisplayMode
   98.46       * @see Component#enableInputMethods
   98.47       * @see Component#setVisible
   98.48 +     *
   98.49       * @since 1.4
   98.50       */
   98.51      public void setFullScreenWindow(Window w) {
   98.52          if (w != null) {
   98.53 -            //XXX: The actions should be documented in some non-update release.
   98.54 -            /*
   98.55              if (w.getShape() != null) {
   98.56 -                w.setShape(w, null);
   98.57 -            }
   98.58 -            if (!w.isOpaque()) {
   98.59 -                w.setOpaque(false);
   98.60 +                w.setShape(null);
   98.61              }
   98.62              if (w.getOpacity() < 1.0f) {
   98.63                  w.setOpacity(1.0f);
   98.64              }
   98.65 -            */
   98.66 +            Color bgColor = w.getBackground();
   98.67 +            if (bgColor.getAlpha() < 255) {
   98.68 +                bgColor = new Color(bgColor.getRed(), bgColor.getGreen(),
   98.69 +                                    bgColor.getBlue(), 255);
   98.70 +                w.setBackground(bgColor);
   98.71 +            }
   98.72          }
   98.73 -
   98.74          if (fullScreenWindow != null && windowedModeBounds != null) {
   98.75              // if the window went into fs mode before it was realized it may
   98.76              // have (0,0) dimensions
   98.77 @@ -469,13 +479,15 @@
   98.78      }
   98.79  
   98.80      /**
   98.81 -     * Returns whether the given level of translucency is supported
   98.82 +     * Returns whether the given level of translucency is supported by
   98.83       * this graphics device.
   98.84       *
   98.85       * @param translucencyKind a kind of translucency support
   98.86       * @return whether the given translucency kind is supported
   98.87 +     *
   98.88 +     * @since 1.7
   98.89       */
   98.90 -    /*public */boolean isWindowTranslucencySupported(WindowTranslucency translucencyKind) {
   98.91 +    public boolean isWindowTranslucencySupported(WindowTranslucency translucencyKind) {
   98.92          switch (translucencyKind) {
   98.93              case PERPIXEL_TRANSPARENT:
   98.94                  return isWindowShapingSupported();
    99.1 --- a/src/share/classes/java/awt/Window.java	Tue Apr 28 14:43:44 2009 -0700
    99.2 +++ b/src/share/classes/java/awt/Window.java	Wed Apr 29 00:27:46 2009 -0700
    99.3 @@ -25,6 +25,7 @@
    99.4  package java.awt;
    99.5  
    99.6  import java.awt.event.*;
    99.7 +import java.awt.geom.Path2D;
    99.8  import java.awt.geom.Point2D;
    99.9  import java.awt.im.InputContext;
   99.10  import java.awt.image.BufferStrategy;
   99.11 @@ -297,6 +298,7 @@
   99.12      /*
   99.13       * Opacity level of the window
   99.14       *
   99.15 +     * @serial
   99.16       * @see #setOpacity(float)
   99.17       * @see #getOpacity()
   99.18       * @since 1.7
   99.19 @@ -307,6 +309,7 @@
   99.20       * The shape assigned to this window. This field is set to null if
   99.21       * no shape is set (rectangular window).
   99.22       *
   99.23 +     * @serial
   99.24       * @see #getShape()
   99.25       * @see #setShape(Shape)
   99.26       * @since 1.7
   99.27 @@ -3340,32 +3343,78 @@
   99.28      // ******************** SHAPES & TRANSPARENCY CODE ********************
   99.29  
   99.30      /**
   99.31 -     * JavaDoc
   99.32 +     * Returns the opacity of the window.
   99.33 +     *
   99.34 +     * @return the opacity of the window
   99.35 +     *
   99.36 +     * @see Window#setOpacity
   99.37 +     * @see GraphicsDevice.WindowTranslucency
   99.38 +     *
   99.39 +     * @since 1.7
   99.40       */
   99.41 -    /*public */float getOpacity() {
   99.42 +    public float getOpacity() {
   99.43          synchronized (getTreeLock()) {
   99.44              return opacity;
   99.45          }
   99.46      }
   99.47  
   99.48      /**
   99.49 -     * JavaDoc
   99.50 +     * Sets the opacity of the window.
   99.51 +     * <p>
   99.52 +     * The opacity value is in the range [0..1]. Note that setting the opacity
   99.53 +     * level of 0 may or may not disable the mouse event handling on this
   99.54 +     * window. This is a platform-dependent behavior.
   99.55 +     * <p>
   99.56 +     * In order for this method to enable the translucency effect, the {@link
   99.57 +     * GraphicsDevice#isWindowTranslucencySupported()} method must indicate that
   99.58 +     * the {@link GraphicsDevice.WindowTranslucency#TRANSLUCENT TRANSLUCENT}
   99.59 +     * translucency is supported.
   99.60 +     * <p>
   99.61 +     * Also note that the window must not be in the full-screen mode when
   99.62 +     * setting the opacity value &lt; 1.0f. Otherwise the {@code
   99.63 +     * IllegalComponentStateException} is thrown.
   99.64 +     * <p>
   99.65 +     * The translucency levels of individual pixels may also be effected by the
   99.66 +     * alpha component of their color (see {@link setBackground()}) and the
   99.67 +     * current shape of this window (see {@link setShape()}).
   99.68 +     *
   99.69 +     * @param opacity the opacity level to set to the window
   99.70 +     *
   99.71 +     * @throws IllegalArgumentException if the opacity is out of the range
   99.72 +     *     [0..1]
   99.73 +     * @throws IllegalComponentStateException if the window is in full screen
   99.74 +     *     mode, and the opacity is less than 1.0f
   99.75 +     * @throws UnsupportedOperationException if the {@code
   99.76 +     *     GraphicsDevice.WindowTranslucency#TRANSLUCENT TRANSLUCENT}
   99.77 +     *     translucency kind is not supported and the opacity is less than 1.0f
   99.78 +     *
   99.79 +     * @see Window#getOpacity
   99.80 +     * @see Window#setBackground()
   99.81 +     * @see Window#setShape()
   99.82 +     * @see GraphicsDevice.WindowTranslucency
   99.83 +     * @see GraphicsDevice#isWindowTranslucencySupported()
   99.84 +     *
   99.85 +     * @since 1.7
   99.86       */
   99.87 -    /*public */void setOpacity(float opacity) {
   99.88 +    public void setOpacity(float opacity) {
   99.89          synchronized (getTreeLock()) {
   99.90              if (opacity < 0.0f || opacity > 1.0f) {
   99.91                  throw new IllegalArgumentException(
   99.92                      "The value of opacity should be in the range [0.0f .. 1.0f].");
   99.93              }
   99.94 -            GraphicsConfiguration gc = getGraphicsConfiguration();
   99.95 -            GraphicsDevice gd = gc.getDevice();
   99.96 -            if (!gd.isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency.TRANSLUCENT)) {
   99.97 -                throw new UnsupportedOperationException(
   99.98 +            if (opacity < 1.0f) {
   99.99 +                GraphicsConfiguration gc = getGraphicsConfiguration();
  99.100 +                GraphicsDevice gd = gc.getDevice();
  99.101 +                if (gc.getDevice().getFullScreenWindow() == this) {
  99.102 +                    throw new IllegalComponentStateException(
  99.103 +                        "Setting opacity for full-screen window is not supported.");
  99.104 +                }
  99.105 +                if (!gd.isWindowTranslucencySupported(
  99.106 +                    GraphicsDevice.WindowTranslucency.TRANSLUCENT))
  99.107 +                {
  99.108 +                    throw new UnsupportedOperationException(
  99.109                          "TRANSLUCENT translucency is not supported.");
  99.110 -            }
  99.111 -            if ((gc.getDevice().getFullScreenWindow() == this) && (opacity < 1.0f)) {
  99.112 -                throw new IllegalArgumentException(
  99.113 -                    "Setting opacity for full-screen window is not supported.");
  99.114 +                }
  99.115              }
  99.116              this.opacity = opacity;
  99.117              WindowPeer peer = (WindowPeer)getPeer();
  99.118 @@ -3376,37 +3425,86 @@
  99.119      }
  99.120  
  99.121      /**
  99.122 -     * JavaDoc
  99.123 +     * Returns the shape of the window.
  99.124 +     *
  99.125 +     * The value returned by this method may not be the same as
  99.126 +     * previously set with {@code setShape(shape)}, but it is guaranteed
  99.127 +     * to represent the same shape.
  99.128 +     *
  99.129 +     * @return the shape of the window or {@code null} if no
  99.130 +     *     shape is specified for the window
  99.131 +     *
  99.132 +     * @see Window#setShape
  99.133 +     * @see GraphicsDevice.WindowTranslucency
  99.134 +     *
  99.135 +     * @since 1.7
  99.136       */
  99.137 -    /*public */Shape getShape() {
  99.138 +    public Shape getShape() {
  99.139          synchronized (getTreeLock()) {
  99.140 -            return shape;
  99.141 +            return shape == null ? null : new Path2D.Float(shape);
  99.142          }
  99.143      }
  99.144  
  99.145      /**
  99.146 -     * JavaDoc
  99.147 +     * Sets the shape of the window.
  99.148 +     * <p>
  99.149 +     * Setting a shape enables cutting off some parts of the window, leaving
  99.150 +     * visible and clickable only those parts belonging to the given shape
  99.151 +     * (see {@link Shape}). If the shape argument is null, this methods
  99.152 +     * restores the default shape (making the window rectangular on most
  99.153 +     * platforms.)
  99.154 +     * <p>
  99.155 +     * The following conditions must be met in order to set a non-null shape:
  99.156 +     * <ul>
  99.157 +     * <li>The {@link GraphicsDevice.WindowTranslucency#PERPIXEL_TRANSPARENT
  99.158 +     * PERPIXEL_TRANSPARENT} translucency kind must be supported by the
  99.159 +     * underlying system (see {@link })
  99.160 +     * <i>and</i>
  99.161 +     * <li>The window must not be in the full-screen mode (see
  99.162 +     * {@link GraphicsDevice#setFullScreenWindow()})
  99.163 +     * </ul>
  99.164 +     * If a certain condition is not met, either the {@code
  99.165 +     * UnsupportedOperationException} or {@code IllegalComponentStateException}
  99.166 +     * is thrown.
  99.167 +     * <p>
  99.168 +     * The tranlucency levels of individual pixels may also be effected by the
  99.169 +     * alpha component of their color (see {@link setBackground()}) and the
  99.170 +     * opacity value (see {@link setOpacity()}). See {@link
  99.171 +     * GraphicsDevice#WindowTranslucency} for more details.
  99.172       *
  99.173 -     * @param window the window to set the shape to
  99.174       * @param shape the shape to set to the window
  99.175 -     * @throws IllegalArgumentException if the window is in full screen mode,
  99.176 -     *                                  and the shape is not null
  99.177 +     *
  99.178 +     * @throws IllegalComponentStateException if the shape is not {@code
  99.179 +     *     null} and the window is in full-screen mode
  99.180 +     * @throws UnsupportedOperationException if the shape is not {@code
  99.181 +     *     null} and {@link GraphicsDevice.WindowTranslucency#PERPIXEL_TRANSPARENT
  99.182 +     *     PERPIXEL_TRANSPARENT} translucency is not supported
  99.183 +     *
  99.184 +     * @see Window#getShape()
  99.185 +     * @see Window#setBackgound()
  99.186 +     * @see Window#setOpacity()
  99.187 +     * @see GraphicsDevice.WindowTranslucency
  99.188 +     * @see GraphicsDevice#isWindowTranslucencySupported()
  99.189 +     *
  99.190 +     * @since 1.7
  99.191       */
  99.192 -    /*public */void setShape(Shape shape) {
  99.193 +    public void setShape(Shape shape) {
  99.194          synchronized (getTreeLock()) {
  99.195 -            GraphicsConfiguration gc = getGraphicsConfiguration();
  99.196 -            GraphicsDevice gd = gc.getDevice();
  99.197 -            if (!gd.isWindowTranslucencySupported(
  99.198 -                    GraphicsDevice.WindowTranslucency.PERPIXEL_TRANSPARENT))
  99.199 -            {
  99.200 -                throw new UnsupportedOperationException(
  99.201 +            if (shape != null) {
  99.202 +                GraphicsConfiguration gc = getGraphicsConfiguration();
  99.203 +                GraphicsDevice gd = gc.getDevice();
  99.204 +                if (gc.getDevice().getFullScreenWindow() == this) {
  99.205 +                    throw new IllegalComponentStateException(
  99.206 +                        "Setting shape for full-screen window is not supported.");
  99.207 +                }
  99.208 +                if (!gd.isWindowTranslucencySupported(
  99.209 +                        GraphicsDevice.WindowTranslucency.PERPIXEL_TRANSPARENT))
  99.210 +                {
  99.211 +                    throw new UnsupportedOperationException(
  99.212                          "PERPIXEL_TRANSPARENT translucency is not supported.");
  99.213 +                }
  99.214              }
  99.215 -            if ((gc.getDevice().getFullScreenWindow() == this) && (shape != null)) {
  99.216 -                throw new IllegalArgumentException(
  99.217 -                    "Setting shape for full-screen window is not supported.");
  99.218 -            }
  99.219 -            this.shape = shape;
  99.220 +            this.shape = (shape == null) ? null : new Path2D.Float(shape);
  99.221              WindowPeer peer = (WindowPeer)getPeer();
  99.222              if (peer != null) {
  99.223                  peer.applyShape(shape == null ? null : Region.getInstance(shape, null));
  99.224 @@ -3415,66 +3513,115 @@
  99.225      }
  99.226  
  99.227      /**
  99.228 -     * JavaDoc
  99.229 +     * Gets the background color of this window.
  99.230 +     * <p>
  99.231 +     * Note that the alpha component of the returned color indicates whether
  99.232 +     * the window is in the non-opaque (per-pixel translucent) mode.
  99.233 +     *
  99.234 +     * @return this component's background color
  99.235 +     *
  99.236 +     * @see Window#setBackground
  99.237 +     * @see GraphicsDevice.WindowTranslucency
  99.238       */
  99.239 -/*
  99.240 +    @Override
  99.241 +    public Color getBackground() {
  99.242 +        return super.getBackground();
  99.243 +    }
  99.244 +
  99.245 +    /**
  99.246 +     * Sets the background color of this window.
  99.247 +     * <p>
  99.248 +     * If the windowing system supports the {@link
  99.249 +     * GraphicsDevice.WindowTranslucency#PERPIXEL_TRANSLUCENT PERPIXEL_TRANSLUCENT}
  99.250 +     * tranclucency, the alpha component of the given background color
  99.251 +     * may effect the mode of operation for this window: it indicates whether
  99.252 +     * this window must be opaque (alpha == 1.0f) or per-pixel translucent
  99.253 +     * (alpha &lt; 1.0f).  All the following conditions must be met in order
  99.254 +     * to be able to enable the per-pixel transparency mode for this window:
  99.255 +     * <ul>
  99.256 +     * <li>The {@link GraphicsDevice.WindowTranslucency#PERPIXEL_TRANSLUCENT
  99.257 +     * PERPIXEL_TRANSLUCENT} translucency must be supported
  99.258 +     * by the graphics device where this window is located <i>and</i>
  99.259 +     * <li>The window must not be in the full-screen mode (see {@link
  99.260 +     * GraphicsDevice#setFullScreenWindow()})
  99.261 +     * </ul>
  99.262 +     * If a certain condition is not met at the time of calling this method,
  99.263 +     * the alpha component of the given background color will not effect the
  99.264 +     * mode of operation for this window.
  99.265 +     * <p>
  99.266 +     * When the window is per-pixel translucent, the drawing sub-system
  99.267 +     * respects the alpha value of each individual pixel. If a pixel gets
  99.268 +     * painted with the alpha color component equal to zero, it becomes
  99.269 +     * visually transparent, if the alpha of the pixel is equal to 1.0f, the
  99.270 +     * pixel is fully opaque. Interim values of the alpha color component make
  99.271 +     * the pixel semi-transparent. In this mode the background of the window
  99.272 +     * gets painted with the alpha value of the given background color (meaning
  99.273 +     * that it is not painted at all if the alpha value of the argument of this
  99.274 +     * method is equal to zero.)
  99.275 +     * <p>
  99.276 +     * The actual level of translucency of a given pixel also depends on window
  99.277 +     * opacity (see {@link setOpacity()}), as well as the current shape of
  99.278 +     * this window (see {@link setShape()}).
  99.279 +     * <p>
  99.280 +     * Note that painting a pixel with the alpha value of 0 may or may not
  99.281 +     * disable the mouse event handling on this pixel. This is a
  99.282 +     * platform-dependent behavior. To make sure the mouse clicks do not get
  99.283 +     * dispatched to a particular pixel, the pixel must be excluded from the
  99.284 +     * shape of the window.
  99.285 +     * <p>
  99.286 +     * Enabling the per-pixel translucency mode may change the graphics
  99.287 +     * configuration of this window due to the native platform requirements.
  99.288 +     *
  99.289 +     * @param bgColor the color to become this window's background color.
  99.290 +     *
  99.291 +     * @throws IllegalComponentStateException if the alpha value of the given
  99.292 +     *     background color is less than 1.0f and the window is in
  99.293 +     *     full-screen mode
  99.294 +     * @throws UnsupportedOperationException if the alpha value of the given
  99.295 +     *     background color is less than 1.0f and
  99.296 +     *     {@link GraphicsDevice.WindowTranslucency#PERPIXEL_TRANSLUCENT
  99.297 +     *     PERPIXEL_TRANSLUCENT} translucency is not supported
  99.298 +     *
  99.299 +     * @see Window#getBackground
  99.300 +     * @see Window#setOpacity()
  99.301 +     * @see Window#setShape()
  99.302 +     * @see GraphicsDevice.WindowTranslucency
  99.303 +     * @see GraphicsDevice#isWindowTranslucencySupported()
  99.304 +     * @see GraphicsConfiguration#isTranslucencyCapable()
  99.305 +     */
  99.306      @Override
  99.307      public void setBackground(Color bgColor) {
  99.308 +        Color oldBg = getBackground();
  99.309 +        if (oldBg != null && oldBg.equals(bgColor)) {
  99.310 +            return;
  99.311 +        }
  99.312 +        super.setBackground(bgColor);
  99.313 +        int oldAlpha = oldBg != null ? oldBg.getAlpha() : 255;
  99.314          int alpha = bgColor.getAlpha();
  99.315 -        if (alpha < 255) { // non-opaque window
  99.316 +        if ((oldAlpha == 255) && (alpha < 255)) { // non-opaque window
  99.317              GraphicsConfiguration gc = getGraphicsConfiguration();
  99.318              GraphicsDevice gd = gc.getDevice();
  99.319              if (gc.getDevice().getFullScreenWindow() == this) {
  99.320 -                throw new IllegalArgumentException(
  99.321 +                throw new IllegalComponentStateException(
  99.322                      "Making full-screen window non opaque is not supported.");
  99.323              }
  99.324              if (!gc.isTranslucencyCapable()) {
  99.325                  GraphicsConfiguration capableGC = gd.getTranslucencyCapableGC();
  99.326                  if (capableGC == null) {
  99.327 -                    throw new IllegalArgumentException(
  99.328 +                    throw new UnsupportedOperationException(
  99.329                          "PERPIXEL_TRANSLUCENT translucency is not supported");
  99.330                  }
  99.331 -                // TODO: change GC
  99.332 +                setGraphicsConfiguration(capableGC);
  99.333              }
  99.334              setLayersOpaque(this, false);
  99.335 +        } else if ((oldAlpha < 255) && (alpha == 255)) {
  99.336 +            setLayersOpaque(this, true);
  99.337          }
  99.338 -
  99.339 -        super.setBackground(bgColor);
  99.340 -
  99.341          WindowPeer peer = (WindowPeer)getPeer();
  99.342          if (peer != null) {
  99.343              peer.setOpaque(alpha == 255);
  99.344          }
  99.345      }
  99.346 -*/
  99.347 -
  99.348 -    private transient boolean opaque = true;
  99.349 -
  99.350 -    void setOpaque(boolean opaque) {
  99.351 -        synchronized (getTreeLock()) {
  99.352 -            GraphicsConfiguration gc = getGraphicsConfiguration();
  99.353 -            if (!opaque && !com.sun.awt.AWTUtilities.isTranslucencyCapable(gc)) {
  99.354 -            throw new IllegalArgumentException(
  99.355 -                    "The window must use a translucency-compatible graphics configuration");
  99.356 -            }
  99.357 -            if (!com.sun.awt.AWTUtilities.isTranslucencySupported(
  99.358 -                    com.sun.awt.AWTUtilities.Translucency.PERPIXEL_TRANSLUCENT))
  99.359 -            {
  99.360 -                throw new UnsupportedOperationException(
  99.361 -                        "PERPIXEL_TRANSLUCENT translucency is not supported.");
  99.362 -            }
  99.363 -            if ((gc.getDevice().getFullScreenWindow() == this) && !opaque) {
  99.364 -                throw new IllegalArgumentException(
  99.365 -                    "Making full-screen window non opaque is not supported.");
  99.366 -            }
  99.367 -            setLayersOpaque(this, opaque);
  99.368 -            this.opaque = opaque;
  99.369 -            WindowPeer peer = (WindowPeer)getPeer();
  99.370 -            if (peer != null) {
  99.371 -                peer.setOpaque(opaque);
  99.372 -            }
  99.373 -        }
  99.374 -    }
  99.375  
  99.376      private void updateWindow(BufferedImage backBuffer) {
  99.377          synchronized (getTreeLock()) {
  99.378 @@ -3505,10 +3652,10 @@
  99.379              }
  99.380              lp.setOpaque(isOpaque);
  99.381              root.setOpaque(isOpaque);
  99.382 -            root.setDoubleBuffered(isOpaque); //XXX: the "white rect" workaround
  99.383 +            root.setDoubleBuffered(isOpaque);
  99.384              if (content != null) {
  99.385                  content.setOpaque(isOpaque);
  99.386 -                content.setDoubleBuffered(isOpaque); //XXX: the "white rect" workaround
  99.387 +                content.setDoubleBuffered(isOpaque);
  99.388  
  99.389                  // Iterate down one level to see whether we have a JApplet
  99.390                  // (which is also a RootPaneContainer) which requires processing
  99.391 @@ -3523,36 +3670,6 @@
  99.392                  }
  99.393              }
  99.394          }
  99.395 -
  99.396 -        Color bg = component.getBackground();
  99.397 -        boolean hasTransparentBg = TRANSPARENT_BACKGROUND_COLOR.equals(bg);
  99.398 -
  99.399 -        Container container = null;
  99.400 -        if (component instanceof Container) {
  99.401 -            container = (Container) component;
  99.402 -        }
  99.403 -
  99.404 -        if (isOpaque) {
  99.405 -            if (hasTransparentBg) {
  99.406 -                // Note: we use the SystemColor.window color as the default.
  99.407 -                // This color is used in the WindowPeer implementations to
  99.408 -                // initialize the background color of the window if it is null.
  99.409 -                // (This might not be the right thing to do for other
  99.410 -                // RootPaneContainers we might be invoked with)
  99.411 -                Color newColor = null;
  99.412 -                if (container != null && container.preserveBackgroundColor != null) {
  99.413 -                    newColor = container.preserveBackgroundColor;
  99.414 -                } else {
  99.415 -                    newColor = SystemColor.window;
  99.416 -                }
  99.417 -                component.setBackground(newColor);
  99.418 -            }
  99.419 -        } else {
  99.420 -            if (!hasTransparentBg && container != null) {
  99.421 -                container.preserveBackgroundColor = bg;
  99.422 -            }
  99.423 -            component.setBackground(TRANSPARENT_BACKGROUND_COLOR);
  99.424 -        }
  99.425      }
  99.426  
  99.427  
  99.428 @@ -3620,20 +3737,16 @@
  99.429                  window.setShape(shape);
  99.430              }
  99.431              public boolean isOpaque(Window window) {
  99.432 -                /*
  99.433 -                return window.getBackground().getAlpha() < 255;
  99.434 -                */
  99.435 -                synchronized (window.getTreeLock()) {
  99.436 -                    return window.opaque;
  99.437 -                }
  99.438 +                Color bg = window.getBackground();
  99.439 +                return (bg != null) ? bg.getAlpha() == 255 : true;
  99.440              }
  99.441              public void setOpaque(Window window, boolean opaque) {
  99.442 -                /*
  99.443                  Color bg = window.getBackground();
  99.444 +                if (bg == null) {
  99.445 +                    bg = new Color(0, 0, 0, 0);
  99.446 +                }
  99.447                  window.setBackground(new Color(bg.getRed(), bg.getGreen(), bg.getBlue(),
  99.448                                                 opaque ? 255 : 0));
  99.449 -                */
  99.450 -                window.setOpaque(opaque);
  99.451              }
  99.452              public void updateWindow(Window window, BufferedImage backBuffer) {
  99.453                  window.updateWindow(backBuffer);
  99.454 @@ -3674,6 +3787,10 @@
  99.455          }); // WindowAccessor
  99.456      } // static
  99.457  
  99.458 +    // a window doesn't need to be updated in the Z-order.
  99.459 +    @Override
  99.460 +    void updateZOrder() {}
  99.461 +
  99.462  } // class Window
  99.463  
  99.464  
   100.1 --- a/src/share/classes/javax/sound/midi/MetaMessage.java	Tue Apr 28 14:43:44 2009 -0700
   100.2 +++ b/src/share/classes/javax/sound/midi/MetaMessage.java	Wed Apr 29 00:27:46 2009 -0700
   100.3 @@ -102,6 +102,29 @@
   100.4          this(defaultMessage);
   100.5      }
   100.6  
   100.7 +    /**
   100.8 +     * Constructs a new {@code MetaMessage} and sets the message parameters.
   100.9 +     * The contents of the message can be changed by using
  100.10 +     * the {@code setMessage} method.
  100.11 +     *
  100.12 +     * @param type   meta-message type (must be less than 128)
  100.13 +     * @param data   the data bytes in the MIDI message
  100.14 +     * @param length an amount of bytes in the {@code data} byte array;
  100.15 +     *     it should be non-negative and less than or equal to
  100.16 +     *     {@code data.length}
  100.17 +     * @throws InvalidMidiDataException if the parameter values do not specify
  100.18 +     *     a valid MIDI meta message
  100.19 +     * @see #setMessage(int, byte[], int)
  100.20 +     * @see #getType()
  100.21 +     * @see #getData()
  100.22 +     * @since 1.7
  100.23 +     */
  100.24 +    public MetaMessage(int type, byte[] data, int length)
  100.25 +            throws InvalidMidiDataException {
  100.26 +        super(null);
  100.27 +        setMessage(type, data, length); // can throw InvalidMidiDataException
  100.28 +    }
  100.29 +
  100.30  
  100.31      /**
  100.32       * Constructs a new <code>MetaMessage</code>.
   101.1 --- a/src/share/classes/javax/sound/midi/ShortMessage.java	Tue Apr 28 14:43:44 2009 -0700
   101.2 +++ b/src/share/classes/javax/sound/midi/ShortMessage.java	Wed Apr 29 00:27:46 2009 -0700
   101.3 @@ -187,6 +187,83 @@
   101.4          length = 3;
   101.5      }
   101.6  
   101.7 +    /**
   101.8 +     * Constructs a new {@code ShortMessage} which represents a MIDI
   101.9 +     * message that takes no data bytes.
  101.10 +     * The contents of the message can be changed by using one of
  101.11 +     * the {@code setMessage} methods.
  101.12 +     *
  101.13 +     * @param status the MIDI status byte
  101.14 +     * @throws InvalidMidiDataException if {@code status} does not specify
  101.15 +     *     a valid MIDI status byte for a message that requires no data bytes
  101.16 +     * @see #setMessage(int)
  101.17 +     * @see #setMessage(int, int, int)
  101.18 +     * @see #setMessage(int, int, int, int)
  101.19 +     * @see #getStatus()
  101.20 +     * @since 1.7
  101.21 +     */
  101.22 +    public ShortMessage(int status) throws InvalidMidiDataException {
  101.23 +        super(null);
  101.24 +        setMessage(status); // can throw InvalidMidiDataException
  101.25 +    }
  101.26 +
  101.27 +    /**
  101.28 +     * Constructs a new {@code ShortMessage} which represents a MIDI message
  101.29 +     * that takes up to two data bytes. If the message only takes one data byte,
  101.30 +     * the second data byte is ignored. If the message does not take
  101.31 +     * any data bytes, both data bytes are ignored.
  101.32 +     * The contents of the message can be changed by using one of
  101.33 +     * the {@code setMessage} methods.
  101.34 +     *
  101.35 +     * @param status   the MIDI status byte
  101.36 +     * @param data1    the first data byte
  101.37 +     * @param data2    the second data byte
  101.38 +     * @throws InvalidMidiDataException if the status byte or all data bytes
  101.39 +     *     belonging to the message do not specify a valid MIDI message
  101.40 +     * @see #setMessage(int)
  101.41 +     * @see #setMessage(int, int, int)
  101.42 +     * @see #setMessage(int, int, int, int)
  101.43 +     * @see #getStatus()
  101.44 +     * @see #getData1()
  101.45 +     * @see #getData2()
  101.46 +     * @since 1.7
  101.47 +     */
  101.48 +    public ShortMessage(int status, int data1, int data2)
  101.49 +            throws InvalidMidiDataException {
  101.50 +        super(null);
  101.51 +        setMessage(status, data1, data2); // can throw InvalidMidiDataException
  101.52 +    }
  101.53 +
  101.54 +    /**
  101.55 +     * Constructs a new {@code ShortMessage} which represents a channel
  101.56 +     * MIDI message that takes up to two data bytes. If the message only takes
  101.57 +     * one data byte, the second data byte is ignored. If the message does not
  101.58 +     * take any data bytes, both data bytes are ignored.
  101.59 +     * The contents of the message can be changed by using one of
  101.60 +     * the {@code setMessage} methods.
  101.61 +     *
  101.62 +     * @param command  the MIDI command represented by this message
  101.63 +     * @param channel  the channel associated with the message
  101.64 +     * @param data1    the first data byte
  101.65 +     * @param data2    the second data byte
  101.66 +     * @throws InvalidMidiDataException if the command value, channel value
  101.67 +     *     or all data bytes belonging to the message do not specify
  101.68 +     *     a valid MIDI message
  101.69 +     * @see #setMessage(int)
  101.70 +     * @see #setMessage(int, int, int)
  101.71 +     * @see #setMessage(int, int, int, int)
  101.72 +     * @see #getCommand()
  101.73 +     * @see #getChannel()
  101.74 +     * @see #getData1()
  101.75 +     * @see #getData2()
  101.76 +     * @since 1.7
  101.77 +     */
  101.78 +    public ShortMessage(int command, int channel, int data1, int data2)
  101.79 +            throws InvalidMidiDataException {
  101.80 +        super(null);
  101.81 +        setMessage(command, channel, data1, data2);
  101.82 +    }
  101.83 +
  101.84  
  101.85      /**
  101.86       * Constructs a new <code>ShortMessage</code>.
   102.1 --- a/src/share/classes/javax/sound/midi/SysexMessage.java	Tue Apr 28 14:43:44 2009 -0700
   102.2 +++ b/src/share/classes/javax/sound/midi/SysexMessage.java	Wed Apr 29 00:27:46 2009 -0700
   102.3 @@ -120,6 +120,54 @@
   102.4          data[1] = (byte) (ShortMessage.END_OF_EXCLUSIVE & 0xFF);
   102.5      }
   102.6  
   102.7 +    /**
   102.8 +     * Constructs a new {@code SysexMessage} and sets the data for
   102.9 +     * the message. The first byte of the data array must be a valid system
  102.10 +     * exclusive status byte (0xF0 or 0xF7).
  102.11 +     * The contents of the message can be changed by using one of
  102.12 +     * the {@code setMessage} methods.
  102.13 +     *
  102.14 +     * @param data the system exclusive message data including the status byte
  102.15 +     * @param length the length of the valid message data in the array,
  102.16 +     *     including the status byte; it should be non-negative and less than
  102.17 +     *     or equal to {@code data.length}
  102.18 +     * @throws InvalidMidiDataException if the parameter values
  102.19 +     *     do not specify a valid MIDI meta message.
  102.20 +     * @see #setMessage(byte[], int)
  102.21 +     * @see #setMessage(int, byte[], int)
  102.22 +     * @see #getData()
  102.23 +     * @since 1.7
  102.24 +     */
  102.25 +    public SysexMessage(byte[] data, int length)
  102.26 +            throws InvalidMidiDataException {
  102.27 +        super(null);
  102.28 +        setMessage(data, length);
  102.29 +    }
  102.30 +
  102.31 +    /**
  102.32 +     * Constructs a new {@code SysexMessage} and sets the data for the message.
  102.33 +     * The contents of the message can be changed by using one of
  102.34 +     * the {@code setMessage} methods.
  102.35 +     *
  102.36 +     * @param status the status byte for the message; it must be a valid system
  102.37 +     *     exclusive status byte (0xF0 or 0xF7)
  102.38 +     * @param data the system exclusive message data (without the status byte)
  102.39 +     * @param length the length of the valid message data in the array;
  102.40 +     *     it should be non-negative and less than or equal to
  102.41 +     *     {@code data.length}
  102.42 +     * @throws InvalidMidiDataException if the parameter values
  102.43 +     *     do not specify a valid MIDI meta message.
  102.44 +     * @see #setMessage(byte[], int)
  102.45 +     * @see #setMessage(int, byte[], int)
  102.46 +     * @see #getData()
  102.47 +     * @since 1.7
  102.48 +     */
  102.49 +    public SysexMessage(int status, byte[] data, int length)
  102.50 +            throws InvalidMidiDataException {
  102.51 +        super(null);
  102.52 +        setMessage(status, data, length);
  102.53 +    }
  102.54 +
  102.55  
  102.56      /**
  102.57       * Constructs a new <code>SysexMessage</code>.
   103.1 --- a/src/share/classes/javax/sound/sampled/FloatControl.java	Tue Apr 28 14:43:44 2009 -0700
   103.2 +++ b/src/share/classes/javax/sound/sampled/FloatControl.java	Wed Apr 29 00:27:46 2009 -0700
   103.3 @@ -131,13 +131,31 @@
   103.4       * @param minLabel the label for the minimum value, such as "Left" or "Off"
   103.5       * @param midLabel the label for the midpoint value, such as "Center" or "Default"
   103.6       * @param maxLabel the label for the maximum value, such as "Right" or "Full"
   103.7 +     *
   103.8 +     * @throws IllegalArgumentException if {@code minimum} is greater
   103.9 +     *     than {@code maximum} or {@code initialValue} does not fall
  103.10 +     *     within the allowable range
  103.11       */
  103.12      protected FloatControl(Type type, float minimum, float maximum,
  103.13 -                           float precision, int updatePeriod, float initialValue,
  103.14 -                           String units, String minLabel, String midLabel, String maxLabel) {
  103.15 +            float precision, int updatePeriod, float initialValue,
  103.16 +            String units, String minLabel, String midLabel, String maxLabel) {
  103.17  
  103.18          super(type);
  103.19  
  103.20 +        if (minimum > maximum) {
  103.21 +            throw new IllegalArgumentException("Minimum value " + minimum
  103.22 +                    + " exceeds maximum value " + maximum + ".");
  103.23 +        }
  103.24 +        if (initialValue < minimum) {
  103.25 +            throw new IllegalArgumentException("Initial value " + initialValue
  103.26 +                    + " smaller than allowable minimum value " + minimum + ".");
  103.27 +        }
  103.28 +        if (initialValue > maximum) {
  103.29 +            throw new IllegalArgumentException("Initial value " + initialValue
  103.30 +                    + " exceeds allowable maximum value " + maximum + ".");
  103.31 +        }
  103.32 +
  103.33 +
  103.34          this.minimum = minimum;
  103.35          this.maximum = maximum;
  103.36  
  103.37 @@ -167,10 +185,15 @@
  103.38       * @param initialValue the value that the control starts with when constructed
  103.39       * @param units the label for the units in which the control's values are expressed,
  103.40       * such as "dB" or "frames per second"
  103.41 +     *
  103.42 +     * @throws IllegalArgumentException if {@code minimum} is greater
  103.43 +     *     than {@code maximum} or {@code initialValue} does not fall
  103.44 +     *     within the allowable range
  103.45       */
  103.46      protected FloatControl(Type type, float minimum, float maximum,
  103.47 -                           float precision, int updatePeriod, float initialValue, String units) {
  103.48 -        this(type, minimum, maximum, precision, updatePeriod, initialValue, units, "", "", "");
  103.49 +            float precision, int updatePeriod, float initialValue, String units) {
  103.50 +        this(type, minimum, maximum, precision, updatePeriod,
  103.51 +                initialValue, units, "", "", "");
  103.52      }
  103.53  
  103.54  
  103.55 @@ -306,9 +329,21 @@
  103.56       * @param to final value after the shift
  103.57       * @param microseconds maximum duration of the shift in microseconds
  103.58       *
  103.59 +     * @throws IllegalArgumentException if either {@code from} or {@code to}
  103.60 +     *     value does not fall within the allowable range
  103.61 +     *
  103.62       * @see #getUpdatePeriod
  103.63       */
  103.64      public void shift(float from, float to, int microseconds) {
  103.65 +        // test "from" value, "to" value will be tested by setValue()
  103.66 +        if (from < minimum) {
  103.67 +            throw new IllegalArgumentException("Requested value " + from
  103.68 +                    + " smaller than allowable minimum value " + minimum + ".");
  103.69 +        }
  103.70 +        if (from > maximum) {
  103.71 +            throw new IllegalArgumentException("Requested value " + from
  103.72 +                    + " exceeds allowable maximum value " + maximum + ".");
  103.73 +        }
  103.74          setValue(to);
  103.75      }
  103.76  
   104.1 --- a/src/share/classes/javax/sound/sampled/spi/MixerProvider.java	Tue Apr 28 14:43:44 2009 -0700
   104.2 +++ b/src/share/classes/javax/sound/sampled/spi/MixerProvider.java	Wed Apr 29 00:27:46 2009 -0700
   104.3 @@ -42,9 +42,15 @@
   104.4      /**
   104.5       * Indicates whether the mixer provider supports the mixer represented by
   104.6       * the specified mixer info object.
   104.7 +     * <p>
   104.8 +     * The full set of mixer info objects that represent the mixers supported
   104.9 +     * by this {@code MixerProvider} may be obtained
  104.10 +     * through the {@code getMixerInfo} method.
  104.11 +     *
  104.12       * @param info an info object that describes the mixer for which support is queried
  104.13 -     * @return <code>true</code> if the specified mixer is supported,
  104.14 -     * otherwise <code>false</code>
  104.15 +     * @return {@code true} if the specified mixer is supported,
  104.16 +     *     otherwise {@code false}
  104.17 +     * @see #getMixerInfo()
  104.18       */
  104.19      public boolean isMixerSupported(Mixer.Info info) {
  104.20  
  104.21 @@ -62,17 +68,34 @@
  104.22      /**
  104.23       * Obtains the set of info objects representing the mixer
  104.24       * or mixers provided by this MixerProvider.
  104.25 -     * @return set of mixer info objects
  104.26 +     * <p>
  104.27 +     * The {@code isMixerSupported} method returns {@code true}
  104.28 +     * for all the info objects returned by this method.
  104.29 +     * The corresponding mixer instances for the info objects
  104.30 +     * are returned by the {@code getMixer} method.
  104.31 +     *
  104.32 +     * @return a set of mixer info objects
  104.33 +     * @see #getMixer(javax.sound.sampled.Mixer.Info) getMixer(Mixer.Info)
  104.34 +     * @see #isMixerSupported(javax.sound.sampled.Mixer.Info) isMixerSupported(Mixer.Info)
  104.35       */
  104.36      public abstract Mixer.Info[] getMixerInfo();
  104.37  
  104.38  
  104.39      /**
  104.40       * Obtains an instance of the mixer represented by the info object.
  104.41 +     * <p>
  104.42 +     * The full set of the mixer info objects that represent the mixers
  104.43 +     * supported by this {@code MixerProvider} may be obtained
  104.44 +     * through the {@code getMixerInfo} method.
  104.45 +     * Use the {@code isMixerSupported} method to test whether
  104.46 +     * this {@code MixerProvider} supports a particular mixer.
  104.47 +     *
  104.48       * @param info an info object that describes the desired mixer
  104.49       * @return mixer instance
  104.50       * @throws IllegalArgumentException if the info object specified does not
  104.51 -     * match the info object for a mixer supported by this MixerProvider.
  104.52 +     *     match the info object for a mixer supported by this MixerProvider.
  104.53 +     * @see #getMixerInfo()
  104.54 +     * @see #isMixerSupported(javax.sound.sampled.Mixer.Info) isMixerSupported(Mixer.Info)
  104.55       */
  104.56      public abstract Mixer getMixer(Mixer.Info info);
  104.57  }
   105.1 --- a/src/share/classes/javax/swing/DefaultCellEditor.java	Tue Apr 28 14:43:44 2009 -0700
   105.2 +++ b/src/share/classes/javax/swing/DefaultCellEditor.java	Wed Apr 29 00:27:46 2009 -0700
   105.3 @@ -266,6 +266,26 @@
   105.4                                                   boolean isSelected,
   105.5                                                   int row, int column) {
   105.6          delegate.setValue(value);
   105.7 +        if (editorComponent instanceof JCheckBox) {
   105.8 +            //in order to avoid a "flashing" effect when clicking a checkbox
   105.9 +            //in a table, it is important for the editor to have as a border
  105.10 +            //the same border that the renderer has, and have as the background
  105.11 +            //the same color as the renderer has. This is primarily only
  105.12 +            //needed for JCheckBox since this editor doesn't fill all the
  105.13 +            //visual space of the table cell, unlike a text field.
  105.14 +            TableCellRenderer renderer = table.getCellRenderer(row, column);
  105.15 +            Component c = renderer.getTableCellRendererComponent(table, value,
  105.16 +                    isSelected, true, row, column);
  105.17 +            if (c != null) {
  105.18 +                editorComponent.setOpaque(true);
  105.19 +                editorComponent.setBackground(c.getBackground());
  105.20 +                if (c instanceof JComponent) {
  105.21 +                    editorComponent.setBorder(((JComponent)c).getBorder());
  105.22 +                }
  105.23 +            } else {
  105.24 +                editorComponent.setOpaque(false);
  105.25 +            }
  105.26 +        }
  105.27          return editorComponent;
  105.28      }
  105.29  
   106.1 --- a/src/share/classes/javax/swing/DefaultListCellRenderer.java	Tue Apr 28 14:43:44 2009 -0700
   106.2 +++ b/src/share/classes/javax/swing/DefaultListCellRenderer.java	Wed Apr 29 00:27:46 2009 -0700
   106.3 @@ -34,6 +34,7 @@
   106.4  import java.awt.Rectangle;
   106.5  
   106.6  import java.io.Serializable;
   106.7 +import sun.swing.DefaultLookup;
   106.8  
   106.9  
  106.10  /**
  106.11 @@ -79,8 +80,9 @@
  106.12      * <code>getListCellRendererComponent</code> method and set the border
  106.13      * of the returned component directly.
  106.14      */
  106.15 -    protected static Border noFocusBorder = new EmptyBorder(1, 1, 1, 1);
  106.16      private static final Border SAFE_NO_FOCUS_BORDER = new EmptyBorder(1, 1, 1, 1);
  106.17 +    private static final Border DEFAULT_NO_FOCUS_BORDER = new EmptyBorder(1, 1, 1, 1);
  106.18 +    protected static Border noFocusBorder = DEFAULT_NO_FOCUS_BORDER;
  106.19  
  106.20      /**
  106.21       * Constructs a default renderer object for an item
  106.22 @@ -90,14 +92,21 @@
  106.23          super();
  106.24          setOpaque(true);
  106.25          setBorder(getNoFocusBorder());
  106.26 +        setName("List.cellRenderer");
  106.27      }
  106.28  
  106.29 -
  106.30 -    private static Border getNoFocusBorder() {
  106.31 +    private Border getNoFocusBorder() {
  106.32 +        Border border = DefaultLookup.getBorder(this, ui, "List.cellNoFocusBorder");
  106.33          if (System.getSecurityManager() != null) {
  106.34 +            if (border != null) return border;
  106.35              return SAFE_NO_FOCUS_BORDER;
  106.36          } else {
  106.37 -            return UIManager.getBorder("List.noFocusBorder");
  106.38 +            if (border != null &&
  106.39 +                    (noFocusBorder == null ||
  106.40 +                    noFocusBorder == DEFAULT_NO_FOCUS_BORDER)) {
  106.41 +                return border;
  106.42 +            }
  106.43 +            return noFocusBorder;
  106.44          }
  106.45      }
  106.46  
  106.47 @@ -118,8 +127,8 @@
  106.48                  && !dropLocation.isInsert()
  106.49                  && dropLocation.getIndex() == index) {
  106.50  
  106.51 -            bg = UIManager.getColor("List.dropCellBackground");
  106.52 -            fg = UIManager.getColor("List.dropCellForeground");
  106.53 +            bg = DefaultLookup.getColor(this, ui, "List.dropCellBackground");
  106.54 +            fg = DefaultLookup.getColor(this, ui, "List.dropCellForeground");
  106.55  
  106.56              isSelected = true;
  106.57          }
  106.58 @@ -148,10 +157,10 @@
  106.59          Border border = null;
  106.60          if (cellHasFocus) {
  106.61              if (isSelected) {
  106.62 -                border = UIManager.getBorder("List.focusSelectedCellHighlightBorder");
  106.63 +                border = DefaultLookup.getBorder(this, ui, "List.focusSelectedCellHighlightBorder");
  106.64              }
  106.65              if (border == null) {
  106.66 -                border = UIManager.getBorder("List.focusCellHighlightBorder");
  106.67 +                border = DefaultLookup.getBorder(this, ui, "List.focusCellHighlightBorder");
  106.68              }
  106.69          } else {
  106.70              border = getNoFocusBorder();
  106.71 @@ -161,7 +170,6 @@
  106.72          return this;
  106.73      }
  106.74  
  106.75 -
  106.76      /**
  106.77       * Overridden for performance reasons.
  106.78       * See the <a href="#override">Implementation Note</a>
  106.79 @@ -172,6 +180,7 @@
  106.80       *         and differs from the JList's background;
  106.81       *         <code>false</code> otherwise
  106.82       */
  106.83 +    @Override
  106.84      public boolean isOpaque() {
  106.85          Color back = getBackground();
  106.86          Component p = getParent();
  106.87 @@ -190,6 +199,7 @@
  106.88      * See the <a href="#override">Implementation Note</a>
  106.89      * for more information.
  106.90      */
  106.91 +    @Override
  106.92      public void validate() {}
  106.93  
  106.94     /**
  106.95 @@ -199,6 +209,7 @@
  106.96      *
  106.97      * @since 1.5
  106.98      */
  106.99 +    @Override
 106.100      public void invalidate() {}
 106.101  
 106.102     /**
 106.103 @@ -208,6 +219,7 @@
 106.104      *
 106.105      * @since 1.5
 106.106      */
 106.107 +    @Override
 106.108      public void repaint() {}
 106.109  
 106.110     /**
 106.111 @@ -215,12 +227,14 @@
 106.112      * See the <a href="#override">Implementation Note</a>
 106.113      * for more information.
 106.114      */
 106.115 +    @Override
 106.116      public void revalidate() {}
 106.117     /**
 106.118      * Overridden for performance reasons.
 106.119      * See the <a href="#override">Implementation Note</a>
 106.120      * for more information.
 106.121      */
 106.122 +    @Override
 106.123      public void repaint(long tm, int x, int y, int width, int height) {}
 106.124  
 106.125     /**
 106.126 @@ -228,6 +242,7 @@
 106.127      * See the <a href="#override">Implementation Note</a>
 106.128      * for more information.
 106.129      */
 106.130 +    @Override
 106.131      public void repaint(Rectangle r) {}
 106.132  
 106.133     /**
 106.134 @@ -235,6 +250,7 @@
 106.135      * See the <a href="#override">Implementation Note</a>
 106.136      * for more information.
 106.137      */
 106.138 +    @Override
 106.139      protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
 106.140          // Strings get interned...
 106.141          if (propertyName == "text"
 106.142 @@ -251,6 +267,7 @@
 106.143      * See the <a href="#override">Implementation Note</a>
 106.144      * for more information.
 106.145      */
 106.146 +    @Override
 106.147      public void firePropertyChange(String propertyName, byte oldValue, byte newValue) {}
 106.148  
 106.149     /**
 106.150 @@ -258,6 +275,7 @@
 106.151      * See the <a href="#override">Implementation Note</a>
 106.152      * for more information.
 106.153      */
 106.154 +    @Override
 106.155      public void firePropertyChange(String propertyName, char oldValue, char newValue) {}
 106.156  
 106.157     /**
 106.158 @@ -265,6 +283,7 @@
 106.159      * See the <a href="#override">Implementation Note</a>
 106.160      * for more information.
 106.161      */
 106.162 +    @Override
 106.163      public void firePropertyChange(String propertyName, short oldValue, short newValue) {}
 106.164  
 106.165     /**
 106.166 @@ -272,6 +291,7 @@
 106.167      * See the <a href="#override">Implementation Note</a>
 106.168      * for more information.
 106.169      */
 106.170 +    @Override
 106.171      public void firePropertyChange(String propertyName, int oldValue, int newValue) {}
 106.172  
 106.173     /**
 106.174 @@ -279,6 +299,7 @@
 106.175      * See the <a href="#override">Implementation Note</a>
 106.176      * for more information.
 106.177      */
 106.178 +    @Override
 106.179      public void firePropertyChange(String propertyName, long oldValue, long newValue) {}
 106.180  
 106.181     /**
 106.182 @@ -286,6 +307,7 @@
 106.183      * See the <a href="#override">Implementation Note</a>
 106.184      * for more information.
 106.185      */
 106.186 +    @Override
 106.187      public void firePropertyChange(String propertyName, float oldValue, float newValue) {}
 106.188  
 106.189     /**
 106.190 @@ -293,6 +315,7 @@
 106.191      * See the <a href="#override">Implementation Note</a>
 106.192      * for more information.
 106.193      */
 106.194 +    @Override
 106.195      public void firePropertyChange(String propertyName, double oldValue, double newValue) {}
 106.196  
 106.197     /**
 106.198 @@ -300,6 +323,7 @@
 106.199      * See the <a href="#override">Implementation Note</a>
 106.200      * for more information.
 106.201      */
 106.202 +    @Override
 106.203      public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue) {}
 106.204  
 106.205      /**
 106.206 @@ -321,5 +345,4 @@
 106.207          implements javax.swing.plaf.UIResource
 106.208      {
 106.209      }
 106.210 -
 106.211  }
   107.1 --- a/src/share/classes/javax/swing/JComboBox.java	Tue Apr 28 14:43:44 2009 -0700
   107.2 +++ b/src/share/classes/javax/swing/JComboBox.java	Wed Apr 29 00:27:46 2009 -0700
   107.3 @@ -34,12 +34,10 @@
   107.4  
   107.5  import java.io.Serializable;
   107.6  import java.io.ObjectOutputStream;
   107.7 -import java.io.ObjectInputStream;
   107.8  import java.io.IOException;
   107.9  
  107.10  import javax.swing.event.*;
  107.11  import javax.swing.plaf.*;
  107.12 -import javax.swing.border.*;
  107.13  
  107.14  import javax.accessibility.*;
  107.15  
  107.16 @@ -227,7 +225,7 @@
  107.17  
  107.18      private void init() {
  107.19          installAncestorListener();
  107.20 -        setOpaque(true);
  107.21 +        setUIProperty("opaque",true);
  107.22          updateUI();
  107.23      }
  107.24  
   108.1 --- a/src/share/classes/javax/swing/JScrollPane.java	Tue Apr 28 14:43:44 2009 -0700
   108.2 +++ b/src/share/classes/javax/swing/JScrollPane.java	Wed Apr 29 00:27:46 2009 -0700
   108.3 @@ -32,15 +32,12 @@
   108.4  
   108.5  import java.awt.Component;
   108.6  import java.awt.ComponentOrientation;
   108.7 -import java.awt.Graphics;
   108.8  import java.awt.Rectangle;
   108.9  import java.awt.Insets;
  108.10 -import java.awt.Color;
  108.11  import java.awt.LayoutManager;
  108.12  import java.awt.Point;
  108.13  
  108.14  import java.io.ObjectOutputStream;
  108.15 -import java.io.ObjectInputStream;
  108.16  import java.io.IOException;
  108.17  
  108.18  import java.beans.PropertyChangeEvent;
  108.19 @@ -304,7 +301,7 @@
  108.20          if (view != null) {
  108.21              setViewportView(view);
  108.22          }
  108.23 -        setOpaque(true);
  108.24 +        setUIProperty("opaque",true);
  108.25          updateUI();
  108.26  
  108.27          if (!this.getComponentOrientation().isLeftToRight()) {
   109.1 --- a/src/share/classes/javax/swing/JSpinner.java	Tue Apr 28 14:43:44 2009 -0700
   109.2 +++ b/src/share/classes/javax/swing/JSpinner.java	Wed Apr 29 00:27:46 2009 -0700
   109.3 @@ -28,7 +28,6 @@
   109.4  import java.awt.*;
   109.5  import java.awt.event.*;
   109.6  
   109.7 -import javax.swing.*;
   109.8  import javax.swing.event.*;
   109.9  import javax.swing.text.*;
  109.10  import javax.swing.plaf.SpinnerUI;
  109.11 @@ -154,7 +153,7 @@
  109.12          }
  109.13          this.model = model;
  109.14          this.editor = createEditor(model);
  109.15 -        setOpaque(true);
  109.16 +        setUIProperty("opaque",true);
  109.17          updateUI();
  109.18      }
  109.19  
   110.1 --- a/src/share/classes/javax/swing/JSplitPane.java	Tue Apr 28 14:43:44 2009 -0700
   110.2 +++ b/src/share/classes/javax/swing/JSplitPane.java	Wed Apr 29 00:27:46 2009 -0700
   110.3 @@ -246,7 +246,8 @@
   110.4       * layout, using two buttons for the components.
   110.5       */
   110.6      public JSplitPane() {
   110.7 -        this(JSplitPane.HORIZONTAL_SPLIT, false,
   110.8 +        this(JSplitPane.HORIZONTAL_SPLIT,
   110.9 +            UIManager.getBoolean("SplitPane.continuousLayout"),
  110.10              new JButton(UIManager.getString("SplitPane.leftButtonText")),
  110.11              new JButton(UIManager.getString("SplitPane.rightButtonText")));
  110.12      }
  110.13 @@ -263,7 +264,8 @@
  110.14       */
  110.15      @ConstructorProperties({"orientation"})
  110.16      public JSplitPane(int newOrientation) {
  110.17 -        this(newOrientation, false);
  110.18 +        this(newOrientation,
  110.19 +            UIManager.getBoolean("SplitPane.continuousLayout"));
  110.20      }
  110.21  
  110.22  
  110.23 @@ -307,7 +309,9 @@
  110.24      public JSplitPane(int newOrientation,
  110.25                        Component newLeftComponent,
  110.26                        Component newRightComponent){
  110.27 -        this(newOrientation, false, newLeftComponent, newRightComponent);
  110.28 +        this(newOrientation,
  110.29 +            UIManager.getBoolean("SplitPane.continuousLayout"),
  110.30 +            newLeftComponent, newRightComponent);
  110.31      }
  110.32  
  110.33  
   111.1 --- a/src/share/classes/javax/swing/JTable.java	Tue Apr 28 14:43:44 2009 -0700
   111.2 +++ b/src/share/classes/javax/swing/JTable.java	Wed Apr 29 00:27:46 2009 -0700
   111.3 @@ -731,6 +731,37 @@
   111.4                      return;
   111.5                  }
   111.6                  scrollPane.setColumnHeaderView(getTableHeader());
   111.7 +                // configure the scrollpane for any LAF dependent settings
   111.8 +                configureEnclosingScrollPaneUI();
   111.9 +            }
  111.10 +        }
  111.11 +    }
  111.12 +
  111.13 +    /**
  111.14 +     * This is a sub-part of configureEnclosingScrollPane() that configures
  111.15 +     * anything on the scrollpane that may change when the look and feel
  111.16 +     * changes. It needed to be split out from configureEnclosingScrollPane() so
  111.17 +     * that it can be called from updateUI() when the LAF changes without
  111.18 +     * causing the regression found in bug 6687962. This was because updateUI()
  111.19 +     * is called from the constructor which then caused
  111.20 +     * configureEnclosingScrollPane() to be called by the constructor which
  111.21 +     * changes its contract for any subclass that overrides it. So by splitting
  111.22 +     * it out in this way configureEnclosingScrollPaneUI() can be called both
  111.23 +     * from configureEnclosingScrollPane() and updateUI() in a safe manor.
  111.24 +     */
  111.25 +    private void configureEnclosingScrollPaneUI() {
  111.26 +        Container p = getParent();
  111.27 +        if (p instanceof JViewport) {
  111.28 +            Container gp = p.getParent();
  111.29 +            if (gp instanceof JScrollPane) {
  111.30 +                JScrollPane scrollPane = (JScrollPane)gp;
  111.31 +                // Make certain we are the viewPort's view and not, for
  111.32 +                // example, the rowHeaderView of the scrollPane -
  111.33 +                // an implementor of fixed columns might do this.
  111.34 +                JViewport viewport = scrollPane.getViewport();
  111.35 +                if (viewport == null || viewport.getView() != this) {
  111.36 +                    return;
  111.37 +                }
  111.38                  //  scrollPane.getViewport().setBackingStoreEnabled(true);
  111.39                  Border border = scrollPane.getBorder();
  111.40                  if (border == null || border instanceof UIResource) {
  111.41 @@ -740,6 +771,24 @@
  111.42                          scrollPane.setBorder(scrollPaneBorder);
  111.43                      }
  111.44                  }
  111.45 +                // add JScrollBar corner component if available from LAF and not already set by the user
  111.46 +                Component corner =
  111.47 +                        scrollPane.getCorner(JScrollPane.UPPER_TRAILING_CORNER);
  111.48 +                if (corner == null || corner instanceof UIResource){
  111.49 +                    corner = null;
  111.50 +                    Object componentClass = UIManager.get(
  111.51 +                            "Table.scrollPaneCornerComponent");
  111.52 +                    if (componentClass instanceof Class){
  111.53 +                        try {
  111.54 +                            corner = (Component)
  111.55 +                                    ((Class)componentClass).newInstance();
  111.56 +                        } catch (Exception e) {
  111.57 +                            // just ignore and don't set corner
  111.58 +                        }
  111.59 +                    }
  111.60 +                    scrollPane.setCorner(JScrollPane.UPPER_TRAILING_CORNER,
  111.61 +                            corner);
  111.62 +                }
  111.63              }
  111.64          }
  111.65      }
  111.66 @@ -783,6 +832,13 @@
  111.67                      return;
  111.68                  }
  111.69                  scrollPane.setColumnHeaderView(null);
  111.70 +                // remove ScrollPane corner if one was added by the LAF
  111.71 +                Component corner =
  111.72 +                        scrollPane.getCorner(JScrollPane.UPPER_TRAILING_CORNER);
  111.73 +                if (corner instanceof UIResource){
  111.74 +                    scrollPane.setCorner(JScrollPane.UPPER_TRAILING_CORNER,
  111.75 +                            null);
  111.76 +                }
  111.77              }
  111.78          }
  111.79      }
  111.80 @@ -3592,6 +3648,9 @@
  111.81              tableHeader.updateUI();
  111.82          }
  111.83  
  111.84 +        // Update UI applied to parent ScrollPane
  111.85 +        configureEnclosingScrollPaneUI();
  111.86 +
  111.87          setUI((TableUI)UIManager.getUI(this));
  111.88      }
  111.89  
   112.1 --- a/src/share/classes/javax/swing/MultiUIDefaults.java	Tue Apr 28 14:43:44 2009 -0700
   112.2 +++ b/src/share/classes/javax/swing/MultiUIDefaults.java	Wed Apr 29 00:27:46 2009 -0700
   112.3 @@ -26,7 +26,10 @@
   112.4  package javax.swing;
   112.5  
   112.6  import java.util.Enumeration;
   112.7 +import java.util.HashSet;
   112.8  import java.util.Locale;
   112.9 +import java.util.Map.Entry;
  112.10 +import java.util.Set;
  112.11  
  112.12  
  112.13  
  112.14 @@ -48,7 +51,7 @@
  112.15          tables = new UIDefaults[0];
  112.16      }
  112.17  
  112.18 -
  112.19 +    @Override
  112.20      public Object get(Object key)
  112.21      {
  112.22          Object value = super.get(key);
  112.23 @@ -66,7 +69,7 @@
  112.24          return null;
  112.25      }
  112.26  
  112.27 -
  112.28 +    @Override
  112.29      public Object get(Object key, Locale l)
  112.30      {
  112.31          Object value = super.get(key,l);
  112.32 @@ -84,7 +87,7 @@
  112.33          return null;
  112.34      }
  112.35  
  112.36 -
  112.37 +    @Override
  112.38      public int size() {
  112.39          int n = super.size();
  112.40          for (UIDefaults table : tables) {
  112.41 @@ -93,12 +96,12 @@
  112.42          return n;
  112.43      }
  112.44  
  112.45 -
  112.46 +    @Override
  112.47      public boolean isEmpty() {
  112.48          return size() == 0;
  112.49      }
  112.50  
  112.51 -
  112.52 +    @Override
  112.53      public Enumeration<Object> keys()
  112.54      {
  112.55          Enumeration[] enums = new Enumeration[1 + tables.length];
  112.56 @@ -112,7 +115,7 @@
  112.57          return new MultiUIDefaultsEnumerator(enums);
  112.58      }
  112.59  
  112.60 -
  112.61 +    @Override
  112.62      public Enumeration<Object> elements()
  112.63      {
  112.64          Enumeration[] enums = new Enumeration[1 + tables.length];
  112.65 @@ -126,6 +129,19 @@
  112.66          return new MultiUIDefaultsEnumerator(enums);
  112.67      }
  112.68  
  112.69 +    @Override
  112.70 +    public Set<Entry<Object, Object>> entrySet() {
  112.71 +        Set<Entry<Object, Object>> set = new HashSet<Entry<Object, Object>>();
  112.72 +        if (tables == null) return set;
  112.73 +        for (UIDefaults table : tables) {
  112.74 +            if (table != null) {
  112.75 +                set.addAll(table.entrySet());
  112.76 +            }
  112.77 +        }
  112.78 +        return set;
  112.79 +    }
  112.80 +
  112.81 +    @Override
  112.82      protected void getUIError(String msg) {
  112.83          if (tables.length > 0) {
  112.84              tables[0].getUIError(msg);
  112.85 @@ -164,7 +180,7 @@
  112.86          }
  112.87      }
  112.88  
  112.89 -
  112.90 +    @Override
  112.91      public Object remove(Object key)
  112.92      {
  112.93          Object value = super.remove(key);
  112.94 @@ -182,7 +198,7 @@
  112.95          return null;
  112.96      }
  112.97  
  112.98 -
  112.99 +    @Override
 112.100      public void clear() {
 112.101          super.clear();
 112.102          for (UIDefaults table : tables) {
 112.103 @@ -192,6 +208,7 @@
 112.104          }
 112.105      }
 112.106  
 112.107 +    @Override
 112.108      public synchronized String toString() {
 112.109          StringBuffer buf = new StringBuffer();
 112.110          buf.append("{");
   113.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   113.2 +++ b/src/share/classes/javax/swing/Painter.java	Wed Apr 29 00:27:46 2009 -0700
   113.3 @@ -0,0 +1,105 @@
   113.4 +/*
   113.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
   113.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   113.7 + *
   113.8 + * This code is free software; you can redistribute it and/or modify it
   113.9 + * under the terms of the GNU General Public License version 2 only, as
  113.10 + * published by the Free Software Foundation.  Sun designates this
  113.11 + * particular file as subject to the "Classpath" exception as provided
  113.12 + * by Sun in the LICENSE file that accompanied this code.
  113.13 + *
  113.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  113.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  113.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  113.17 + * version 2 for more details (a copy is included in the LICENSE file that
  113.18 + * accompanied this code).
  113.19 + *
  113.20 + * You should have received a copy of the GNU General Public License version
  113.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  113.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  113.23 + *
  113.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  113.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  113.26 + * have any questions.
  113.27 + */
  113.28 +package javax.swing;
  113.29 +
  113.30 +import java.awt.Graphics2D;
  113.31 +
  113.32 +/**
  113.33 + * <p>A painting delegate. The Painter interface defines exactly one method,
  113.34 + * <code>paint</code>. It is used in situations where the developer can change
  113.35 + * the painting routine of a component without having to resort to subclassing
  113.36 + * the component. It is also generically useful when doing any form of painting
  113.37 + * delegation.</p>
  113.38 + *
  113.39 + * <p><code>Painter</code>s are simply encapsulations of Java2D code and make
  113.40 + * it fairly trivial to reuse existing <code>Painter</code>s or to combine
  113.41 + * them together. Implementations of this interface are also trivial to write,
  113.42 + * such that if you can't find a <code>Painter</code> that does what you need,
  113.43 + * you can write one with minimal effort. Writing a <code>Painter</code> requires
  113.44 + * knowledge of Java2D.</p>
  113.45 + *
  113.46 + * <p>A <code>Painter</code> may be created with a type parameter. This type will be
  113.47 + * expected in the <code>paint</code> method. For example, you may wish to write a
  113.48 + * <code>Painter</code> that only works with subclasses of {@link java.awt.Component}.
  113.49 + * In that case, when the <code>Painter</code> is declared, you may declare that
  113.50 + * it requires a <code>Component</code>, allowing the paint method to be type safe. Ex:
  113.51 + * <pre><code>
  113.52 + *     Painter<Component> p = new Painter<Component>() {
  113.53 + *         public void paint(Graphics2D g, Component c, int width, int height) {
  113.54 + *             g.setColor(c.getBackground());
  113.55 + *             //and so forth
  113.56 + *         }
  113.57 + *     }
  113.58 + * </code></pre></p>
  113.59 + *
  113.60 + * <p>This interface makes no guarantees of threadsafety.</p>
  113.61 + *
  113.62 + * @author rbair
  113.63 + */
  113.64 +public interface Painter<T> {
  113.65 +    /**
  113.66 +     * <p>Renders to the given {@link java.awt.Graphics2D} object. Implementations
  113.67 +     * of this method <em>may</em> modify state on the <code>Graphics2D</code>, and are not
  113.68 +     * required to restore that state upon completion. In most cases, it is recommended
  113.69 +     * that the caller pass in a scratch graphics object. The <code>Graphics2D</code>
  113.70 +     * must never be null.</p>
  113.71 +     *
  113.72 +     * <p>State on the graphics object may be honored by the <code>paint</code> method,
  113.73 +     * but may not be. For instance, setting the antialiasing rendering hint on the
  113.74 +     * graphics may or may not be respected by the <code>Painter</code> implementation.</p>
  113.75 +     *
  113.76 +     * <p>The supplied object parameter acts as an optional configuration argument.
  113.77 +     * For example, it could be of type <code>Component</code>. A <code>Painter</code>
  113.78 +     * that expected it could then read state from that <code>Component</code> and
  113.79 +     * use the state for painting. For example, an implementation may read the
  113.80 +     * backgroundColor and use that.</p>
  113.81 +     *
  113.82 +     * <p>Generally, to enhance reusability, most standard <code>Painter</code>s ignore
  113.83 +     * this parameter. They can thus be reused in any context. The <code>object</code>
  113.84 +     * may be null. Implementations must not throw a NullPointerException if the object
  113.85 +     * parameter is null.</p>
  113.86 +     *
  113.87 +     * <p>Finally, the <code>width</code> and <code>height</code> arguments specify the
  113.88 +     * width and height that the <code>Painter</code> should paint into. More
  113.89 +     * specifically, the specified width and height instruct the painter that it should
  113.90 +     * paint fully within this width and height. Any specified clip on the
  113.91 +     * <code>g</code> param will further constrain the region.</p>
  113.92 +     *
  113.93 +     * <p>For example, suppose I have a <code>Painter</code> implementation that draws
  113.94 +     * a gradient. The gradient goes from white to black. It "stretches" to fill the
  113.95 +     * painted region. Thus, if I use this <code>Painter</code> to paint a 500 x 500
  113.96 +     * region, the far left would be black, the far right would be white, and a smooth
  113.97 +     * gradient would be painted between. I could then, without modification, reuse the
  113.98 +     * <code>Painter</code> to paint a region that is 20x20 in size. This region would
  113.99 +     * also be black on the left, white on the right, and a smooth gradient painted
 113.100 +     * between.</p>
 113.101 +     *
 113.102 +     * @param g The Graphics2D to render to. This must not be null.
 113.103 +     * @param object an optional configuration parameter. This may be null.
 113.104 +     * @param width width of the area to paint.
 113.105 +     * @param height height of the area to paint.
 113.106 +     */
 113.107 +    public void paint(Graphics2D g, T object, int width, int height);
 113.108 +}
   114.1 --- a/src/share/classes/javax/swing/UIManager.java	Tue Apr 28 14:43:44 2009 -0700
   114.2 +++ b/src/share/classes/javax/swing/UIManager.java	Wed Apr 29 00:27:46 2009 -0700
   114.3 @@ -383,6 +383,8 @@
   114.4          ArrayList<LookAndFeelInfo> iLAFs = new ArrayList<LookAndFeelInfo>(4);
   114.5          iLAFs.add(new LookAndFeelInfo(
   114.6                        "Metal", "javax.swing.plaf.metal.MetalLookAndFeel"));
   114.7 +        iLAFs.add(new LookAndFeelInfo(
   114.8 +                      "Nimbus", "javax.swing.plaf.nimbus.NimbusLookAndFeel"));
   114.9          iLAFs.add(new LookAndFeelInfo("CDE/Motif",
  114.10                    "com.sun.java.swing.plaf.motif.MotifLookAndFeel"));
  114.11  
   115.1 --- a/src/share/classes/javax/swing/border/TitledBorder.java	Tue Apr 28 14:43:44 2009 -0700
   115.2 +++ b/src/share/classes/javax/swing/border/TitledBorder.java	Wed Apr 29 00:27:46 2009 -0700
   115.3 @@ -133,7 +133,7 @@
   115.4       * @param title  the title the border should display
   115.5       */
   115.6      public TitledBorder(String title)     {
   115.7 -        this(null, title, LEADING, TOP, null, null);
   115.8 +        this(null, title, LEADING, DEFAULT_POSITION, null, null);
   115.9      }
  115.10  
  115.11      /**
  115.12 @@ -143,7 +143,7 @@
  115.13       * @param border  the border
  115.14       */
  115.15      public TitledBorder(Border border)       {
  115.16 -        this(border, "", LEADING, TOP, null, null);
  115.17 +        this(border, "", LEADING, DEFAULT_POSITION, null, null);
  115.18      }
  115.19  
  115.20      /**
  115.21 @@ -154,7 +154,7 @@
  115.22       * @param title  the title the border should display
  115.23       */
  115.24      public TitledBorder(Border border, String title) {
  115.25 -        this(border, title, LEADING, TOP, null, null);
  115.26 +        this(border, title, LEADING, DEFAULT_POSITION, null, null);
  115.27      }
  115.28  
  115.29      /**
  115.30 @@ -502,7 +502,33 @@
  115.31      /**
  115.32       * Returns the title-position of the titled border.
  115.33       */
  115.34 -    public int getTitlePosition()   {       return titlePosition;   }
  115.35 +    public int getTitlePosition() {
  115.36 +        if (titlePosition == DEFAULT_POSITION) {
  115.37 +            Object value = UIManager.get("TitledBorder.position");
  115.38 +            if (value instanceof String) {
  115.39 +                String s = (String)value;
  115.40 +                if ("ABOVE_TOP".equalsIgnoreCase(s)) {
  115.41 +                    return ABOVE_TOP;
  115.42 +                } else if ("TOP".equalsIgnoreCase(s)) {
  115.43 +                    return TOP;
  115.44 +                } else if ("BELOW_TOP".equalsIgnoreCase(s)) {
  115.45 +                    return BELOW_TOP;
  115.46 +                } else if ("ABOVE_BOTTOM".equalsIgnoreCase(s)) {
  115.47 +                    return ABOVE_BOTTOM;
  115.48 +                } else if ("BOTTOM".equalsIgnoreCase(s)) {
  115.49 +                    return BOTTOM;
  115.50 +                } else if ("BELOW_BOTTOM".equalsIgnoreCase(s)) {
  115.51 +                    return BELOW_BOTTOM;
  115.52 +                }
  115.53 +            } else if (value instanceof Integer) {
  115.54 +                int i = (Integer)value;
  115.55 +                if (i >= 0 && i <= 6) {
  115.56 +                    return i;
  115.57 +                }
  115.58 +            }
  115.59 +        }
  115.60 +        return titlePosition;
  115.61 +    }
  115.62  
  115.63      /**
  115.64       * Returns the title-justification of the titled border.
  115.65 @@ -613,7 +639,7 @@
  115.66          Font font = getFont(c);
  115.67          FontMetrics fm = c.getFontMetrics(font);
  115.68          JComponent jc = (c instanceof JComponent) ? (JComponent)c : null;
  115.69 -        switch (titlePosition) {
  115.70 +        switch (getTitlePosition()) {
  115.71            case ABOVE_TOP:
  115.72            case BELOW_BOTTOM:
  115.73                minSize.width = Math.max(SwingUtilities2.stringWidth(jc, fm,
   116.1 --- a/src/share/classes/javax/swing/plaf/basic/BasicComboBoxUI.java	Tue Apr 28 14:43:44 2009 -0700
   116.2 +++ b/src/share/classes/javax/swing/plaf/basic/BasicComboBoxUI.java	Wed Apr 29 00:27:46 2009 -0700
   116.3 @@ -29,7 +29,6 @@
   116.4  import java.awt.event.*;
   116.5  import javax.swing.*;
   116.6  import javax.accessibility.*;
   116.7 -import javax.swing.FocusManager;
   116.8  import javax.swing.plaf.*;
   116.9  import javax.swing.border.*;
  116.10  import javax.swing.text.*;
  116.11 @@ -187,6 +186,23 @@
  116.12       */
  116.13      private boolean sameBaseline;
  116.14  
  116.15 +    /**
  116.16 +     * Indicates whether or not the combo box button should be square.
  116.17 +     * If square, then the width and height are equal, and are both set to
  116.18 +     * the height of the combo (minus appropriate insets).
  116.19 +     */
  116.20 +    private boolean squareButton = true;
  116.21 +
  116.22 +    /**
  116.23 +     * Optional: if specified, these insets act as padding around the cell
  116.24 +     * renderer when laying out and painting the "selected" item in the
  116.25 +     * combo box. BasicComboBoxUI uses a single combo box renderer for rendering
  116.26 +     * both the main combo box item and also all the items in the dropdown
  116.27 +     * for the combo box. padding allows you to specify addition insets in
  116.28 +     * addition to those specified by the cell renderer.
  116.29 +     */
  116.30 +    private Insets padding;
  116.31 +
  116.32      // Used for calculating the default size.
  116.33      private static ListCellRenderer getDefaultListCellRenderer() {
  116.34          ListCellRenderer renderer = (ListCellRenderer)AppContext.
  116.35 @@ -226,6 +242,7 @@
  116.36          return new BasicComboBoxUI();
  116.37      }
  116.38  
  116.39 +    @Override
  116.40      public void installUI( JComponent c ) {
  116.41          isMinimumSizeDirty = true;
  116.42  
  116.43 @@ -265,6 +282,7 @@
  116.44          comboBox.setKeySelectionManager(keySelectionManager);
  116.45      }
  116.46  
  116.47 +    @Override
  116.48      public void uninstallUI( JComponent c ) {
  116.49          setPopupVisible( comboBox, false);
  116.50          popup.uninstallingUI();
  116.51 @@ -317,7 +335,13 @@
  116.52          LookAndFeel.installProperty( comboBox, "opaque", Boolean.TRUE);
  116.53  
  116.54          Long l = (Long)UIManager.get("ComboBox.timeFactor");
  116.55 -        timeFactor = (l!=null) ? l.longValue() : 1000L;
  116.56 +        timeFactor = l == null ? 1000L : l.longValue();
  116.57 +
  116.58 +        //NOTE: this needs to default to true if not specified
  116.59 +        Boolean b = (Boolean)UIManager.get("ComboBox.squareButton");
  116.60 +        squareButton = b == null ? true : b;
  116.61 +
  116.62 +        padding = UIManager.getInsets("ComboBox.padding");
  116.63      }
  116.64  
  116.65      /**
  116.66 @@ -530,6 +554,7 @@
  116.67       * <code>BasicComboBoxUI</code>.
  116.68       */
  116.69      public class KeyHandler extends KeyAdapter {
  116.70 +        @Override
  116.71          public void keyPressed( KeyEvent e ) {
  116.72              getHandler().keyPressed(e);
  116.73          }
  116.74 @@ -761,6 +786,8 @@
  116.75          }
  116.76  
  116.77          comboBox.configureEditor(comboBox.getEditor(),comboBox.getSelectedItem());
  116.78 +
  116.79 +        editor.addPropertyChangeListener(propertyChangeListener);
  116.80      }
  116.81  
  116.82      /**
  116.83 @@ -774,6 +801,7 @@
  116.84              editor.removeFocusListener(focusListener);
  116.85          }
  116.86  
  116.87 +        editor.removePropertyChangeListener(propertyChangeListener);
  116.88          editor.removeFocusListener(getHandler());
  116.89          comboBox.getEditor().removeActionListener(getHandler());
  116.90      }
  116.91 @@ -868,7 +896,7 @@
  116.92  
  116.93      //=================================
  116.94      // begin ComponentUI Implementation
  116.95 -
  116.96 +    @Override
  116.97      public void paint( Graphics g, JComponent c ) {
  116.98          hasFocus = comboBox.hasFocus();
  116.99          if ( !comboBox.isEditable() ) {
 116.100 @@ -878,6 +906,7 @@
 116.101          }
 116.102      }
 116.103  
 116.104 +    @Override
 116.105      public Dimension getPreferredSize( JComponent c ) {
 116.106          return getMinimumSize(c);
 116.107      }
 116.108 @@ -885,15 +914,19 @@
 116.109      /**
 116.110       * The minumum size is the size of the display area plus insets plus the button.
 116.111       */
 116.112 +    @Override
 116.113      public Dimension getMinimumSize( JComponent c ) {
 116.114          if ( !isMinimumSizeDirty ) {
 116.115              return new Dimension(cachedMinimumSize);
 116.116          }
 116.117          Dimension size = getDisplaySize();
 116.118          Insets insets = getInsets();
 116.119 +        //calculate the width and height of the button
 116.120 +        int buttonHeight = size.height;
 116.121 +        int buttonWidth = squareButton ? buttonHeight : arrowButton.getPreferredSize().width;
 116.122 +        //adjust the size based on the button width
 116.123          size.height += insets.top + insets.bottom;
 116.124 -        int buttonSize = size.height - (insets.top + insets.bottom);
 116.125 -        size.width +=  insets.left + insets.right + buttonSize;
 116.126 +        size.width +=  insets.left + insets.right + buttonWidth;
 116.127  
 116.128          cachedMinimumSize.setSize( size.width, size.height );
 116.129          isMinimumSizeDirty = false;
 116.130 @@ -901,6 +934,7 @@
 116.131          return new Dimension(size);
 116.132      }
 116.133  
 116.134 +    @Override
 116.135      public Dimension getMaximumSize( JComponent c ) {
 116.136          return new Dimension(Short.MAX_VALUE, Short.MAX_VALUE);
 116.137      }
 116.138 @@ -913,6 +947,7 @@
 116.139       * @see javax.swing.JComponent#getBaseline(int, int)
 116.140       * @since 1.6
 116.141       */
 116.142 +    @Override
 116.143      public int getBaseline(JComponent c, int width, int height) {
 116.144          super.getBaseline(c, width, height);
 116.145          int baseline = -1;
 116.146 @@ -967,6 +1002,7 @@
 116.147       * @see javax.swing.JComponent#getBaseline(int, int)
 116.148       * @since 1.6
 116.149       */
 116.150 +    @Override
 116.151      public Component.BaselineResizeBehavior getBaselineResizeBehavior(
 116.152              JComponent c) {
 116.153          super.getBaselineResizeBehavior(c);
 116.154 @@ -1001,6 +1037,7 @@
 116.155      }
 116.156  
 116.157      // This is currently hacky...
 116.158 +    @Override
 116.159      public int getAccessibleChildrenCount(JComponent c) {
 116.160          if ( comboBox.isEditable() ) {
 116.161              return 2;
 116.162 @@ -1011,6 +1048,7 @@
 116.163      }
 116.164  
 116.165      // This is currently hacky...
 116.166 +    @Override
 116.167      public Accessible getAccessibleChild(JComponent c, int i) {
 116.168          // 0 = the popup
 116.169          // 1 = the editor
 116.170 @@ -1204,8 +1242,15 @@
 116.171              shouldValidate = true;
 116.172          }
 116.173  
 116.174 -        currentValuePane.paintComponent(g,c,comboBox,bounds.x,bounds.y,
 116.175 -                                        bounds.width,bounds.height, shouldValidate);
 116.176 +        int x = bounds.x, y = bounds.y, w = bounds.width, h = bounds.height;
 116.177 +        if (padding != null) {
 116.178 +            x = bounds.x + padding.left;
 116.179 +            y = bounds.y + padding.top;
 116.180 +            w = bounds.width - (padding.left + padding.right);
 116.181 +            h = bounds.height - (padding.top + padding.bottom);
 116.182 +        }
 116.183 +
 116.184 +        currentValuePane.paintComponent(g,c,comboBox,x,y,w,h,shouldValidate);
 116.185      }
 116.186  
 116.187      /**
 116.188 @@ -1333,6 +1378,12 @@
 116.189              result.height = Math.max(result.height,d.height);
 116.190          }
 116.191  
 116.192 +        // calculate in the padding
 116.193 +        if (padding != null) {
 116.194 +            result.width += padding.left + padding.right;
 116.195 +            result.height += padding.top + padding.bottom;
 116.196 +        }
 116.197 +
 116.198          // Set the cached value
 116.199          cachedDisplaySize.setSize(result.width, result.height);
 116.200          isDisplaySizeDirty = false;
 116.201 @@ -1591,91 +1642,99 @@
 116.202          //
 116.203          public void propertyChange(PropertyChangeEvent e) {
 116.204              String propertyName = e.getPropertyName();
 116.205 -            JComboBox comboBox = (JComboBox)e.getSource();
 116.206 +            if (e.getSource() == editor){
 116.207 +                // If the border of the editor changes then this can effect
 116.208 +                // the size of the editor which can cause the combo's size to
 116.209 +                // become invalid so we need to clear size caches
 116.210 +                if ("border".equals(propertyName)){
 116.211 +                    isMinimumSizeDirty = true;
 116.212 +                    isDisplaySizeDirty = true;
 116.213 +                    comboBox.revalidate();
 116.214 +                }
 116.215 +            } else {
 116.216 +                JComboBox comboBox = (JComboBox)e.getSource();
 116.217 +                if ( propertyName == "model" ) {
 116.218 +                    ComboBoxModel newModel = (ComboBoxModel)e.getNewValue();
 116.219 +                    ComboBoxModel oldModel = (ComboBoxModel)e.getOldValue();
 116.220  
 116.221 -            if ( propertyName == "model" ) {
 116.222 -                ComboBoxModel newModel = (ComboBoxModel)e.getNewValue();
 116.223 -                ComboBoxModel oldModel = (ComboBoxModel)e.getOldValue();
 116.224 +                    if ( oldModel != null && listDataListener != null ) {
 116.225 +                        oldModel.removeListDataListener( listDataListener );
 116.226 +                    }
 116.227  
 116.228 -                if ( oldModel != null && listDataListener != null ) {
 116.229 -                    oldModel.removeListDataListener( listDataListener );
 116.230 +                    if ( newModel != null && listDataListener != null ) {
 116.231 +                        newModel.addListDataListener( listDataListener );
 116.232 +                    }
 116.233 +
 116.234 +                    if ( editor != null ) {
 116.235 +                        comboBox.configureEditor( comboBox.getEditor(), comboBox.getSelectedItem() );
 116.236 +                    }
 116.237 +                    isMinimumSizeDirty = true;
 116.238 +                    isDisplaySizeDirty = true;
 116.239 +                    comboBox.revalidate();
 116.240 +                    comboBox.repaint();
 116.241                  }
 116.242 -
 116.243 -                if ( newModel != null && listDataListener != null ) {
 116.244 -                    newModel.addListDataListener( listDataListener );
 116.245 +                else if ( propertyName == "editor" && comboBox.isEditable() ) {
 116.246 +                    addEditor();
 116.247 +                    comboBox.revalidate();
 116.248                  }
 116.249 -
 116.250 -                if ( editor != null ) {
 116.251 -                    comboBox.configureEditor( comboBox.getEditor(), comboBox.getSelectedItem() );
 116.252 +                else if ( propertyName == "editable" ) {
 116.253 +                    if ( comboBox.isEditable() ) {
 116.254 +                        comboBox.setRequestFocusEnabled( false );
 116.255 +                        addEditor();
 116.256 +                    } else {
 116.257 +                        comboBox.setRequestFocusEnabled( true );
 116.258 +                        removeEditor();
 116.259 +                    }
 116.260 +                    updateToolTipTextForChildren();
 116.261 +                    comboBox.revalidate();
 116.262                  }
 116.263 -                isMinimumSizeDirty = true;
 116.264 -                isDisplaySizeDirty = true;
 116.265 -                comboBox.revalidate();
 116.266 -                comboBox.repaint();
 116.267 -            }
 116.268 -            else if ( propertyName == "editor" && comboBox.isEditable() ) {
 116.269 -                addEditor();
 116.270 -                comboBox.revalidate();
 116.271 -            }
 116.272 -            else if ( propertyName == "editable" ) {
 116.273 -                if ( comboBox.isEditable() ) {
 116.274 -                    comboBox.setRequestFocusEnabled( false );
 116.275 -                    addEditor();
 116.276 -                } else {
 116.277 -                    comboBox.setRequestFocusEnabled( true );
 116.278 -                    removeEditor();
 116.279 +                else if ( propertyName == "enabled" ) {
 116.280 +                    boolean enabled = comboBox.isEnabled();
 116.281 +                    if ( editor != null )
 116.282 +                        editor.setEnabled(enabled);
 116.283 +                    if ( arrowButton != null )
 116.284 +                        arrowButton.setEnabled(enabled);
 116.285 +                    comboBox.repaint();
 116.286                  }
 116.287 -
 116.288 -                updateToolTipTextForChildren();
 116.289 -
 116.290 -                comboBox.revalidate();
 116.291 -            }
 116.292 -            else if ( propertyName == "enabled" ) {
 116.293 -                boolean enabled = comboBox.isEnabled();
 116.294 -                if ( editor != null )
 116.295 -                    editor.setEnabled(enabled);
 116.296 -                if ( arrowButton != null )
 116.297 -                    arrowButton.setEnabled(enabled);
 116.298 -                comboBox.repaint();
 116.299 -            }
 116.300 -            else if ( propertyName == "focusable" ) {
 116.301 -                boolean focusable = comboBox.isFocusable();
 116.302 -                if ( editor != null )
 116.303 -                    editor.setFocusable(focusable);
 116.304 -                if ( arrowButton != null )
 116.305 -                    arrowButton.setFocusable(focusable);
 116.306 -                comboBox.repaint();
 116.307 -            }
 116.308 -            else if ( propertyName == "maximumRowCount" ) {
 116.309 -                if ( isPopupVisible( comboBox ) ) {
 116.310 -                    setPopupVisible(comboBox, false);
 116.311 -                    setPopupVisible(comboBox, true);
 116.312 +                else if ( propertyName == "focusable" ) {
 116.313 +                    boolean focusable = comboBox.isFocusable();
 116.314 +                    if ( editor != null )
 116.315 +                        editor.setFocusable(focusable);
 116.316 +                    if ( arrowButton != null )
 116.317 +                        arrowButton.setFocusable(focusable);
 116.318 +                    comboBox.repaint();
 116.319                  }
 116.320 -            }
 116.321 -            else if ( propertyName == "font" ) {
 116.322 -                listBox.setFont( comboBox.getFont() );
 116.323 -                if ( editor != null ) {
 116.324 -                    editor.setFont( comboBox.getFont() );
 116.325 +                else if ( propertyName == "maximumRowCount" ) {
 116.326 +                    if ( isPopupVisible( comboBox ) ) {
 116.327 +                        setPopupVisible(comboBox, false);
 116.328 +                        setPopupVisible(comboBox, true);
 116.329 +                    }
 116.330                  }
 116.331 -                isMinimumSizeDirty = true;
 116.332 -                comboBox.validate();
 116.333 -            }
 116.334 -            else if ( propertyName == JComponent.TOOL_TIP_TEXT_KEY ) {
 116.335 -                updateToolTipTextForChildren();
 116.336 -            }
 116.337 -            else if ( propertyName == BasicComboBoxUI.IS_TABLE_CELL_EDITOR ) {
 116.338 -                Boolean inTable = (Boolean)e.getNewValue();
 116.339 -                isTableCellEditor = inTable.equals(Boolean.TRUE) ? true : false;
 116.340 -            }
 116.341 -            else if (propertyName == "prototypeDisplayValue") {
 116.342 -                isMinimumSizeDirty = true;
 116.343 -                isDisplaySizeDirty = true;
 116.344 -                comboBox.revalidate();
 116.345 -            }
 116.346 -            else if (propertyName == "renderer") {
 116.347 -                isMinimumSizeDirty = true;
 116.348 -                isDisplaySizeDirty = true;
 116.349 -                comboBox.revalidate();
 116.350 +                else if ( propertyName == "font" ) {
 116.351 +                    listBox.setFont( comboBox.getFont() );
 116.352 +                    if ( editor != null ) {
 116.353 +                        editor.setFont( comboBox.getFont() );
 116.354 +                    }
 116.355 +                    isMinimumSizeDirty = true;
 116.356 +                    comboBox.validate();
 116.357 +                }
 116.358 +                else if ( propertyName == JComponent.TOOL_TIP_TEXT_KEY ) {
 116.359 +                    updateToolTipTextForChildren();
 116.360 +                }
 116.361 +                else if ( propertyName == BasicComboBoxUI.IS_TABLE_CELL_EDITOR ) {
 116.362 +                    Boolean inTable = (Boolean)e.getNewValue();
 116.363 +                    isTableCellEditor = inTable.equals(Boolean.TRUE) ? true : false;
 116.364 +                }
 116.365 +                else if (propertyName == "prototypeDisplayValue") {
 116.366 +                    isMinimumSizeDirty = true;
 116.367 +                    isDisplaySizeDirty = true;
 116.368 +                    comboBox.revalidate();
 116.369 +                }
 116.370 +                else if (propertyName == "renderer") {
 116.371 +                    isMinimumSizeDirty = true;
 116.372 +                    isDisplaySizeDirty = true;
 116.373 +                    comboBox.revalidate();
 116.374 +                }
 116.375              }
 116.376          }
 116.377  
 116.378 @@ -1809,18 +1868,23 @@
 116.379              int height = cb.getHeight();
 116.380  
 116.381              Insets insets = getInsets();
 116.382 -            int buttonSize = height - (insets.top + insets.bottom);
 116.383 +            int buttonHeight = height - (insets.top + insets.bottom);
 116.384 +            int buttonWidth = buttonHeight;
 116.385 +            if (arrowButton != null) {
 116.386 +                Insets arrowInsets = arrowButton.getInsets();
 116.387 +                buttonWidth = squareButton ?
 116.388 +                    buttonHeight :
 116.389 +                    arrowButton.getPreferredSize().width + arrowInsets.left + arrowInsets.right;
 116.390 +            }
 116.391              Rectangle cvb;
 116.392  
 116.393 -            if ( arrowButton != null ) {
 116.394 -                if(BasicGraphicsUtils.isLeftToRight(cb)) {
 116.395 -                    arrowButton.setBounds( width - (insets.right + buttonSize),
 116.396 -                                           insets.top,
 116.397 -                                           buttonSize, buttonSize);
 116.398 -                }
 116.399 -                else {
 116.400 -                    arrowButton.setBounds( insets.left, insets.top,
 116.401 -                                           buttonSize, buttonSize);
 116.402 +            if (arrowButton != null) {
 116.403 +                if (BasicGraphicsUtils.isLeftToRight(cb)) {
 116.404 +                    arrowButton.setBounds(width - (insets.right + buttonWidth),
 116.405 +                            insets.top, buttonWidth, buttonHeight);
 116.406 +                } else {
 116.407 +                    arrowButton.setBounds(insets.left, insets.top,
 116.408 +                            buttonWidth, buttonHeight);
 116.409                  }
 116.410              }
 116.411              if ( editor != null ) {
 116.412 @@ -1829,7 +1893,6 @@
 116.413              }
 116.414          }
 116.415  
 116.416 -
 116.417          //
 116.418          // ActionListener
 116.419          //
   117.1 --- a/src/share/classes/javax/swing/plaf/basic/BasicListUI.java	Tue Apr 28 14:43:44 2009 -0700
   117.2 +++ b/src/share/classes/javax/swing/plaf/basic/BasicListUI.java	Wed Apr 29 00:27:46 2009 -0700
   117.3 @@ -480,6 +480,12 @@
   117.4          if (renderer == null) {
   117.5              ListCellRenderer lcr = (ListCellRenderer)UIManager.get(
   117.6                      "List.cellRenderer");
   117.7 +
   117.8 +            // fix for 6711072 some LAFs like Nimbus do not provide this
   117.9 +            // UIManager key and we should not through a NPE here because of it
  117.10 +            if (lcr == null) {
  117.11 +                lcr = new DefaultListCellRenderer();
  117.12 +            }
  117.13              renderer = lcr.getListCellRendererComponent(
  117.14                      list, "a", -1, false, false);
  117.15              lafDefaults.put(BASELINE_COMPONENT_KEY, renderer);
   118.1 --- a/src/share/classes/javax/swing/plaf/basic/BasicMenuItemUI.java	Tue Apr 28 14:43:44 2009 -0700
   118.2 +++ b/src/share/classes/javax/swing/plaf/basic/BasicMenuItemUI.java	Wed Apr 29 00:27:46 2009 -0700
   118.3 @@ -111,6 +111,11 @@
   118.4          String prefix = getPropertyPrefix();
   118.5  
   118.6          acceleratorFont = UIManager.getFont("MenuItem.acceleratorFont");
   118.7 +        // use default if missing so that BasicMenuItemUI can be used in other
   118.8 +        // LAFs like Nimbus
   118.9 +        if (acceleratorFont == null) {
  118.10 +            acceleratorFont = UIManager.getFont("MenuItem.font");
  118.11 +        }
  118.12  
  118.13          Object opaque = UIManager.get(getPropertyPrefix() + ".opaque");
  118.14          if (opaque != null) {
  118.15 @@ -130,7 +135,7 @@
  118.16          LookAndFeel.installBorder(menuItem, prefix + ".border");
  118.17          oldBorderPainted = menuItem.isBorderPainted();
  118.18          LookAndFeel.installProperty(menuItem, "borderPainted",
  118.19 -                                    UIManager.get(prefix + ".borderPainted"));
  118.20 +                                    UIManager.getBoolean(prefix + ".borderPainted"));
  118.21          LookAndFeel.installColorsAndFont(menuItem,
  118.22                                           prefix + ".background",
  118.23                                           prefix + ".foreground",
   119.1 --- a/src/share/classes/javax/swing/plaf/basic/BasicProgressBarUI.java	Tue Apr 28 14:43:44 2009 -0700
   119.2 +++ b/src/share/classes/javax/swing/plaf/basic/BasicProgressBarUI.java	Wed Apr 29 00:27:46 2009 -0700
   119.3 @@ -158,6 +158,7 @@
   119.4                                           "ProgressBar.foreground",
   119.5                                           "ProgressBar.font");
   119.6          cellLength = UIManager.getInt("ProgressBar.cellLength");
   119.7 +        if (cellLength == 0) cellLength = 1;
   119.8          cellSpacing = UIManager.getInt("ProgressBar.cellSpacing");
   119.9          selectionForeground = UIManager.getColor("ProgressBar.selectionForeground");
  119.10          selectionBackground = UIManager.getColor("ProgressBar.selectionBackground");
   120.1 --- a/src/share/classes/javax/swing/plaf/basic/BasicScrollBarUI.java	Tue Apr 28 14:43:44 2009 -0700
   120.2 +++ b/src/share/classes/javax/swing/plaf/basic/BasicScrollBarUI.java	Wed Apr 29 00:27:46 2009 -0700
   120.3 @@ -112,6 +112,24 @@
   120.4       */
   120.5      private int scrollBarValue;
   120.6  
   120.7 +    /**
   120.8 +     * Distance between the increment button and the track. This may be a negative
   120.9 +     * number. If negative, then an overlap between the button and track will occur,
  120.10 +     * which is useful for shaped buttons.
  120.11 +     *
  120.12 +     * TODO This should be made protected in a feature release
  120.13 +     */
  120.14 +    private int incrGap;
  120.15 +
  120.16 +    /**
  120.17 +     * Distance between the decrement button and the track. This may be a negative
  120.18 +     * number. If negative, then an overlap between the button and track will occur,
  120.19 +     * which is useful for shaped buttons.
  120.20 +     *
  120.21 +     * TODO This should be made protected in a feature release
  120.22 +     */
  120.23 +    private int decrGap;
  120.24 +
  120.25      static void loadActionMap(LazyActionMap map) {
  120.26          map.put(new Actions(Actions.POSITIVE_UNIT_INCREMENT));
  120.27          map.put(new Actions(Actions.POSITIVE_BLOCK_INCREMENT));
  120.28 @@ -186,6 +204,31 @@
  120.29          LookAndFeel.installProperty(scrollbar, "opaque", Boolean.TRUE);
  120.30  
  120.31          scrollBarValue = scrollbar.getValue();
  120.32 +
  120.33 +        incrGap = UIManager.getInt("ScrollBar.incrementButtonGap");
  120.34 +        decrGap = UIManager.getInt("ScrollBar.decrementButtonGap");
  120.35 +
  120.36 +        // TODO this can be removed when incrGap/decrGap become protected
  120.37 +        // handle scaling for sizeVarients for special case components. The
  120.38 +        // key "JComponent.sizeVariant" scales for large/small/mini
  120.39 +        // components are based on Apples LAF
  120.40 +        String scaleKey = (String)scrollbar.getClientProperty(
  120.41 +                "JComponent.sizeVariant");
  120.42 +        if (scaleKey != null){
  120.43 +            if ("large".equals(scaleKey)){
  120.44 +                scrollBarWidth *= 1.15;
  120.45 +                incrGap *= 1.15;
  120.46 +                decrGap *= 1.15;
  120.47 +            } else if ("small".equals(scaleKey)){
  120.48 +                scrollBarWidth *= 0.857;
  120.49 +                incrGap *= 0.857;
  120.50 +                decrGap *= 0.714;
  120.51 +            } else if ("mini".equals(scaleKey)){
  120.52 +                scrollBarWidth *= 0.714;
  120.53 +                incrGap *= 0.714;
  120.54 +                decrGap *= 0.714;
  120.55 +            }
  120.56 +        }
  120.57      }
  120.58  
  120.59  
  120.60 @@ -442,20 +485,23 @@
  120.61          g.setColor(trackHighlightColor);
  120.62  
  120.63          if (scrollbar.getOrientation() == JScrollBar.VERTICAL) {
  120.64 +            //paint the distance between the start of the track and top of the thumb
  120.65              int x = insets.left;
  120.66 -            int y = decrButton.getY() + decrButton.getHeight();
  120.67 +            int y = trackRect.y;
  120.68              int w = scrollbar.getWidth() - (insets.left + insets.right);
  120.69              int h = thumbR.y - y;
  120.70              g.fillRect(x, y, w, h);
  120.71 -        }
  120.72 -        else    {
  120.73 +        } else {
  120.74 +            //if left-to-right, fill the area between the start of the track and
  120.75 +            //the left edge of the thumb. If right-to-left, fill the area between
  120.76 +            //the end of the thumb and end of the track.
  120.77              int x, w;
  120.78              if (scrollbar.getComponentOrientation().isLeftToRight()) {
  120.79 -                x = decrButton.getX() + decrButton.getWidth();
  120.80 +               x = trackRect.x;
  120.81                  w = thumbR.x - x;
  120.82              } else {
  120.83                  x = thumbR.x + thumbR.width;
  120.84 -                w = decrButton.getX() - x;
  120.85 +                w = trackRect.x + trackRect.width - x;
  120.86              }
  120.87              int y = insets.top;
  120.88              int h = scrollbar.getHeight() - (insets.top + insets.bottom);
  120.89 @@ -471,19 +517,23 @@
  120.90          g.setColor(trackHighlightColor);
  120.91  
  120.92          if (scrollbar.getOrientation() == JScrollBar.VERTICAL) {
  120.93 +            //fill the area between the bottom of the thumb and the end of the track.
  120.94              int x = insets.left;
  120.95              int y = thumbR.y + thumbR.height;
  120.96              int w = scrollbar.getWidth() - (insets.left + insets.right);
  120.97 -            int h = incrButton.getY() - y;
  120.98 +            int h = trackRect.y + trackRect.height - y;
  120.99              g.fillRect(x, y, w, h);
 120.100          }
 120.101          else {
 120.102 +            //if left-to-right, fill the area between the right of the thumb and the
 120.103 +            //end of the track. If right-to-left, then fill the area to the left of
 120.104 +            //the thumb and the start of the track.
 120.105              int x, w;
 120.106              if (scrollbar.getComponentOrientation().isLeftToRight()) {
 120.107                  x = thumbR.x + thumbR.width;
 120.108 -                w = incrButton.getX() - x;
 120.109 +                w = trackRect.x + trackRect.width - x;
 120.110              } else {
 120.111 -                x = incrButton.getX() + incrButton.getWidth();
 120.112 +                x = trackRect.x;
 120.113                  w = thumbR.x - x;
 120.114              }
 120.115              int y = insets.top;
 120.116 @@ -610,11 +660,13 @@
 120.117          int incrButtonY = sbSize.height - (sbInsets.bottom + incrButtonH);
 120.118  
 120.119          /* The thumb must fit within the height left over after we
 120.120 -         * subtract the preferredSize of the buttons and the insets.
 120.121 +         * subtract the preferredSize of the buttons and the insets
 120.122 +         * and the gaps
 120.123           */
 120.124          int sbInsetsH = sbInsets.top + sbInsets.bottom;
 120.125          int sbButtonsH = decrButtonH + incrButtonH;
 120.126 -        float trackH = sbSize.height - (sbInsetsH + sbButtonsH);
 120.127 +        int gaps = decrGap + incrGap;
 120.128 +        float trackH = sbSize.height - (sbInsetsH + sbButtonsH) - gaps;
 120.129  
 120.130          /* Compute the height and origin of the thumb.   The case
 120.131           * where the thumb is at the bottom edge is handled specially
 120.132 @@ -632,11 +684,11 @@
 120.133          thumbH = Math.max(thumbH, getMinimumThumbSize().height);
 120.134          thumbH = Math.min(thumbH, getMaximumThumbSize().height);
 120.135  
 120.136 -        int thumbY = incrButtonY - thumbH;
 120.137 +        int thumbY = incrButtonY - incrGap - thumbH;
 120.138          if (value < (sb.getMaximum() - sb.getVisibleAmount())) {
 120.139              float thumbRange = trackH - thumbH;
 120.140              thumbY = (int)(0.5f + (thumbRange * ((value - min) / (range - extent))));
 120.141 -            thumbY +=  decrButtonY + decrButtonH;
 120.142 +            thumbY +=  decrButtonY + decrButtonH + decrGap;
 120.143          }
 120.144  
 120.145          /* If the buttons don't fit, allocate half of the available
 120.146 @@ -652,8 +704,8 @@
 120.147  
 120.148          /* Update the trackRect field.
 120.149           */
 120.150 -        int itrackY = decrButtonY + decrButtonH;
 120.151 -        int itrackH = incrButtonY - itrackY;
 120.152 +        int itrackY = decrButtonY + decrButtonH + decrGap;
 120.153 +        int itrackH = incrButtonY - incrGap - itrackY;
 120.154          trackRect.setBounds(itemX, itrackY, itemW, itrackH);
 120.155  
 120.156          /* If the thumb isn't going to fit, zero it's bounds.  Otherwise
 120.157 @@ -671,11 +723,11 @@
 120.158              }
 120.159          }
 120.160          else {
 120.161 -            if ((thumbY + thumbH) > incrButtonY) {
 120.162 -                thumbY = incrButtonY - thumbH;
 120.163 +            if ((thumbY + thumbH) > incrButtonY - incrGap) {
 120.164 +                thumbY = incrButtonY - incrGap - thumbH;
 120.165              }
 120.166 -            if (thumbY  < (decrButtonY + decrButtonH)) {
 120.167 -                thumbY = decrButtonY + decrButtonH + 1;
 120.168 +            if (thumbY  < (decrButtonY + decrButtonH + decrGap)) {
 120.169 +                thumbY = decrButtonY + decrButtonH + decrGap + 1;
 120.170              }
 120.171              setThumbBounds(itemX, thumbY, itemW, thumbH);
 120.172          }
 120.173 @@ -710,13 +762,16 @@
 120.174          }
 120.175          int leftButtonX = sbInsets.left;
 120.176          int rightButtonX = sbSize.width - (sbInsets.right + rightButtonW);
 120.177 +        int leftGap = ltr ? decrGap : incrGap;
 120.178 +        int rightGap = ltr ? incrGap : decrGap;
 120.179  
 120.180          /* The thumb must fit within the width left over after we
 120.181 -         * subtract the preferredSize of the buttons and the insets.
 120.182 +         * subtract the preferredSize of the buttons and the insets
 120.183 +         * and the gaps
 120.184           */
 120.185          int sbInsetsW = sbInsets.left + sbInsets.right;
 120.186          int sbButtonsW = leftButtonW + rightButtonW;
 120.187 -        float trackW = sbSize.width - (sbInsetsW + sbButtonsW);
 120.188 +        float trackW = sbSize.width - (sbInsetsW + sbButtonsW) - (leftGap + rightGap);
 120.189  
 120.190          /* Compute the width and origin of the thumb.  Enforce
 120.191           * the thumbs min/max dimensions.  The case where the thumb
 120.192 @@ -735,7 +790,7 @@
 120.193          thumbW = Math.max(thumbW, getMinimumThumbSize().width);
 120.194          thumbW = Math.min(thumbW, getMaximumThumbSize().width);
 120.195  
 120.196 -        int thumbX = ltr ? rightButtonX - thumbW : leftButtonX + leftButtonW;
 120.197 +        int thumbX = ltr ? rightButtonX - rightGap - thumbW : leftButtonX + leftButtonW + leftGap;
 120.198          if (value < (max - sb.getVisibleAmount())) {
 120.199              float thumbRange = trackW - thumbW;
 120.200              if( ltr ) {
 120.201 @@ -743,7 +798,7 @@
 120.202              } else {
 120.203                  thumbX = (int)(0.5f + (thumbRange * ((max - extent - value) / (range - extent))));
 120.204              }
 120.205 -            thumbX +=  leftButtonX + leftButtonW;
 120.206 +            thumbX += leftButtonX + leftButtonW + leftGap;
 120.207          }
 120.208  
 120.209          /* If the buttons don't fit, allocate half of the available
 120.210 @@ -752,7 +807,7 @@
 120.211          int sbAvailButtonW = (sbSize.width - sbInsetsW);
 120.212          if (sbAvailButtonW < sbButtonsW) {
 120.213              rightButtonW = leftButtonW = sbAvailButtonW / 2;
 120.214 -            rightButtonX = sbSize.width - (sbInsets.right + rightButtonW);
 120.215 +            rightButtonX = sbSize.width - (sbInsets.right + rightButtonW + rightGap);
 120.216          }
 120.217  
 120.218          (ltr ? decrButton : incrButton).setBounds(leftButtonX, itemY, leftButtonW, itemH);
 120.219 @@ -760,8 +815,8 @@
 120.220  
 120.221          /* Update the trackRect field.
 120.222           */
 120.223 -        int itrackX = leftButtonX + leftButtonW;
 120.224 -        int itrackW = rightButtonX - itrackX;
 120.225 +        int itrackX = leftButtonX + leftButtonW + leftGap;
 120.226 +        int itrackW = rightButtonX - rightGap - itrackX;
 120.227          trackRect.setBounds(itrackX, itemY, itrackW, itemH);
 120.228  
 120.229          /* Make sure the thumb fits between the buttons.  Note
 120.230 @@ -778,11 +833,11 @@
 120.231              }
 120.232          }
 120.233          else {
 120.234 -            if (thumbX + thumbW > rightButtonX) {
 120.235 -                thumbX = rightButtonX - thumbW;
 120.236 +            if (thumbX + thumbW > rightButtonX - rightGap) {
 120.237 +                thumbX = rightButtonX - rightGap - thumbW;
 120.238              }
 120.239 -            if (thumbX  < leftButtonX + leftButtonW) {
 120.240 -                thumbX = leftButtonX + leftButtonW + 1;
 120.241 +            if (thumbX  < leftButtonX + leftButtonW + leftGap) {
 120.242 +                thumbX = leftButtonX + leftButtonW + leftGap + 1;
 120.243              }
 120.244              setThumbBounds(thumbX, itemY, thumbW, itemH);
 120.245          }
 120.246 @@ -1151,20 +1206,15 @@
 120.247              int thumbMin, thumbMax, thumbPos;
 120.248  
 120.249              if (scrollbar.getOrientation() == JScrollBar.VERTICAL) {
 120.250 -                thumbMin = decrButton.getY() + decrButton.getHeight();
 120.251 -                thumbMax = incrButton.getY() - thumbR.height;
 120.252 +                thumbMin = trackRect.y;
 120.253 +                thumbMax = trackRect.y + trackRect.height - thumbR.height;
 120.254                  thumbPos = Math.min(thumbMax, Math.max(thumbMin, (e.getY() - offset)));
 120.255                  setThumbBounds(thumbR.x, thumbPos, thumbR.width, thumbR.height);
 120.256                  trackLength = getTrackBounds().height;
 120.257              }
 120.258              else {
 120.259 -                if (scrollbar.getComponentOrientation().isLeftToRight()) {
 120.260 -                    thumbMin = decrButton.getX() + decrButton.getWidth();
 120.261 -                    thumbMax = incrButton.getX() - thumbR.width;
 120.262 -                } else {
 120.263 -                    thumbMin = incrButton.getX() + incrButton.getWidth();
 120.264 -                    thumbMax = decrButton.getX() - thumbR.width;
 120.265 -                }
 120.266 +                thumbMin = trackRect.x;
 120.267 +                thumbMax = trackRect.x + trackRect.width - thumbR.width;
 120.268                  thumbPos = Math.min(thumbMax, Math.max(thumbMin, (e.getX() - offset)));
 120.269                  setThumbBounds(thumbPos, thumbR.y, thumbR.width, thumbR.height);
 120.270                  trackLength = getTrackBounds().width;
   121.1 --- a/src/share/classes/javax/swing/plaf/basic/BasicSliderUI.java	Tue Apr 28 14:43:44 2009 -0700
   121.2 +++ b/src/share/classes/javax/swing/plaf/basic/BasicSliderUI.java	Wed Apr 29 00:27:46 2009 -0700
   121.3 @@ -205,6 +205,9 @@
   121.4          focusColor = UIManager.getColor("Slider.focus");
   121.5  
   121.6          focusInsets = (Insets)UIManager.get( "Slider.focusInsets" );
   121.7 +        // use default if missing so that BasicSliderUI can be used in other
   121.8 +        // LAFs like Nimbus
   121.9 +        if (focusInsets == null) focusInsets = new InsetsUIResource(2,2,2,2);
  121.10      }
  121.11  
  121.12      protected TrackListener createTrackListener(JSlider slider) {
   122.1 --- a/src/share/classes/javax/swing/plaf/basic/BasicSplitPaneUI.java	Tue Apr 28 14:43:44 2009 -0700
   122.2 +++ b/src/share/classes/javax/swing/plaf/basic/BasicSplitPaneUI.java	Wed Apr 29 00:27:46 2009 -0700
   122.3 @@ -347,8 +347,9 @@
   122.4          // This plus 2 here is to provide backwards consistancy. Previously,
   122.5          // the old size did not include the 2 pixel border around the divider,
   122.6          // it now does.
   122.7 -        LookAndFeel.installProperty(splitPane, "dividerSize",
   122.8 -                                    UIManager.get("SplitPane.dividerSize"));
   122.9 +        Integer dividerSize = (Integer)UIManager.get("SplitPane.dividerSize");
  122.10 +        if (divider == null) dividerSize = 10;
  122.11 +        LookAndFeel.installProperty(splitPane, "dividerSize", dividerSize);
  122.12  
  122.13          divider.setDividerSize(splitPane.getDividerSize());
  122.14          dividerSize = divider.getDividerSize();
   123.1 --- a/src/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java	Tue Apr 28 14:43:44 2009 -0700
   123.2 +++ b/src/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java	Wed Apr 29 00:27:46 2009 -0700
   123.3 @@ -379,6 +379,14 @@
   123.4              opaque = Boolean.FALSE;
   123.5          }
   123.6          LookAndFeel.installProperty(tabPane, "opaque", opaque);
   123.7 +
   123.8 +        // Fix for 6711145 BasicTabbedPanuUI should not throw a NPE if these
   123.9 +        // keys are missing. So we are setting them to there default values here
  123.10 +        // if the keys are missing.
  123.11 +        if (tabInsets == null) tabInsets = new Insets(0,4,1,4);
  123.12 +        if (selectedTabPadInsets == null) selectedTabPadInsets = new Insets(2,2,2,1);
  123.13 +        if (tabAreaInsets == null) tabAreaInsets = new Insets(3,2,0,2);
  123.14 +        if (contentBorderInsets == null) contentBorderInsets = new Insets(2,2,3,3);
  123.15      }
  123.16  
  123.17      protected void uninstallDefaults() {
   124.1 --- a/src/share/classes/javax/swing/plaf/basic/BasicTableUI.java	Tue Apr 28 14:43:44 2009 -0700
   124.2 +++ b/src/share/classes/javax/swing/plaf/basic/BasicTableUI.java	Wed Apr 29 00:27:46 2009 -0700
   124.3 @@ -1414,17 +1414,20 @@
   124.4  
   124.5          Color sbg = table.getSelectionBackground();
   124.6          if (sbg == null || sbg instanceof UIResource) {
   124.7 -            table.setSelectionBackground(UIManager.getColor("Table.selectionBackground"));
   124.8 +            sbg = UIManager.getColor("Table.selectionBackground");
   124.9 +            table.setSelectionBackground(sbg != null ? sbg : UIManager.getColor("textHighlight"));
  124.10          }
  124.11  
  124.12          Color sfg = table.getSelectionForeground();
  124.13          if (sfg == null || sfg instanceof UIResource) {
  124.14 -            table.setSelectionForeground(UIManager.getColor("Table.selectionForeground"));
  124.15 +            sfg = UIManager.getColor("Table.selectionForeground");
  124.16 +            table.setSelectionForeground(sfg != null ? sfg : UIManager.getColor("textHighlightText"));
  124.17          }
  124.18  
  124.19          Color gridColor = table.getGridColor();
  124.20          if (gridColor == null || gridColor instanceof UIResource) {
  124.21 -            table.setGridColor(UIManager.getColor("Table.gridColor"));
  124.22 +            gridColor = UIManager.getColor("Table.gridColor");
  124.23 +            table.setGridColor(gridColor != null ? gridColor : Color.GRAY);
  124.24          }
  124.25  
  124.26          // install the scrollpane border
   125.1 --- a/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java	Tue Apr 28 14:43:44 2009 -0700
   125.2 +++ b/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java	Wed Apr 29 00:27:46 2009 -0700
   125.3 @@ -27,13 +27,10 @@
   125.4  import java.util.*;
   125.5  import java.awt.*;
   125.6  import java.awt.event.*;
   125.7 -import java.awt.font.*;
   125.8  import java.awt.datatransfer.*;
   125.9 -import java.awt.dnd.*;
  125.10  import java.awt.im.InputContext;
  125.11  import java.beans.*;
  125.12  import java.io.*;
  125.13 -import java.net.*;
  125.14  import javax.swing.*;
  125.15  import javax.swing.plaf.*;
  125.16  import javax.swing.text.*;
  125.17 @@ -785,11 +782,15 @@
  125.18              installDefaults();
  125.19              installDefaults2();
  125.20  
  125.21 -            // common case is background painted... this can
  125.22 -            // easily be changed by subclasses or from outside
  125.23 -            // of the component.
  125.24 -            LookAndFeel.installProperty(editor, "opaque", Boolean.TRUE);
  125.25 -            LookAndFeel.installProperty(editor, "autoscrolls", Boolean.TRUE);
  125.26 +            // This is a workaround as these should not override what synth has
  125.27 +            // set them to
  125.28 +            if (!(this instanceof sun.swing.plaf.synth.SynthUI)){
  125.29 +                // common case is background painted... this can
  125.30 +                // easily be changed by subclasses or from outside
  125.31 +                // of the component.
  125.32 +                LookAndFeel.installProperty(editor, "opaque", Boolean.TRUE);
  125.33 +                LookAndFeel.installProperty(editor, "autoscrolls", Boolean.TRUE);
  125.34 +            }
  125.35  
  125.36              // attach to the model and editor
  125.37              editor.addPropertyChangeListener(updateHandler);
   126.1 --- a/src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java	Tue Apr 28 14:43:44 2009 -0700
   126.2 +++ b/src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java	Wed Apr 29 00:27:46 2009 -0700
   126.3 @@ -2402,15 +2402,25 @@
   126.4          }
   126.5          leadRow = getRowForPath(tree, newPath);
   126.6  
   126.7 -        if(repaint) {
   126.8 -            if(bounds != null)
   126.9 -                tree.repaint(bounds);
  126.10 +        if (repaint) {
  126.11 +            if (bounds != null) {
  126.12 +                tree.repaint(getRepaintPathBounds(bounds));
  126.13 +            }
  126.14              bounds = getPathBounds(tree, newPath);
  126.15 -            if(bounds != null)
  126.16 -                tree.repaint(bounds);
  126.17 +            if (bounds != null) {
  126.18 +                tree.repaint(getRepaintPathBounds(bounds));
  126.19 +            }
  126.20          }
  126.21      }
  126.22  
  126.23 +    private Rectangle getRepaintPathBounds(Rectangle bounds) {
  126.24 +        if (UIManager.getBoolean("Tree.repaintWholeRow")) {
  126.25 +           bounds.x = 0;
  126.26 +           bounds.width = tree.getWidth();
  126.27 +        }
  126.28 +        return bounds;
  126.29 +    }
  126.30 +
  126.31      private TreePath getLeadSelectionPath() {
  126.32          return tree.getLeadSelectionPath();
  126.33      }
  126.34 @@ -3643,14 +3653,6 @@
  126.35              focusGained(e);
  126.36          }
  126.37  
  126.38 -        private Rectangle getRepaintPathBounds(Rectangle bounds) {
  126.39 -            if(UIManager.getBoolean("Tree.repaintWholeRow")) {
  126.40 -               bounds.x = 0;
  126.41 -               bounds.width = tree.getWidth();
  126.42 -            }
  126.43 -            return bounds;
  126.44 -        }
  126.45 -
  126.46          //
  126.47          // CellEditorListener
  126.48          //
   127.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   127.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/AbstractRegionPainter.java	Wed Apr 29 00:27:46 2009 -0700
   127.3 @@ -0,0 +1,735 @@
   127.4 +/*
   127.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
   127.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   127.7 + *
   127.8 + * This code is free software; you can redistribute it and/or modify it
   127.9 + * under the terms of the GNU General Public License version 2 only, as
  127.10 + * published by the Free Software Foundation.  Sun designates this
  127.11 + * particular file as subject to the "Classpath" exception as provided
  127.12 + * by Sun in the LICENSE file that accompanied this code.
  127.13 + *
  127.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  127.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  127.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  127.17 + * version 2 for more details (a copy is included in the LICENSE file that
  127.18 + * accompanied this code).
  127.19 + *
  127.20 + * You should have received a copy of the GNU General Public License version
  127.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  127.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  127.23 + *
  127.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  127.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  127.26 + * have any questions.
  127.27 + */
  127.28 +package javax.swing.plaf.nimbus;
  127.29 +
  127.30 +import java.awt.*;
  127.31 +import java.awt.image.*;
  127.32 +import java.lang.reflect.Method;
  127.33 +import javax.swing.*;
  127.34 +import javax.swing.plaf.UIResource;
  127.35 +import javax.swing.Painter;
  127.36 +import java.awt.print.PrinterGraphics;
  127.37 +import static javax.swing.plaf.nimbus.NimbusLookAndFeel.deriveARGB;
  127.38 +
  127.39 +/**
  127.40 + * Convenient base class for defining Painter instances for rendering a
  127.41 + * region or component in Nimbus.
  127.42 + *
  127.43 + * @author Jasper Potts
  127.44 + * @author Richard Bair
  127.45 + */
  127.46 +public abstract class AbstractRegionPainter implements Painter<JComponent> {
  127.47 +    /**
  127.48 +     * PaintContext, which holds a lot of the state needed for cache hinting and x/y value decoding
  127.49 +     * The data contained within the context is typically only computed once and reused over
  127.50 +     * multiple paint calls, whereas the other values (w, h, f, leftWidth, etc) are recomputed
  127.51 +     * for each call to paint.
  127.52 +     *
  127.53 +     * This field is retrieved from subclasses on each paint operation. It is up
  127.54 +     * to the subclass to compute and cache the PaintContext over multiple calls.
  127.55 +     */
  127.56 +    private PaintContext ctx;
  127.57 +    /**
  127.58 +     * The scaling factor. Recomputed on each call to paint.
  127.59 +     */
  127.60 +    private float f;
  127.61 +    /*
  127.62 +      Various metrics used for decoding x/y values based on the canvas size
  127.63 +      and stretching insets.
  127.64 +
  127.65 +      On each call to paint, we first ask the subclass for the PaintContext.
  127.66 +      From the context we get the canvas size and stretching insets, and whether
  127.67 +      the algorithm should be "inverted", meaning the center section remains
  127.68 +      a fixed size and the other sections scale.
  127.69 +
  127.70 +      We then use these values to compute a series of metrics (listed below)
  127.71 +      which are used to decode points in a specific axis (x or y).
  127.72 +
  127.73 +      The leftWidth represents the distance from the left edge of the region
  127.74 +      to the first stretching inset, after accounting for any scaling factor
  127.75 +      (such as DPI scaling). The centerWidth is the distance between the leftWidth
  127.76 +      and the rightWidth. The rightWidth is the distance from the right edge,
  127.77 +      to the right inset (after scaling has been applied).
  127.78 +
  127.79 +      The same logic goes for topHeight, centerHeight, and bottomHeight.
  127.80 +
  127.81 +      The leftScale represents the proportion of the width taken by the left section.
  127.82 +      The same logic is applied to the other scales.
  127.83 +
  127.84 +      The various widths/heights are used to decode control points. The
  127.85 +      various scales are used to decode bezier handles (or anchors).
  127.86 +    */
  127.87 +    /**
  127.88 +     * The width of the left section. Recomputed on each call to paint.
  127.89 +     */
  127.90 +    private float leftWidth;
  127.91 +    /**
  127.92 +     * The height of the top section. Recomputed on each call to paint.
  127.93 +     */
  127.94 +    private float topHeight;
  127.95 +    /**
  127.96 +     * The width of the center section. Recomputed on each call to paint.
  127.97 +     */
  127.98 +    private float centerWidth;
  127.99 +    /**
 127.100 +     * The height of the center section. Recomputed on each call to paint.
 127.101 +     */
 127.102 +    private float centerHeight;
 127.103 +    /**
 127.104 +     * The width of the right section. Recomputed on each call to paint.
 127.105 +     */
 127.106 +    private float rightWidth;
 127.107 +    /**
 127.108 +     * The height of the bottom section. Recomputed on each call to paint.
 127.109 +     */
 127.110 +    private float bottomHeight;
 127.111 +    /**
 127.112 +     * The scaling factor to use for the left section. Recomputed on each call to paint.
 127.113 +     */
 127.114 +    private float leftScale;
 127.115 +    /**
 127.116 +     * The scaling factor to use for the top section. Recomputed on each call to paint.
 127.117 +     */
 127.118 +    private float topScale;
 127.119 +    /**
 127.120 +     * The scaling factor to use for the center section, in the horizontal
 127.121 +     * direction. Recomputed on each call to paint.
 127.122 +     */
 127.123 +    private float centerHScale;
 127.124 +    /**
 127.125 +     * The scaling factor to use for the center section, in the vertical
 127.126 +     * direction. Recomputed on each call to paint.
 127.127 +     */
 127.128 +    private float centerVScale;
 127.129 +    /**
 127.130 +     * The scaling factor to use for the right section. Recomputed on each call to paint.
 127.131 +     */
 127.132 +    private float rightScale;
 127.133 +    /**
 127.134 +     * The scaling factor to use for the bottom section. Recomputed on each call to paint.
 127.135 +     */
 127.136 +    private float bottomScale;
 127.137 +
 127.138 +    /**
 127.139 +     * Create a new AbstractRegionPainter
 127.140 +     */
 127.141 +    protected AbstractRegionPainter() { }
 127.142 +
 127.143 +    /**
 127.144 +     * @inheritDoc
 127.145 +     */
 127.146 +    @Override
 127.147 +    public final void paint(Graphics2D g, JComponent c, int w, int h) {
 127.148 +        //don't render if the width/height are too small
 127.149 +        if (w <= 0 || h <=0) return;
 127.150 +
 127.151 +        Object[] extendedCacheKeys = getExtendedCacheKeys(c);
 127.152 +        ctx = getPaintContext();
 127.153 +        PaintContext.CacheMode cacheMode = ctx == null ? PaintContext.CacheMode.NO_CACHING : ctx.cacheMode;
 127.154 +        if (cacheMode == PaintContext.CacheMode.NO_CACHING ||
 127.155 +                !ImageCache.getInstance().isImageCachable(w, h) ||
 127.156 +                g instanceof PrinterGraphics) {
 127.157 +            // no caching so paint directly
 127.158 +            paint0(g, c, w, h, extendedCacheKeys);
 127.159 +        } else if (cacheMode == PaintContext.CacheMode.FIXED_SIZES) {
 127.160 +            paintWithFixedSizeCaching(g, c, w, h, extendedCacheKeys);
 127.161 +        } else {
 127.162 +            // 9 Square caching
 127.163 +            paintWith9SquareCaching(g, ctx, c, w, h, extendedCacheKeys);
 127.164 +        }
 127.165 +    }
 127.166 +
 127.167 +    /**
 127.168 +     * Get any extra attributes which the painter implementation would like
 127.169 +     * to include in the image cache lookups. This is checked for every call
 127.170 +     * of the paint(g, c, w, h) method.
 127.171 +     *
 127.172 +     * @param c The component on the current paint call
 127.173 +     * @return Array of extra objects to be included in the cache key
 127.174 +     */
 127.175 +    protected Object[] getExtendedCacheKeys(JComponent c) {
 127.176 +        return null;
 127.177 +    }
 127.178 +
 127.179 +    /**
 127.180 +     * <p>Gets the PaintContext for this painting operation. This method is called on every
 127.181 +     * paint, and so should be fast and produce no garbage. The PaintContext contains
 127.182 +     * information such as cache hints. It also contains data necessary for decoding
 127.183 +     * points at runtime, such as the stretching insets, the canvas size at which the
 127.184 +     * encoded points were defined, and whether the stretching insets are inverted.</p>
 127.185 +     *
 127.186 +     * <p> This method allows for subclasses to package the painting of different states
 127.187 +     * with possibly different canvas sizes, etc, into one AbstractRegionPainter implementation.</p>
 127.188 +     *
 127.189 +     * @return a PaintContext associated with this paint operation.
 127.190 +     */
 127.191 +    protected abstract PaintContext getPaintContext();
 127.192 +
 127.193 +    /**
 127.194 +     * <p>Configures the given Graphics2D. Often, rendering hints or compositiing rules are
 127.195 +     * applied to a Graphics2D object prior to painting, which should affect all of the
 127.196 +     * subsequent painting operations. This method provides a convenient hook for configuring
 127.197 +     * the Graphics object prior to rendering, regardless of whether the render operation is
 127.198 +     * performed to an intermediate buffer or directly to the display.</p>
 127.199 +     *
 127.200 +     * @param g The Graphics2D object to configure. Will not be null.
 127.201 +     */
 127.202 +    protected void configureGraphics(Graphics2D g) {
 127.203 +        g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
 127.204 +    }
 127.205 +
 127.206 +    /**
 127.207 +     * Actually performs the painting operation. Subclasses must implement this method.
 127.208 +     * The graphics object passed may represent the actual surface being rendererd to,
 127.209 +     * or it may be an intermediate buffer. It has also been pre-translated. Simply render
 127.210 +     * the component as if it were located at 0, 0 and had a width of <code>width</code>
 127.211 +     * and a height of <code>height</code>. For performance reasons, you may want to read
 127.212 +     * the clip from the Graphics2D object and only render within that space.
 127.213 +     *
 127.214 +     * @param g The Graphics2D surface to paint to
 127.215 +     * @param c The JComponent related to the drawing event. For example, if the
 127.216 +     *          region being rendered is Button, then <code>c</code> will be a
 127.217 +     *          JButton. If the region being drawn is ScrollBarSlider, then the
 127.218 +     *          component will be JScrollBar. This value may be null.
 127.219 +     * @param width The width of the region to paint. Note that in the case of
 127.220 +     *              painting the foreground, this value may differ from c.getWidth().
 127.221 +     * @param height The height of the region to paint. Note that in the case of
 127.222 +     *               painting the foreground, this value may differ from c.getHeight().
 127.223 +     * @param extendedCacheKeys The result of the call to getExtendedCacheKeys()
 127.224 +     */
 127.225 +    protected abstract void doPaint(Graphics2D g, JComponent c, int width,
 127.226 +                                    int height, Object[] extendedCacheKeys);
 127.227 +
 127.228 +    /**
 127.229 +     * Decodes and returns a float value representing the actual pixel location for
 127.230 +     * the given encoded X value.
 127.231 +     *
 127.232 +     * @param x an encoded x value (0...1, or 1...2, or 2...3)
 127.233 +     * @return the decoded x value
 127.234 +     */
 127.235 +    protected final float decodeX(float x) {
 127.236 +        if (ctx.canvasSize == null) return x;
 127.237 +
 127.238 +        if (x >= 0 && x <= 1) {
 127.239 +            return x * leftWidth;
 127.240 +        } else if (x > 1 && x < 2) {
 127.241 +            return ((x-1) * centerWidth) + leftWidth;
 127.242 +        } else if (x >= 2 && x <= 3) {
 127.243 +            return ((x-2) * rightWidth) + leftWidth + centerWidth;
 127.244 +        } else {
 127.245 +            throw new AssertionError("Invalid x");
 127.246 +        }
 127.247 +    }
 127.248 +
 127.249 +    /**
 127.250 +     * Decodes and returns a float value representing the actual pixel location for
 127.251 +     * the given encoded y value.
 127.252 +     *
 127.253 +     * @param y an encoded y value (0...1, or 1...2, or 2...3)
 127.254 +     * @return the decoded y value
 127.255 +     */
 127.256 +    protected final float decodeY(float y) {
 127.257 +        if (ctx.canvasSize == null) return y;
 127.258 +
 127.259 +        if (y >= 0 && y <= 1) {
 127.260 +            return y * topHeight;
 127.261 +        } else if (y > 1 && y < 2) {
 127.262 +            return ((y-1) * centerHeight) + topHeight;
 127.263 +        } else if (y >= 2 && y <= 3) {
 127.264 +            return ((y-2) * bottomHeight) + topHeight + centerHeight;
 127.265 +        } else {
 127.266 +            throw new AssertionError("Invalid y");
 127.267 +        }
 127.268 +    }
 127.269 +
 127.270 +    /**
 127.271 +     * Decodes and returns a float value representing the actual pixel location for
 127.272 +     * the anchor point given the encoded X value of the control point, and the offset
 127.273 +     * distance to the anchor from that control point.
 127.274 +     *
 127.275 +     * @param x an encoded x value of the bezier control point (0...1, or 1...2, or 2...3)
 127.276 +     * @param dx the offset distance to the anchor from the control point x
 127.277 +     * @return the decoded x location of the control point
 127.278 +     */
 127.279 +    protected final float decodeAnchorX(float x, float dx) {
 127.280 +        if (ctx.canvasSize == null) return x + dx;
 127.281 +
 127.282 +        if (x >= 0 && x <= 1) {
 127.283 +            return decodeX(x) + (dx * leftScale);
 127.284 +        } else if (x > 1 && x < 2) {
 127.285 +            return decodeX(x) + (dx * centerHScale);
 127.286 +        } else if (x >= 2 && x <= 3) {
 127.287 +            return decodeX(x) + (dx * rightScale);
 127.288 +        } else {
 127.289 +            throw new AssertionError("Invalid x");
 127.290 +        }
 127.291 +    }
 127.292 +
 127.293 +    /**
 127.294 +     * Decodes and returns a float value representing the actual pixel location for
 127.295 +     * the anchor point given the encoded Y value of the control point, and the offset
 127.296 +     * distance to the anchor from that control point.
 127.297 +     *
 127.298 +     * @param y an encoded y value of the bezier control point (0...1, or 1...2, or 2...3)
 127.299 +     * @param dy the offset distance to the anchor from the control point y
 127.300 +     * @return the decoded y position of the control point
 127.301 +     */
 127.302 +    protected final float decodeAnchorY(float y, float dy) {
 127.303 +        if (ctx.canvasSize == null) return y + dy;
 127.304 +
 127.305 +        if (y >= 0 && y <= 1) {
 127.306 +            return decodeY(y) + (dy * topScale);
 127.307 +        } else if (y > 1 && y < 2) {
 127.308 +            return decodeY(y) + (dy * centerVScale);
 127.309 +        } else if (y >= 2 && y <= 3) {
 127.310 +            return decodeY(y) + (dy * bottomScale);
 127.311 +        } else {
 127.312 +            throw new AssertionError("Invalid y");
 127.313 +        }
 127.314 +    }
 127.315 +
 127.316 +    /**
 127.317 +     * Decodes and returns a color, which is derived from a base color in UI
 127.318 +     * defaults.
 127.319 +     *
 127.320 +     * @param key     A key corrosponding to the value in the UI Defaults table
 127.321 +     *                of UIManager where the base color is defined
 127.322 +     * @param hOffset The hue offset used for derivation.
 127.323 +     * @param sOffset The saturation offset used for derivation.
 127.324 +     * @param bOffset The brightness offset used for derivation.
 127.325 +     * @param aOffset The alpha offset used for derivation. Between 0...255
 127.326 +     * @return The derived color, whos color value will change if the parent
 127.327 +     *         uiDefault color changes.
 127.328 +     */
 127.329 +    protected final Color decodeColor(String key, float hOffset, float sOffset,
 127.330 +                                      float bOffset, int aOffset) {
 127.331 +        if (UIManager.getLookAndFeel() instanceof NimbusLookAndFeel){
 127.332 +            NimbusLookAndFeel laf = (NimbusLookAndFeel) UIManager.getLookAndFeel();
 127.333 +            return laf.getDerivedColor(key, hOffset, sOffset, bOffset, aOffset, true);
 127.334 +        } else {
 127.335 +            // can not give a right answer as painter sould not be used outside
 127.336 +            // of nimbus laf but do the best we can
 127.337 +            return Color.getHSBColor(hOffset,sOffset,bOffset);
 127.338 +        }
 127.339 +    }
 127.340 +
 127.341 +    /**
 127.342 +     * Decodes and returns a color, which is derived from a offset between two
 127.343 +     * other colors.
 127.344 +     *
 127.345 +     * @param color1   The first color
 127.346 +     * @param color2   The second color
 127.347 +     * @param midPoint The offset between color 1 and color 2, a value of 0.0 is
 127.348 +     *                 color 1 and 1.0 is color 2;
 127.349 +     * @return The derived color
 127.350 +     */
 127.351 +    protected final Color decodeColor(Color color1, Color color2,
 127.352 +                                      float midPoint) {
 127.353 +        return new Color(deriveARGB(color1, color2, midPoint));
 127.354 +    }
 127.355 +
 127.356 +    /**
 127.357 +     * Given parameters for creating a LinearGradientPaint, this method will
 127.358 +     * create and return a linear gradient paint. One primary purpose for this
 127.359 +     * method is to avoid creating a LinearGradientPaint where the start and
 127.360 +     * end points are equal. In such a case, the end y point is slightly
 127.361 +     * increased to avoid the overlap.
 127.362 +     *
 127.363 +     * @param x1
 127.364 +     * @param y1
 127.365 +     * @param x2
 127.366 +     * @param y2
 127.367 +     * @param midpoints
 127.368 +     * @param colors
 127.369 +     * @return a valid LinearGradientPaint. This method never returns null.
 127.370 +     */
 127.371 +    protected final LinearGradientPaint decodeGradient(float x1, float y1, float x2, float y2, float[] midpoints, Color[] colors) {
 127.372 +        if (x1 == x2 && y1 == y2) {
 127.373 +            y2 += .00001f;
 127.374 +        }
 127.375 +        return new LinearGradientPaint(x1, y1, x2, y2, midpoints, colors);
 127.376 +    }
 127.377 +
 127.378 +    /**
 127.379 +     * Given parameters for creating a RadialGradientPaint, this method will
 127.380 +     * create and return a radial gradient paint. One primary purpose for this
 127.381 +     * method is to avoid creating a RadialGradientPaint where the radius
 127.382 +     * is non-positive. In such a case, the radius is just slightly
 127.383 +     * increased to avoid 0.
 127.384 +     *
 127.385 +     * @param x
 127.386 +     * @param y
 127.387 +     * @param r
 127.388 +     * @param midpoints
 127.389 +     * @param colors
 127.390 +     * @return a valid RadialGradientPaint. This method never returns null.
 127.391 +     */
 127.392 +    protected final RadialGradientPaint decodeRadialGradient(float x, float y, float r, float[] midpoints, Color[] colors) {
 127.393 +        if (r == 0f) {
 127.394 +            r = .00001f;
 127.395 +        }
 127.396 +        return new RadialGradientPaint(x, y, r, midpoints, colors);
 127.397 +    }
 127.398 +
 127.399 +    /**
 127.400 +     * Get a color property from the given JComponent. First checks for a
 127.401 +     * <code>getXXX()</code> method and if that fails checks for a client
 127.402 +     * property with key <code>property</code>. If that still fails to return
 127.403 +     * a Color then <code>defaultColor</code> is returned.
 127.404 +     *
 127.405 +     * @param c The component to get the color property from
 127.406 +     * @param property The name of a bean style property or client property
 127.407 +     * @param defaultColor The color to return if no color was obtained from
 127.408 +     *        the component.
 127.409 +     * @return The color that was obtained from the component or defaultColor
 127.410 +     */
 127.411 +    protected final Color getComponentColor(JComponent c, String property,
 127.412 +                                            Color defaultColor,
 127.413 +                                            float saturationOffset,
 127.414 +                                            float brightnessOffset,
 127.415 +                                            int alphaOffset) {
 127.416 +        Color color = null;
 127.417 +        if (c != null) {
 127.418 +            // handle some special cases for performance
 127.419 +            if ("background".equals(property)) {
 127.420 +                color = c.getBackground();
 127.421 +            } else if ("foreground".equals(property)) {
 127.422 +                color = c.getForeground();
 127.423 +            } else if (c instanceof JList && "selectionForeground".equals(property)) {
 127.424 +                color = ((JList) c).getSelectionForeground();
 127.425 +            } else if (c instanceof JList && "selectionBackground".equals(property)) {
 127.426 +                color = ((JList) c).getSelectionBackground();
 127.427 +            } else if (c instanceof JTable && "selectionForeground".equals(property)) {
 127.428 +                color = ((JTable) c).getSelectionForeground();
 127.429 +            } else if (c instanceof JTable && "selectionBackground".equals(property)) {
 127.430 +                color = ((JTable) c).getSelectionBackground();
 127.431 +            } else {
 127.432 +                String s = "get" + Character.toUpperCase(property.charAt(0)) + property.substring(1);
 127.433 +                try {
 127.434 +                    Method method = c.getClass().getMethod(s);
 127.435 +                    color = (Color) method.invoke(c);
 127.436 +                } catch (Exception e) {
 127.437 +                    //don't do anything, it just didn't work, that's all.
 127.438 +                    //This could be a normal occurance if you use a property
 127.439 +                    //name referring to a key in clientProperties instead of
 127.440 +                    //a real property
 127.441 +                }
 127.442 +                if (color == null) {
 127.443 +                    Object value = c.getClientProperty(property);
 127.444 +                    if (value instanceof Color) {
 127.445 +                        color = (Color) value;
 127.446 +                    }
 127.447 +                }
 127.448 +            }
 127.449 +        }
 127.450 +        // we return the defaultColor if the color found is null, or if
 127.451 +        // it is a UIResource. This is done because the color for the
 127.452 +        // ENABLED state is set on the component, but you don't want to use
 127.453 +        // that color for the over state. So we only respect the color
 127.454 +        // specified for the property if it was set by the user, as opposed
 127.455 +        // to set by us.
 127.456 +        if (color == null || color instanceof UIResource) {
 127.457 +            return defaultColor;
 127.458 +        } else if (saturationOffset != 0 || brightnessOffset != 0 || alphaOffset != 0) {
 127.459 +            float[] tmp = Color.RGBtoHSB(color.getRed(), color.getGreen(), color.getBlue(), null);
 127.460 +            tmp[1] = clamp(tmp[1] + saturationOffset);
 127.461 +            tmp[2] = clamp(tmp[2] + brightnessOffset);
 127.462 +            int alpha = clamp(color.getAlpha() + alphaOffset);
 127.463 +            return new Color((Color.HSBtoRGB(tmp[0], tmp[1], tmp[2]) & 0xFFFFFF) | (alpha <<24));
 127.464 +        } else {
 127.465 +            return color;
 127.466 +        }
 127.467 +    }
 127.468 +
 127.469 +    /**
 127.470 +     * A class encapsulating state useful when painting. Generally, instances of this
 127.471 +     * class are created once, and reused for each paint request without modification.
 127.472 +     * This class contains values useful when hinting the cache engine, and when decoding
 127.473 +     * control points and bezier curve anchors.
 127.474 +     */
 127.475 +    protected static class PaintContext {
 127.476 +        protected static enum CacheMode {
 127.477 +            NO_CACHING, FIXED_SIZES, NINE_SQUARE_SCALE
 127.478 +        }
 127.479 +
 127.480 +        private static Insets EMPTY_INSETS = new Insets(0, 0, 0, 0);
 127.481 +
 127.482 +        private Insets stretchingInsets;
 127.483 +        private Dimension canvasSize;
 127.484 +        private boolean inverted;
 127.485 +        private CacheMode cacheMode;
 127.486 +        private double maxHorizontalScaleFactor;
 127.487 +        private double maxVerticalScaleFactor;
 127.488 +
 127.489 +        private float a; // insets.left
 127.490 +        private float b; // canvasSize.width - insets.right
 127.491 +        private float c; // insets.top
 127.492 +        private float d; // canvasSize.height - insets.bottom;
 127.493 +        private float aPercent; // only used if inverted == true
 127.494 +        private float bPercent; // only used if inverted == true
 127.495 +        private float cPercent; // only used if inverted == true
 127.496 +        private float dPercent; // only used if inverted == true
 127.497 +
 127.498 +        /**
 127.499 +         * Creates a new PaintContext which does not attempt to cache or scale any cached
 127.500 +         * images.
 127.501 +         *
 127.502 +         * @param insets The stretching insets. May be null. If null, then assumed to be 0, 0, 0, 0.
 127.503 +         * @param canvasSize The size of the canvas used when encoding the various x/y values. May be null.
 127.504 +         *                   If null, then it is assumed that there are no encoded values, and any calls
 127.505 +         *                   to one of the "decode" methods will return the passed in value.
 127.506 +         * @param inverted Whether to "invert" the meaning of the 9-square grid and stretching insets
 127.507 +         */
 127.508 +        public PaintContext(Insets insets, Dimension canvasSize, boolean inverted) {
 127.509 +            this(insets, canvasSize, inverted, null, 1, 1);
 127.510 +        }
 127.511 +
 127.512 +        /**
 127.513 +         * Creates a new PaintContext.
 127.514 +         *
 127.515 +         * @param insets The stretching insets. May be null. If null, then assumed to be 0, 0, 0, 0.
 127.516 +         * @param canvasSize The size of the canvas used when encoding the various x/y values. May be null.
 127.517 +         *                   If null, then it is assumed that there are no encoded values, and any calls
 127.518 +         *                   to one of the "decode" methods will return the passed in value.
 127.519 +         * @param inverted Whether to "invert" the meaning of the 9-square grid and stretching insets
 127.520 +         * @param cacheMode A hint as to which caching mode to use. If null, then set to no caching.
 127.521 +         * @param maxH The maximium scale in the horizontal direction to use before punting and redrawing from scratch.
 127.522 +         *             For example, if maxH is 2, then we will attempt to scale any cached images up to 2x the canvas
 127.523 +         *             width before redrawing from scratch. Reasonable maxH values may improve painting performance.
 127.524 +         *             If set too high, then you may get poor looking graphics at higher zoom levels. Must be >= 1.
 127.525 +         * @param maxV The maximium scale in the vertical direction to use before punting and redrawing from scratch.
 127.526 +         *             For example, if maxV is 2, then we will attempt to scale any cached images up to 2x the canvas
 127.527 +         *             height before redrawing from scratch. Reasonable maxV values may improve painting performance.
 127.528 +         *             If set too high, then you may get poor looking graphics at higher zoom levels. Must be >= 1.
 127.529 +         */
 127.530 +        public PaintContext(Insets insets, Dimension canvasSize, boolean inverted,
 127.531 +                            CacheMode cacheMode, double maxH, double maxV) {
 127.532 +            if (maxH < 1 || maxH < 1) {
 127.533 +                throw new IllegalArgumentException("Both maxH and maxV must be >= 1");
 127.534 +            }
 127.535 +
 127.536 +            this.stretchingInsets = insets == null ? EMPTY_INSETS : insets;
 127.537 +            this.canvasSize = canvasSize;
 127.538 +            this.inverted = inverted;
 127.539 +            this.cacheMode = cacheMode == null ? CacheMode.NO_CACHING : cacheMode;
 127.540 +            this.maxHorizontalScaleFactor = maxH;
 127.541 +            this.maxVerticalScaleFactor = maxV;
 127.542 +
 127.543 +            if (canvasSize != null) {
 127.544 +                a = insets.left;
 127.545 +                b = canvasSize.width - insets.right;
 127.546 +                c = insets.top;
 127.547 +                d = canvasSize.height - insets.bottom;
 127.548 +                this.canvasSize = canvasSize;
 127.549 +                this.inverted = inverted;
 127.550 +                if (inverted) {
 127.551 +                    float available = canvasSize.width - (b - a);
 127.552 +                    aPercent = available > 0f ? a / available : 0f;
 127.553 +                    bPercent = available > 0f ? b / available : 0f;
 127.554 +                    available = canvasSize.height - (d - c);
 127.555 +                    cPercent = available > 0f ? c / available : 0f;
 127.556 +                    dPercent = available > 0f ? d / available : 0f;
 127.557 +                }
 127.558 +            }
 127.559 +        }
 127.560 +    }
 127.561 +
 127.562 +    //---------------------- private methods
 127.563 +
 127.564 +    //initializes the class to prepare it for being able to decode points
 127.565 +    private void prepare(float w, float h) {
 127.566 +        //if no PaintContext has been specified, reset the values and bail
 127.567 +        //also bail if the canvasSize was not set (since decoding will not work)
 127.568 +        if (ctx == null || ctx.canvasSize == null) {
 127.569 +            f = 1f;
 127.570 +            leftWidth = centerWidth = rightWidth = 0f;
 127.571 +            topHeight = centerHeight = bottomHeight = 0f;
 127.572 +            leftScale = centerHScale = rightScale = 0f;
 127.573 +            topScale = centerVScale = bottomScale = 0f;
 127.574 +            return;
 127.575 +        }
 127.576 +
 127.577 +        //calculate the scaling factor, and the sizes for the various 9-square sections
 127.578 +        Number scale = (Number)UIManager.get("scale");
 127.579 +        f = scale == null ? 1f : scale.floatValue();
 127.580 +
 127.581 +        if (ctx.inverted) {
 127.582 +            centerWidth = (ctx.b - ctx.a) * f;
 127.583 +            float availableSpace = w - centerWidth;
 127.584 +            leftWidth = availableSpace * ctx.aPercent;
 127.585 +            rightWidth = availableSpace * ctx.bPercent;
 127.586 +            centerHeight = (ctx.d - ctx.c) * f;
 127.587 +            availableSpace = h - centerHeight;
 127.588 +            topHeight = availableSpace * ctx.cPercent;
 127.589 +            bottomHeight = availableSpace * ctx.dPercent;
 127.590 +        } else {
 127.591 +            leftWidth = ctx.a * f;
 127.592 +            rightWidth = (float)(ctx.canvasSize.getWidth() - ctx.b) * f;
 127.593 +            centerWidth = w - leftWidth - rightWidth;
 127.594 +            topHeight = ctx.c * f;
 127.595 +            bottomHeight = (float)(ctx.canvasSize.getHeight() - ctx.d) * f;
 127.596 +            centerHeight = h - topHeight - bottomHeight;
 127.597 +        }
 127.598 +
 127.599 +        leftScale = ctx.a == 0f ? 0f : leftWidth / ctx.a;
 127.600 +        centerHScale = (ctx.b - ctx.a) == 0f ? 0f : centerWidth / (ctx.b - ctx.a);
 127.601 +        rightScale = (ctx.canvasSize.width - ctx.b) == 0f ? 0f : rightWidth / (ctx.canvasSize.width - ctx.b);
 127.602 +        topScale = ctx.c == 0f ? 0f : topHeight / ctx.c;
 127.603 +        centerVScale = (ctx.d - ctx.c) == 0f ? 0f : centerHeight / (ctx.d - ctx.c);
 127.604 +        bottomScale = (ctx.canvasSize.height - ctx.d) == 0f ? 0f : bottomHeight / (ctx.canvasSize.height - ctx.d);
 127.605 +    }
 127.606 +
 127.607 +    private void paintWith9SquareCaching(Graphics2D g, PaintContext ctx,
 127.608 +                                         JComponent c, int w, int h,
 127.609 +                                         Object[] extendedCacheKeys) {
 127.610 +        // check if we can scale to the requested size
 127.611 +        Dimension canvas = ctx.canvasSize;
 127.612 +        Insets insets = ctx.stretchingInsets;
 127.613 +
 127.614 +        if (w <= (canvas.width * ctx.maxHorizontalScaleFactor) && h <= (canvas.height * ctx.maxVerticalScaleFactor)) {
 127.615 +            // get image at canvas size
 127.616 +            VolatileImage img = getImage(g.getDeviceConfiguration(), c, canvas.width, canvas.height, extendedCacheKeys);
 127.617 +            if (img != null) {
 127.618 +                // calculate dst inserts
 127.619 +                // todo: destination inserts need to take into acount scale factor for high dpi. Note: You can use f for this, I think
 127.620 +                Insets dstInsets;
 127.621 +                if (ctx.inverted){
 127.622 +                    int leftRight = (w-(canvas.width-(insets.left+insets.right)))/2;
 127.623 +                    int topBottom = (h-(canvas.height-(insets.top+insets.bottom)))/2;
 127.624 +                    dstInsets = new Insets(topBottom,leftRight,topBottom,leftRight);
 127.625 +                } else {
 127.626 +                    dstInsets = insets;
 127.627 +                }
 127.628 +                // paint 9 square scaled
 127.629 +                Object oldScaleingHints = g.getRenderingHint(RenderingHints.KEY_INTERPOLATION);
 127.630 +                g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);
 127.631 +                ImageScalingHelper.paint(g, 0, 0, w, h, img, insets, dstInsets,
 127.632 +                        ImageScalingHelper.PaintType.PAINT9_STRETCH, ImageScalingHelper.PAINT_ALL);
 127.633 +                g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
 127.634 +                    oldScaleingHints!=null?oldScaleingHints:RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR);
 127.635 +            } else {
 127.636 +                // render directly
 127.637 +                paint0(g, c, w, h, extendedCacheKeys);
 127.638 +            }
 127.639 +        } else {
 127.640 +            // paint directly
 127.641 +            paint0(g, c, w, h, extendedCacheKeys);
 127.642 +        }
 127.643 +    }
 127.644 +
 127.645 +    private void paintWithFixedSizeCaching(Graphics2D g, JComponent c, int w,
 127.646 +                                           int h, Object[] extendedCacheKeys) {
 127.647 +        VolatileImage img = getImage(g.getDeviceConfiguration(), c, w, h, extendedCacheKeys);
 127.648 +        if (img != null) {
 127.649 +            //render cached image
 127.650 +            g.drawImage(img, 0, 0, null);
 127.651 +        } else {
 127.652 +            // render directly
 127.653 +            paint0(g, c, w, h, extendedCacheKeys);
 127.654 +        }
 127.655 +    }
 127.656 +
 127.657 +    /** Gets the rendered image for this painter at the requested size, either from cache or create a new one */
 127.658 +    private VolatileImage getImage(GraphicsConfiguration config, JComponent c,
 127.659 +                                   int w, int h, Object[] extendedCacheKeys) {
 127.660 +        ImageCache imageCache = ImageCache.getInstance();
 127.661 +        //get the buffer for this component
 127.662 +        VolatileImage buffer = (VolatileImage) imageCache.getImage(config, w, h, this, extendedCacheKeys);
 127.663 +
 127.664 +        int renderCounter = 0; //to avoid any potential, though unlikely, infinite loop
 127.665 +        do {
 127.666 +            //validate the buffer so we can check for surface loss
 127.667 +            int bufferStatus = VolatileImage.IMAGE_INCOMPATIBLE;
 127.668 +            if (buffer != null) {
 127.669 +                bufferStatus = buffer.validate(config);
 127.670 +            }
 127.671 +
 127.672 +            //If the buffer status is incompatible or restored, then we need to re-render to the volatile image
 127.673 +            if (bufferStatus == VolatileImage.IMAGE_INCOMPATIBLE || bufferStatus == VolatileImage.IMAGE_RESTORED) {
 127.674 +                //if the buffer is null (hasn't been created), or isn't the right size, or has lost its contents,
 127.675 +                //then recreate the buffer
 127.676 +                if (buffer == null || buffer.getWidth() != w || buffer.getHeight() != h ||
 127.677 +                        bufferStatus == VolatileImage.IMAGE_INCOMPATIBLE) {
 127.678 +                    //clear any resources related to the old back buffer
 127.679 +                    if (buffer != null) {
 127.680 +                        buffer.flush();
 127.681 +                        buffer = null;
 127.682 +                    }
 127.683 +                    //recreate the buffer
 127.684 +                    buffer = config.createCompatibleVolatileImage(w, h,
 127.685 +                            Transparency.TRANSLUCENT);
 127.686 +                    // put in cache for future
 127.687 +                    imageCache.setImage(buffer, config, w, h, this, extendedCacheKeys);
 127.688 +                }
 127.689 +                //create the graphics context with which to paint to the buffer
 127.690 +                Graphics2D bg = buffer.createGraphics();
 127.691 +                //clear the background before configuring the graphics
 127.692 +                bg.setComposite(AlphaComposite.Clear);
 127.693 +                bg.fillRect(0, 0, w, h);
 127.694 +                bg.setComposite(AlphaComposite.SrcOver);
 127.695 +                configureGraphics(bg);
 127.696 +                // paint the painter into buffer
 127.697 +                paint0(bg, c, w, h, extendedCacheKeys);
 127.698 +                //close buffer graphics
 127.699 +                bg.dispose();
 127.700 +            }
 127.701 +        } while (buffer.contentsLost() && renderCounter++ < 3);
 127.702 +        // check if we failed
 127.703 +        if (renderCounter == 3) return null;
 127.704 +        // return image
 127.705 +        return buffer;
 127.706 +    }
 127.707 +
 127.708 +    //convenience method which creates a temporary graphics object by creating a
 127.709 +    //clone of the passed in one, configuring it, drawing with it, disposing it.
 127.710 +    //These steps have to be taken to ensure that any hints set on the graphics
 127.711 +    //are removed subsequent to painting.
 127.712 +    private void paint0(Graphics2D g, JComponent c, int width, int height,
 127.713 +                        Object[] extendedCacheKeys) {
 127.714 +        prepare(width, height);
 127.715 +        g = (Graphics2D)g.create();
 127.716 +        configureGraphics(g);
 127.717 +        doPaint(g, c, width, height, extendedCacheKeys);
 127.718 +        g.dispose();
 127.719 +    }
 127.720 +
 127.721 +    private float clamp(float value) {
 127.722 +        if (value < 0) {
 127.723 +            value = 0;
 127.724 +        } else if (value > 1) {
 127.725 +            value = 1;
 127.726 +        }
 127.727 +        return value;
 127.728 +    }
 127.729 +
 127.730 +    private int clamp(int value) {
 127.731 +        if (value < 0) {
 127.732 +            value = 0;
 127.733 +        } else if (value > 255) {
 127.734 +            value = 255;
 127.735 +        }
 127.736 +        return value;
 127.737 +    }
 127.738 +}
   128.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   128.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/Defaults.template	Wed Apr 29 00:27:46 2009 -0700
   128.3 @@ -0,0 +1,878 @@
   128.4 +/*
   128.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
   128.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   128.7 + *
   128.8 + * This code is free software; you can redistribute it and/or modify it
   128.9 + * under the terms of the GNU General Public License version 2 only, as
  128.10 + * published by the Free Software Foundation.  Sun designates this
  128.11 + * particular file as subject to the "Classpath" exception as provided
  128.12 + * by Sun in the LICENSE file that accompanied this code.
  128.13 + *
  128.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  128.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  128.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  128.17 + * version 2 for more details (a copy is included in the LICENSE file that
  128.18 + * accompanied this code).
  128.19 + *
  128.20 + * You should have received a copy of the GNU General Public License version
  128.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  128.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  128.23 + *
  128.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  128.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  128.26 + * have any questions.
  128.27 + */
  128.28 +package ${PACKAGE};
  128.29 +
  128.30 +import javax.swing.Painter;
  128.31 +import java.awt.Graphics;
  128.32 +import sun.font.FontManager;
  128.33 +import sun.swing.plaf.synth.DefaultSynthStyle;
  128.34 +import javax.swing.BorderFactory;
  128.35 +import javax.swing.JComponent;
  128.36 +import javax.swing.JInternalFrame;
  128.37 +import javax.swing.UIDefaults;
  128.38 +import javax.swing.UIManager;
  128.39 +import javax.swing.plaf.BorderUIResource;
  128.40 +import javax.swing.plaf.ColorUIResource;
  128.41 +import javax.swing.plaf.DimensionUIResource;
  128.42 +import javax.swing.plaf.FontUIResource;
  128.43 +import javax.swing.plaf.InsetsUIResource;
  128.44 +import javax.swing.plaf.synth.Region;
  128.45 +import javax.swing.plaf.synth.SynthStyle;
  128.46 +import java.awt.Color;
  128.47 +import java.awt.Component;
  128.48 +import java.awt.Dimension;
  128.49 +import java.awt.Font;
  128.50 +import java.awt.Graphics2D;
  128.51 +import java.awt.Insets;
  128.52 +import java.awt.image.BufferedImage;
  128.53 +import static java.awt.image.BufferedImage.*;
  128.54 +import java.beans.PropertyChangeEvent;
  128.55 +import java.beans.PropertyChangeListener;
  128.56 +import java.lang.ref.WeakReference;
  128.57 +import java.lang.reflect.Constructor;
  128.58 +import java.util.ArrayList;
  128.59 +import java.util.HashMap;
  128.60 +import java.util.LinkedList;
  128.61 +import java.util.List;
  128.62 +import java.util.Map;
  128.63 +import java.util.Set;
  128.64 +import java.util.WeakHashMap;
  128.65 +import javax.swing.border.Border;
  128.66 +import javax.swing.plaf.UIResource;
  128.67 +
  128.68 +/**
  128.69 + * This class contains all the implementation details related to
  128.70 + * ${LAF_NAME}. It contains all the code for initializing the UIDefaults table,
  128.71 + * as well as for selecting
  128.72 + * a SynthStyle based on a JComponent/Region pair.
  128.73 + *
  128.74 + * @author Richard Bair
  128.75 + */
  128.76 +final class ${LAF_NAME}Defaults {
  128.77 +    /**
  128.78 +     * The map of SynthStyles. This map is keyed by Region. Each Region maps
  128.79 +     * to a List of LazyStyles. Each LazyStyle has a reference to the prefix
  128.80 +     * that was registered with it. This reference can then be inspected to see
  128.81 +     * if it is the proper lazy style.
  128.82 +     * <p/>
  128.83 +     * There can be more than one LazyStyle for a single Region if there is more
  128.84 +     * than one prefix defined for a given region. For example, both Button and
  128.85 +     * "MyButton" might be prefixes assigned to the Region.Button region.
  128.86 +     */
  128.87 +    private Map<Region, List<LazyStyle>> m;
  128.88 +    /**
  128.89 +     * A map of regions which have been registered.
  128.90 +     * This mapping is maintained so that the Region can be found based on
  128.91 +     * prefix in a very fast manner. This is used in the "matches" method of
  128.92 +     * LazyStyle.
  128.93 +     */
  128.94 +    private Map<String, Region> registeredRegions =
  128.95 +            new HashMap<String, Region>();
  128.96 +    /**
  128.97 +     * Our fallback style to avoid NPEs if the proper style cannot be found in
  128.98 +     * this class. Not sure if relying on DefaultSynthStyle is the best choice.
  128.99 +     */
 128.100 +    private DefaultSynthStyle defaultStyle;
 128.101 +    /**
 128.102 +     * The default font that will be used. I store this value so that it can be
 128.103 +     * set in the UIDefaults when requested.
 128.104 +     */
 128.105 +    private FontUIResource defaultFont;
 128.106 +
 128.107 +    /**
 128.108 +     * Map of lists of derived colors keyed by the DerivedColorKeys
 128.109 +     */
 128.110 +    private Map<DerivedColorKey, DerivedColor> derivedColorsMap =
 128.111 +            new HashMap<DerivedColorKey, DerivedColor>();
 128.112 +
 128.113 +    /** Tempory key used for fetching from the derivedColorsMap */
 128.114 +    private final DerivedColorKey tmpDCKey = new DerivedColorKey();
 128.115 +
 128.116 +    /** Listener for changes to user defaults table */
 128.117 +    private DefaultsListener defaultsListener = new DefaultsListener();
 128.118 +
 128.119 +    /** Called by UIManager when this look and feel is installed. */
 128.120 +    void initialize() {
 128.121 +        // add listener for derived colors
 128.122 +        UIManager.addPropertyChangeListener(defaultsListener);
 128.123 +        UIManager.getDefaults().addPropertyChangeListener(defaultsListener);
 128.124 +    }
 128.125 +
 128.126 +    /** Called by UIManager when this look and feel is uninstalled. */
 128.127 +    void uninitialize() {
 128.128 +        // remove listener for derived colors
 128.129 +        UIManager.getDefaults().removePropertyChangeListener(defaultsListener);
 128.130 +        UIManager.removePropertyChangeListener(defaultsListener);
 128.131 +    }
 128.132 +
 128.133 +    /**
 128.134 +     * Create a new ${LAF_NAME}Defaults. This constructor is only called from
 128.135 +     * within ${LAF_NAME}LookAndFeel.
 128.136 +     */
 128.137 +    ${LAF_NAME}Defaults() {
 128.138 +        m = new HashMap<Region, List<LazyStyle>>();
 128.139 +
 128.140 +        //Create the default font and default style. Also register all of the
 128.141 +        //regions and their states that this class will use for later lookup.
 128.142 +        //Additional regions can be registered later by 3rd party components.
 128.143 +        //These are simply the default registrations.
 128.144 +        defaultFont = FontManager.getFontConfigFUIR("sans", Font.PLAIN, 12);
 128.145 +        defaultStyle = new DefaultSynthStyle();
 128.146 +        defaultStyle.setFont(defaultFont);
 128.147 +
 128.148 +        //initialize the map of styles
 128.149 +${STYLE_INIT}
 128.150 +    }
 128.151 +
 128.152 +    //--------------- Methods called by ${LAF_NAME}LookAndFeel
 128.153 +
 128.154 +    /**
 128.155 +     * Called from ${LAF_NAME}LookAndFeel to initialize the UIDefaults.
 128.156 +     *
 128.157 +     * @param d UIDefaults table to initialize. This will never be null.
 128.158 +     *          If listeners are attached to <code>d</code>, then you will
 128.159 +     *          only receive notification of LookAndFeel level defaults, not
 128.160 +     *          all defaults on the UIManager.
 128.161 +     */
 128.162 +    void initializeDefaults(UIDefaults d) {
 128.163 +${UI_DEFAULT_INIT}
 128.164 +    }
 128.165 +
 128.166 +    /**
 128.167 +     * <p>Registers the given region and prefix. The prefix, if it contains
 128.168 +     * quoted sections, refers to certain named components. If there are not
 128.169 +     * quoted sections, then the prefix refers to a generic component type.</p>
 128.170 +     *
 128.171 +     * <p>If the given region/prefix combo has already been registered, then
 128.172 +     * it will not be registered twice. The second registration attempt will
 128.173 +     * fail silently.</p>
 128.174 +     *
 128.175 +     * @param region The Synth Region that is being registered. Such as Button,
 128.176 +     *        or ScrollBarThumb.
 128.177 +     * @param prefix The UIDefault prefix. For example, could be ComboBox, or if
 128.178 +     *        a named components, "MyComboBox", or even something like
 128.179 +     *        ToolBar:"MyComboBox":"ComboBox.arrowButton"
 128.180 +     */
 128.181 +    void register(Region region, String prefix) {
 128.182 +        //validate the method arguments
 128.183 +        if (region == null || prefix == null) {
 128.184 +            throw new IllegalArgumentException(
 128.185 +                    "Neither Region nor Prefix may be null");
 128.186 +        }
 128.187 +
 128.188 +        //Add a LazyStyle for this region/prefix to m.
 128.189 +        List<LazyStyle> styles = m.get(region);
 128.190 +        if (styles == null) {
 128.191 +            styles = new LinkedList<LazyStyle>();
 128.192 +            styles.add(new LazyStyle(prefix));
 128.193 +            m.put(region, styles);
 128.194 +        } else {
 128.195 +            //iterate over all the current styles and see if this prefix has
 128.196 +            //already been registered. If not, then register it.
 128.197 +            for (LazyStyle s : styles) {
 128.198 +                if (prefix.equals(s.prefix)) {
 128.199 +                    return;
 128.200 +                }
 128.201 +            }
 128.202 +            styles.add(new LazyStyle(prefix));
 128.203 +        }
 128.204 +
 128.205 +        //add this region to the map of registered regions
 128.206 +        registeredRegions.put(region.getName(), region);
 128.207 +    }
 128.208 +
 128.209 +    /**
 128.210 +     * <p>Locate the style associated with the given region, and component.
 128.211 +     * This is called from ${LAF_NAME}LookAndFeel in the SynthStyleFactory
 128.212 +     * implementation.</p>
 128.213 +     *
 128.214 +     * <p>Lookup occurs as follows:<br/>
 128.215 +     * Check the map of styles <code>m</code>. If the map contains no styles at
 128.216 +     * all, then simply return the defaultStyle. If the map contains styles,
 128.217 +     * then iterate over all of the styles for the Region <code>r</code> looking
 128.218 +     * for the best match, based on prefix. If a match was made, then return
 128.219 +     * that SynthStyle. Otherwise, return the defaultStyle.</p>
 128.220 +     *
 128.221 +     * @param comp The component associated with this region. For example, if
 128.222 +     *        the Region is Region.Button then the component will be a JButton.
 128.223 +     *        If the Region is a subregion, such as ScrollBarThumb, then the
 128.224 +     *        associated component will be the component that subregion belongs
 128.225 +     *        to, such as JScrollBar. The JComponent may be named. It may not be
 128.226 +     *        null.
 128.227 +     * @param r The region we are looking for a style for. May not be null.
 128.228 +     */
 128.229 +    SynthStyle getStyle(JComponent comp, Region r) {
 128.230 +        //validate method arguments
 128.231 +        if (comp == null || r == null) {
 128.232 +            throw new IllegalArgumentException(
 128.233 +                    "Neither comp nor r may be null");
 128.234 +        }
 128.235 +
 128.236 +        //if there are no lazy styles registered for the region r, then return
 128.237 +        //the default style
 128.238 +        List<LazyStyle> styles = m.get(r);
 128.239 +        if (styles == null || styles.size() == 0) {
 128.240 +            return defaultStyle;
 128.241 +        }
 128.242 +
 128.243 +        //Look for the best SynthStyle for this component/region pair.
 128.244 +        LazyStyle foundStyle = null;
 128.245 +        for (LazyStyle s : styles) {
 128.246 +            if (s.matches(comp)) {
 128.247 +                //replace the foundStyle if foundStyle is null, or
 128.248 +                //if the new style "s" is more specific (ie, its path was
 128.249 +                //longer), or if the foundStyle was "simple" and the new style
 128.250 +                //was not (ie: the foundStyle was for something like Button and
 128.251 +                //the new style was for something like "MyButton", hence, being
 128.252 +                //more specific.) In all cases, favor the most specific style
 128.253 +                //found.
 128.254 +                if (foundStyle == null ||
 128.255 +                   (foundStyle.parts.length < s.parts.length) ||
 128.256 +                   (foundStyle.parts.length == s.parts.length 
 128.257 +                    && foundStyle.simple && !s.simple)) {
 128.258 +                    foundStyle = s;
 128.259 +                }
 128.260 +            }
 128.261 +        }
 128.262 +
 128.263 +        //return the style, if found, or the default style if not found
 128.264 +        return foundStyle == null ? defaultStyle : foundStyle.getStyle(comp);
 128.265 +    }
 128.266 +
 128.267 +    /*
 128.268 +        Various public helper classes.
 128.269 +        These may be used to register 3rd party values into UIDefaults
 128.270 +    */
 128.271 +
 128.272 +    /**
 128.273 +     * <p>Derives its font value based on a parent font and a set of offsets and
 128.274 +     * attributes. This class is an ActiveValue, meaning that it will recompute
 128.275 +     * its value each time it is requested from UIDefaults. It is therefore
 128.276 +     * recommended to read this value once and cache it in the UI delegate class
 128.277 +     * until asked to reinitialize.</p>
 128.278 +     *
 128.279 +     * <p>To use this class, create an instance with the key of the font in the
 128.280 +     * UI defaults table from which to derive this font, along with a size
 128.281 +     * offset (if any), and whether it is to be bold, italic, or left in its
 128.282 +     * default form.</p>
 128.283 +     */
 128.284 +    public static final class DerivedFont implements UIDefaults.ActiveValue {
 128.285 +        private float sizeOffset;
 128.286 +        private Boolean bold;
 128.287 +        private Boolean italic;
 128.288 +        private String parentKey;
 128.289 +
 128.290 +        /**
 128.291 +         * Create a new DerivedFont.
 128.292 +         *
 128.293 +         * @param key The UIDefault key associated with this derived font's
 128.294 +         *            parent or source. If this key leads to a null value, or a
 128.295 +         *            value that is not a font, then null will be returned as
 128.296 +         *            the derived font. The key must not be null.
 128.297 +         * @param sizeOffset The size offset, as a percentage, to use. For
 128.298 +         *                   example, if the source font was a 12pt font and the
 128.299 +         *                   sizeOffset were specified as .9, then the new font
 128.300 +         *                   will be 90% of what the source font was, or, 10.8
 128.301 +         *                   pts which is rounded to 11pts. This fractional
 128.302 +         *                   based offset allows for proper font scaling in high
 128.303 +         *                   DPI or large system font scenarios.
 128.304 +         * @param bold Whether the new font should be bold. If null, then this
 128.305 +         *             new font will inherit the bold setting of the source
 128.306 +         *             font.
 128.307 +         * @param italic Whether the new font should be italicized. If null,
 128.308 +         *               then this new font will inherit the italic setting of
 128.309 +         *               the source font.
 128.310 +         */
 128.311 +        public DerivedFont(String key, float sizeOffset, Boolean bold,
 128.312 +                           Boolean italic) {
 128.313 +            //validate the constructor arguments
 128.314 +            if (key == null) {
 128.315 +                throw new IllegalArgumentException("You must specify a key");
 128.316 +            }
 128.317 +
 128.318 +            //set the values
 128.319 +            this.parentKey = key;
 128.320 +            this.sizeOffset = sizeOffset;
 128.321 +            this.bold = bold;
 128.322 +            this.italic = italic;
 128.323 +        }
 128.324 +
 128.325 +        /**
 128.326 +         * @inheritDoc
 128.327 +         */
 128.328 +        @Override
 128.329 +        public Object createValue(UIDefaults defaults) {
 128.330 +            Font f = defaults.getFont(parentKey);
 128.331 +            if (f != null) {
 128.332 +                // always round size for now so we have exact int font size
 128.333 +                // (or we may have lame looking fonts)
 128.334 +                float size = Math.round(f.getSize2D() * sizeOffset);
 128.335 +                int style = f.getStyle();
 128.336 +                if (bold != null) {
 128.337 +                    if (bold.booleanValue()) {
 128.338 +                        style = style | Font.BOLD;
 128.339 +                    } else {
 128.340 +                        style = style & ~Font.BOLD;
 128.341 +                    }
 128.342 +                }
 128.343 +                if (italic != null) {
 128.344 +                    if (italic.booleanValue()) {
 128.345 +                        style = style | Font.ITALIC;
 128.346 +                    } else {
 128.347 +                        style = style & ~Font.ITALIC;
 128.348 +                    }
 128.349 +                }
 128.350 +                return f.deriveFont(style, size);
 128.351 +            } else {
 128.352 +                return null;
 128.353 +            }
 128.354 +        }
 128.355 +    }
 128.356 +
 128.357 +
 128.358 +    /**
 128.359 +     * This class is private because it relies on the constructor of the
 128.360 +     * auto-generated AbstractRegionPainter subclasses. Hence, it is not
 128.361 +     * generally useful, and is private.
 128.362 +     * <p/>
 128.363 +     * LazyPainter is a LazyValue class. It will create the
 128.364 +     * AbstractRegionPainter lazily, when asked. It uses reflection to load the
 128.365 +     * proper class and invoke its constructor.
 128.366 +     */
 128.367 +    private static final class LazyPainter implements UIDefaults.LazyValue {
 128.368 +        private int which;
 128.369 +        private AbstractRegionPainter.PaintContext ctx;
 128.370 +        private String className;
 128.371 +
 128.372 +        LazyPainter(String className, int which, Insets insets,
 128.373 +                    Dimension canvasSize, boolean inverted) {
 128.374 +            if (className == null) {
 128.375 +                throw new IllegalArgumentException(
 128.376 +                        "The className must be specified");
 128.377 +            }
 128.378 +
 128.379 +            this.className = className;
 128.380 +            this.which = which;
 128.381 +            this.ctx = new AbstractRegionPainter.PaintContext(
 128.382 +                insets, canvasSize, inverted);
 128.383 +        }
 128.384 +
 128.385 +        LazyPainter(String className, int which, Insets insets,
 128.386 +                    Dimension canvasSize, boolean inverted,
 128.387 +                    AbstractRegionPainter.PaintContext.CacheMode cacheMode,
 128.388 +                    double maxH, double maxV) {
 128.389 +            if (className == null) {
 128.390 +                throw new IllegalArgumentException(
 128.391 +                        "The className must be specified");
 128.392 +            }
 128.393 +
 128.394 +            this.className = className;
 128.395 +            this.which = which;
 128.396 +            this.ctx = new AbstractRegionPainter.PaintContext(
 128.397 +                    insets, canvasSize, inverted, cacheMode, maxH, maxV);
 128.398 +        }
 128.399 +
 128.400 +        @Override
 128.401 +        public Object createValue(UIDefaults table) {
 128.402 +            try {
 128.403 +                Class c;
 128.404 +                Object cl;
 128.405 +                // See if we should use a separate ClassLoader
 128.406 +                if (table == null || !((cl = table.get("ClassLoader"))
 128.407 +                                       instanceof ClassLoader)) {
 128.408 +                    cl = Thread.currentThread().
 128.409 +                                getContextClassLoader();
 128.410 +                    if (cl == null) {
 128.411 +                        // Fallback to the system class loader.
 128.412 +                        cl = ClassLoader.getSystemClassLoader();
 128.413 +                    }
 128.414 +                }
 128.415 +
 128.416 +                c = Class.forName(className, true, (ClassLoader)cl);
 128.417 +                Constructor constructor = c.getConstructor(
 128.418 +                        AbstractRegionPainter.PaintContext.class, int.class);
 128.419 +                if (constructor == null) {
 128.420 +                    throw new NullPointerException(
 128.421 +                            "Failed to find the constructor for the class: " +
 128.422 +                            className);
 128.423 +                }
 128.424 +                return constructor.newInstance(ctx, which);
 128.425 +            } catch (Exception e) {
 128.426 +                e.printStackTrace();
 128.427 +                return null;
 128.428 +            }
 128.429 +        }
 128.430 +    }
 128.431 +
 128.432 +    /**
 128.433 +     * A class which creates the NimbusStyle associated with it lazily, but also
 128.434 +     * manages a lot more information about the style. It is less of a LazyValue
 128.435 +     * type of class, and more of an Entry or Item type of class, as it
 128.436 +     * represents an entry in the list of LazyStyles in the map m.
 128.437 +     *
 128.438 +     * The primary responsibilities of this class include:
 128.439 +     * <ul>
 128.440 +     *   <li>Determining whether a given component/region pair matches this
 128.441 +     *       style</li>
 128.442 +     *   <li>Splitting the prefix specified in the constructor into its
 128.443 +     *       constituent parts to facilitate quicker matching</li>
 128.444 +     *   <li>Creating and vending a NimbusStyle lazily.</li>
 128.445 +     * </ul>
 128.446 +     */
 128.447 +    private final class LazyStyle {
 128.448 +        /**
 128.449 +         * The prefix this LazyStyle was registered with. Something like
 128.450 +         * Button or ComboBox:"ComboBox.arrowButton"
 128.451 +         */
 128.452 +        private String prefix;
 128.453 +        /**
 128.454 +         * Whether or not this LazyStyle represents an unnamed component
 128.455 +         */
 128.456 +        private boolean simple = true;
 128.457 +        /**
 128.458 +         * The various parts, or sections, of the prefix. For example,
 128.459 +         * the prefix:
 128.460 +         *     ComboBox:"ComboBox.arrowButton"
 128.461 +         *
 128.462 +         * will be broken into two parts,
 128.463 +         *     ComboBox and "ComboBox.arrowButton"
 128.464 +         */
 128.465 +        private Part[] parts;
 128.466 +        /**
 128.467 +         * Cached shared style.
 128.468 +         */
 128.469 +        private NimbusStyle style;
 128.470 +        /**
 128.471 +         * A weakly referenced hash map such that if the reference JComponent
 128.472 +         * key is garbage collected then the entry is removed from the map.
 128.473 +         * This cache exists so that when a JComponent has nimbus overrides
 128.474 +         * in its client map, a unique style will be created and returned
 128.475 +         * for that JComponent instance, always. In such a situation each
 128.476 +         * JComponent instance must have its own instance of NimbusStyle.
 128.477 +         */
 128.478 +        private WeakHashMap<JComponent, WeakReference<NimbusStyle>> overridesCache;
 128.479 +
 128.480 +        /**
 128.481 +         * Create a new LazyStyle.
 128.482 +         *
 128.483 +         * @param prefix The prefix associated with this style. Cannot be null.
 128.484 +         */
 128.485 +        private LazyStyle(String prefix) {
 128.486 +            if (prefix == null) {
 128.487 +                throw new IllegalArgumentException(
 128.488 +                        "The prefix must not be null");
 128.489 +            }
 128.490 +
 128.491 +            this.prefix = prefix;
 128.492 +
 128.493 +            //there is one odd case that needs to be supported here: cell
 128.494 +            //renderers. A cell renderer is defined as a named internal
 128.495 +            //component, so for example:
 128.496 +            // List."List.cellRenderer"
 128.497 +            //The problem is that the component named List.cellRenderer is not a
 128.498 +            //child of a JList. Rather, it is treated more as a direct component
 128.499 +            //Thus, if the prefix ends with "cellRenderer", then remove all the
 128.500 +            //previous dotted parts of the prefix name so that it becomes, for
 128.501 +            //example: "List.cellRenderer"
 128.502 +            //Likewise, we have a hacked work around for cellRenderer, renderer,
 128.503 +            //and listRenderer.
 128.504 +            String temp = prefix;
 128.505 +            if (temp.endsWith("cellRenderer\"")
 128.506 +                    || temp.endsWith("renderer\"")
 128.507 +                    || temp.endsWith("listRenderer\"")) {
 128.508 +                temp = temp.substring(temp.lastIndexOf(":\"") + 1);
 128.509 +            }
 128.510 +
 128.511 +            //otherwise, normal code path
 128.512 +            List<String> sparts = split(temp);
 128.513 +            parts = new Part[sparts.size()];
 128.514 +            for (int i = 0; i < parts.length; i++) {
 128.515 +                parts[i] = new Part(sparts.get(i));
 128.516 +                if (parts[i].named) {
 128.517 +                    simple = false;
 128.518 +                }
 128.519 +            }
 128.520 +        }
 128.521 +
 128.522 +        /**
 128.523 +         * Gets the style. Creates it if necessary.
 128.524 +         * @return the style
 128.525 +         */
 128.526 +        SynthStyle getStyle(JComponent c) {
 128.527 +            // if the component has overrides, it gets its own unique style
 128.528 +            // instead of the shared style.
 128.529 +            if (c.getClientProperty("Nimbus.Overrides") != null) {
 128.530 +                if (overridesCache == null)
 128.531 +                    overridesCache = new WeakHashMap<JComponent, WeakReference<NimbusStyle>>();
 128.532 +                WeakReference<NimbusStyle> ref = overridesCache.get(c);
 128.533 +                NimbusStyle s = ref == null ? null : ref.get();
 128.534 +                if (s == null) {
 128.535 +                    s = new NimbusStyle(prefix, c);
 128.536 +                    overridesCache.put(c, new WeakReference<NimbusStyle>(s));
 128.537 +                }
 128.538 +                return s;
 128.539 +            }
 128.540 +            
 128.541 +            // lazily create the style if necessary
 128.542 +            if (style == null)
 128.543 +                style = new NimbusStyle(prefix, null);
 128.544 +            
 128.545 +            // return the style
 128.546 +            return style;
 128.547 +        }
 128.548 +
 128.549 +        /**
 128.550 +         * This LazyStyle is a match for the given component if, and only if,
 128.551 +         * for each part of the prefix the component hierarchy matches exactly.
 128.552 +         * That is, if given "a":something:"b", then:
 128.553 +         * c.getName() must equals "b"
 128.554 +         * c.getParent() can be anything
 128.555 +         * c.getParent().getParent().getName() must equal "a".
 128.556 +         */
 128.557 +        boolean matches(JComponent c) {
 128.558 +            return matches(c, parts.length - 1);
 128.559 +        }
 128.560 +
 128.561 +        private boolean matches(Component c, int partIndex) {
 128.562 +            if (partIndex < 0) return true;
 128.563 +            if (c == null) return false;
 128.564 +            //only get here if partIndex > 0 and c == null
 128.565 +
 128.566 +            String name = c.getName();
 128.567 +            if (parts[partIndex].named && parts[partIndex].s.equals(name)) {
 128.568 +                //so far so good, recurse
 128.569 +                return matches(c.getParent(), partIndex - 1);
 128.570 +            } else if (!parts[partIndex].named) {
 128.571 +                //if c is not named, and parts[partIndex] has an expected class
 128.572 +                //type registered, then check to make sure c is of the
 128.573 +                //right type;
 128.574 +                Class clazz = parts[partIndex].c;
 128.575 +                if (clazz != null && clazz.isAssignableFrom(c.getClass())) {
 128.576 +                    //so far so good, recurse
 128.577 +                    return matches(c.getParent(), partIndex - 1);
 128.578 +                } else if (clazz == null &&
 128.579 +                           registeredRegions.containsKey(parts[partIndex].s)) {
 128.580 +                    Region r = registeredRegions.get(parts[partIndex].s);
 128.581 +                    Component parent = r.isSubregion() ? c : c.getParent();
 128.582 +                    //special case the JInternalFrameTitlePane, because it
 128.583 +                    //doesn't fit the mold. very, very funky.
 128.584 +                    if (r == Region.INTERNAL_FRAME_TITLE_PANE && parent != null
 128.585 +                        && parent instanceof JInternalFrame.JDesktopIcon) {
 128.586 +                        JInternalFrame.JDesktopIcon icon =
 128.587 +                                (JInternalFrame.JDesktopIcon) parent;
 128.588 +                        parent = icon.getInternalFrame();
 128.589 +                    }
 128.590 +                    //it was the name of a region. So far, so good. Recurse.
 128.591 +                    return matches(parent, partIndex - 1);
 128.592 +                }
 128.593 +            }
 128.594 +
 128.595 +            return false;
 128.596 +        }
 128.597 +
 128.598 +        /**
 128.599 +         * Given some dot separated prefix, split on the colons that are
 128.600 +         * not within quotes, and not within brackets.
 128.601 +         *
 128.602 +         * @param prefix
 128.603 +         * @return
 128.604 +         */
 128.605 +        private List<String> split(String prefix) {
 128.606 +            List<String> parts = new ArrayList<String>();
 128.607 +            int bracketCount = 0;
 128.608 +            boolean inquotes = false;
 128.609 +            int lastIndex = 0;
 128.610 +            for (int i = 0; i < prefix.length(); i++) {
 128.611 +                char c = prefix.charAt(i);
 128.612 +
 128.613 +                if (c == '[') {
 128.614 +                    bracketCount++;
 128.615 +                    continue;
 128.616 +                } else if (c == '"') {
 128.617 +                    inquotes = !inquotes;
 128.618 +                    continue;
 128.619 +                } else if (c == ']') {
 128.620 +                    bracketCount--;
 128.621 +                    if (bracketCount < 0) {
 128.622 +                        throw new RuntimeException(
 128.623 +                                "Malformed prefix: " + prefix);
 128.624 +                    }
 128.625 +                    continue;
 128.626 +                }
 128.627 +
 128.628 +                if (c == ':' && !inquotes && bracketCount == 0) {
 128.629 +                    //found a character to split on.
 128.630 +                    parts.add(prefix.substring(lastIndex, i));
 128.631 +                    lastIndex = i + 1;
 128.632 +                }
 128.633 +            }
 128.634 +            if (lastIndex < prefix.length() - 1 && !inquotes
 128.635 +                    && bracketCount == 0) {
 128.636 +                parts.add(prefix.substring(lastIndex));
 128.637 +            }
 128.638 +            return parts;
 128.639 +
 128.640 +        }
 128.641 +
 128.642 +        private final class Part {
 128.643 +            private String s;
 128.644 +            //true if this part represents a component name
 128.645 +            private boolean named;
 128.646 +            private Class c;
 128.647 +
 128.648 +            Part(String s) {
 128.649 +                named = s.charAt(0) == '"' && s.charAt(s.length() - 1) == '"';
 128.650 +                if (named) {
 128.651 +                    this.s = s.substring(1, s.length() - 1);
 128.652 +                } else {
 128.653 +                    this.s = s;
 128.654 +                    //TODO use a map of known regions for Synth and Swing, and
 128.655 +                    //then use [classname] instead of org_class_name style
 128.656 +                    try {
 128.657 +                        c = Class.forName("javax.swing.J" + s);
 128.658 +                    } catch (Exception e) {
 128.659 +                    }
 128.660 +                    try {
 128.661 +                        c = Class.forName(s.replace("_", "."));
 128.662 +                    } catch (Exception e) {
 128.663 +                    }
 128.664 +                }
 128.665 +            }
 128.666 +        }
 128.667 +    }
 128.668 +
 128.669 +    /**
 128.670 +     * Get a derived color, derived colors are shared instances and will be
 128.671 +     * updated when its parent UIDefault color changes.
 128.672 +     *
 128.673 +     * @param uiDefaultParentName The parent UIDefault key
 128.674 +     * @param hOffset The hue offset
 128.675 +     * @param sOffset The saturation offset
 128.676 +     * @param bOffset The brightness offset
 128.677 +     * @param aOffset The alpha offset
 128.678 +     * @return The stored derived color
 128.679 +     */
 128.680 +    public DerivedColor getDerivedColor(String uiDefaultParentName,
 128.681 +                                        float hOffset, float sOffset,
 128.682 +                                        float bOffset, int aOffset){
 128.683 +        return getDerivedColor(uiDefaultParentName, hOffset, sOffset,
 128.684 +                               bOffset, aOffset, true);
 128.685 +    }
 128.686 +
 128.687 +    /**
 128.688 +     * Get a derived color, derived colors are shared instances and will be
 128.689 +     * updated when its parent UIDefault color changes.
 128.690 +     *
 128.691 +     * @param uiDefaultParentName The parent UIDefault key
 128.692 +     * @param hOffset The hue offset
 128.693 +     * @param sOffset The saturation offset
 128.694 +     * @param bOffset The brightness offset
 128.695 +     * @param aOffset The alpha offset
 128.696 +     * @param uiResource True if the derived color should be a UIResource,
 128.697 +     *        false if it should not be a UIResource
 128.698 +     * @return The stored derived color
 128.699 +     */
 128.700 +    public DerivedColor getDerivedColor(String uiDefaultParentName,
 128.701 +                                        float hOffset, float sOffset,
 128.702 +                                        float bOffset, int aOffset,
 128.703 +                                        boolean uiResource){
 128.704 +        tmpDCKey.set(uiDefaultParentName, hOffset, sOffset, bOffset, aOffset,
 128.705 +            uiResource);
 128.706 +        DerivedColor color = derivedColorsMap.get(tmpDCKey);
 128.707 +        if (color == null){
 128.708 +            if (uiResource) {
 128.709 +                color = new DerivedColor.UIResource(uiDefaultParentName,
 128.710 +                        hOffset, sOffset, bOffset, aOffset);
 128.711 +            } else {
 128.712 +                color = new DerivedColor(uiDefaultParentName, hOffset, sOffset,
 128.713 +                    bOffset, aOffset);
 128.714 +            }
 128.715 +            // calculate the initial value
 128.716 +            color.rederiveColor();
 128.717 +            // add the listener so that if the color changes we'll propogate it
 128.718 +            color.addPropertyChangeListener(defaultsListener);
 128.719 +            // add to the derived colors table
 128.720 +            derivedColorsMap.put(new DerivedColorKey(uiDefaultParentName,
 128.721 +                    hOffset, sOffset, bOffset, aOffset, uiResource),color);
 128.722 +        }
 128.723 +        return color;
 128.724 +    }
 128.725 +
 128.726 +    /**
 128.727 +     * Key class for derived colors
 128.728 +     */
 128.729 +    private class DerivedColorKey {
 128.730 +        private String uiDefaultParentName;
 128.731 +        private float hOffset, sOffset, bOffset;
 128.732 +        private int aOffset;
 128.733 +        private boolean uiResource;
 128.734 +
 128.735 +        DerivedColorKey(){}
 128.736 +
 128.737 +        DerivedColorKey(String uiDefaultParentName, float hOffset,
 128.738 +                        float sOffset, float bOffset, int aOffset,
 128.739 +                        boolean uiResource) {
 128.740 +            set(uiDefaultParentName, hOffset, sOffset, bOffset, aOffset, uiResource);
 128.741 +        }
 128.742 +
 128.743 +        void set (String uiDefaultParentName, float hOffset,
 128.744 +                        float sOffset, float bOffset, int aOffset,
 128.745 +                        boolean uiResource) {
 128.746 +            this.uiDefaultParentName = uiDefaultParentName;
 128.747 +            this.hOffset = hOffset;
 128.748 +            this.sOffset = sOffset;
 128.749 +            this.bOffset = bOffset;
 128.750 +            this.aOffset = aOffset;
 128.751 +            this.uiResource = uiResource;
 128.752 +        }
 128.753 +
 128.754 +        @Override
 128.755 +        public boolean equals(Object o) {
 128.756 +            if (this == o) return true;
 128.757 +            if (!(o instanceof DerivedColorKey)) return false;
 128.758 +            DerivedColorKey that = (DerivedColorKey) o;
 128.759 +            if (aOffset != that.aOffset) return false;
 128.760 +            if (Float.compare(that.bOffset, bOffset) != 0) return false;
 128.761 +            if (Float.compare(that.hOffset, hOffset) != 0) return false;
 128.762 +            if (Float.compare(that.sOffset, sOffset) != 0) return false;
 128.763 +            if (uiDefaultParentName != null ?
 128.764 +                !uiDefaultParentName.equals(that.uiDefaultParentName) :
 128.765 +                that.uiDefaultParentName != null) return false;
 128.766 +            if (this.uiResource != that.uiResource) return false;
 128.767 +            return true;
 128.768 +        }
 128.769 +
 128.770 +        @Override
 128.771 +        public int hashCode() {
 128.772 +            int result = super.hashCode();
 128.773 +            result = 31 * result + uiDefaultParentName.hashCode();
 128.774 +            result = 31 * result + hOffset != +0.0f ?
 128.775 +                    Float.floatToIntBits(hOffset) : 0;
 128.776 +            result = 31 * result + sOffset != +0.0f ?
 128.777 +                    Float.floatToIntBits(sOffset) : 0;
 128.778 +            result = 31 * result + bOffset != +0.0f ?
 128.779 +                    Float.floatToIntBits(bOffset) : 0;
 128.780 +            result = 31 * result + aOffset;
 128.781 +            result = 31 * result + (uiResource ? 1 : 0);
 128.782 +            return result;
 128.783 +        }
 128.784 +    }
 128.785 +
 128.786 +    /**
 128.787 +     * Listener to update derived colors on UIManager Defaults changes
 128.788 +     */
 128.789 +    private class DefaultsListener implements PropertyChangeListener {
 128.790 +        @Override
 128.791 +        public void propertyChange(PropertyChangeEvent evt) {
 128.792 +            Object src = evt.getSource();
 128.793 +            String key = evt.getPropertyName();
 128.794 +            if (key.equals("lookAndFeel")){
 128.795 +                // LAF has been installed, this is the first point at which we
 128.796 +                // can access our defaults table via UIManager so before now
 128.797 +                // all derived colors will be incorrect.
 128.798 +                // First we need to update
 128.799 +                for (DerivedColor color : derivedColorsMap.values()) {
 128.800 +                    color.rederiveColor();
 128.801 +                }
 128.802 +            } else if (src instanceof DerivedColor && key.equals("rgb")) {
 128.803 +                // derived color that is in UIManager defaults has changed
 128.804 +                // update all its dependent colors. Don't worry about doing
 128.805 +                // this recursively since calling rederiveColor will cause
 128.806 +                // another PCE to be fired, ending up here and essentially
 128.807 +                // recursing
 128.808 +                DerivedColor parentColor = (DerivedColor)src;
 128.809 +                String parentKey = null;
 128.810 +                Set<Map.Entry<Object,Object>> entries =
 128.811 +                        UIManager.getDefaults().entrySet();
 128.812 +                
 128.813 +                for (Map.Entry entry : entries) {
 128.814 +                    Object value = entry.getValue();
 128.815 +                    if (value == parentColor) {
 128.816 +                        parentKey = entry.getKey().toString();
 128.817 +                    }
 128.818 +                }
 128.819 +                
 128.820 +                if (parentKey == null) {
 128.821 +                    //couldn't find the DerivedColor in the UIDefaults map,
 128.822 +                    //so we just bail.
 128.823 +                    return;
 128.824 +                }
 128.825 +                
 128.826 +                for (Map.Entry entry : entries) {
 128.827 +                    Object value = entry.getValue();
 128.828 +                    if (value instanceof DerivedColor) {
 128.829 +                        DerivedColor color = (DerivedColor)entry.getValue();
 128.830 +                        if (parentKey.equals(color.getUiDefaultParentName())) {
 128.831 +                            color.rederiveColor();
 128.832 +                        }
 128.833 +                    }
 128.834 +                }
 128.835 +            }
 128.836 +        }
 128.837 +    }
 128.838 +
 128.839 +    private static final class PainterBorder implements Border, UIResource {
 128.840 +        private Insets insets;
 128.841 +        private Painter painter;
 128.842 +        private String painterKey;
 128.843 +        
 128.844 +        PainterBorder(String painterKey, Insets insets) {
 128.845 +            this.insets = insets;
 128.846 +            this.painterKey = painterKey;
 128.847 +        }
 128.848 +        
 128.849 +        @Override
 128.850 +        public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) {
 128.851 +            if (painter == null) {
 128.852 +                painter = (Painter)UIManager.get(painterKey);
 128.853 +                if (painter == null) return;
 128.854 +            }
 128.855 +            
 128.856 +            g.translate(x, y);
 128.857 +            if (g instanceof Graphics2D)
 128.858 +                painter.paint((Graphics2D)g, c, w, h);
 128.859 +            else {
 128.860 +                BufferedImage img = new BufferedImage(w, h, TYPE_INT_ARGB);
 128.861 +                Graphics2D gfx = img.createGraphics();
 128.862 +                painter.paint(gfx, c, w, h);
 128.863 +                gfx.dispose();
 128.864 +                g.drawImage(img, x, y, null);
 128.865 +                img = null;
 128.866 +            }
 128.867 +            g.translate(-x, -y);
 128.868 +        }
 128.869 +
 128.870 +        @Override
 128.871 +        public Insets getBorderInsets(Component c) {
 128.872 +            return (Insets)insets.clone();
 128.873 +        }
 128.874 +
 128.875 +        @Override
 128.876 +        public boolean isBorderOpaque() {
 128.877 +            return false;
 128.878 +        }
 128.879 +    }
 128.880 +}
 128.881 +
   129.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   129.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/DerivedColor.java	Wed Apr 29 00:27:46 2009 -0700
   129.3 @@ -0,0 +1,215 @@
   129.4 +/*
   129.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
   129.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   129.7 + *
   129.8 + * This code is free software; you can redistribute it and/or modify it
   129.9 + * under the terms of the GNU General Public License version 2 only, as
  129.10 + * published by the Free Software Foundation.  Sun designates this
  129.11 + * particular file as subject to the "Classpath" exception as provided
  129.12 + * by Sun in the LICENSE file that accompanied this code.
  129.13 + *
  129.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  129.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  129.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  129.17 + * version 2 for more details (a copy is included in the LICENSE file that
  129.18 + * accompanied this code).
  129.19 + *
  129.20 + * You should have received a copy of the GNU General Public License version
  129.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  129.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  129.23 + *
  129.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  129.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  129.26 + * have any questions.
  129.27 + */
  129.28 +package javax.swing.plaf.nimbus;
  129.29 +
  129.30 +import javax.swing.UIManager;
  129.31 +import java.awt.Color;
  129.32 +import java.beans.PropertyChangeSupport;
  129.33 +import java.beans.PropertyChangeListener;
  129.34 +
  129.35 +/**
  129.36 + * DerivedColor - A color implementation that is derived from a UIManager
  129.37 + * defaults table color and a set of offsets. It can be rederived at any point
  129.38 + * by calling rederiveColor(). For example when its parent color changes and it
  129.39 + * value will update to reflect the new derived color. Property change events
  129.40 + * are fired for the "rgb" property when the derived color changes.
  129.41 + *
  129.42 + * @author Jasper Potts
  129.43 + */
  129.44 +class DerivedColor extends Color {
  129.45 +    private final PropertyChangeSupport changeSupport =
  129.46 +            new PropertyChangeSupport(this);
  129.47 +    private final String uiDefaultParentName;
  129.48 +    private final float hOffset, sOffset, bOffset;
  129.49 +    private final int aOffset;
  129.50 +    private int argbValue;
  129.51 +
  129.52 +    DerivedColor(String uiDefaultParentName, float hOffset, float sOffset, float bOffset, int aOffset) {
  129.53 +        super(0);
  129.54 +        this.uiDefaultParentName = uiDefaultParentName;
  129.55 +        this.hOffset = hOffset;
  129.56 +        this.sOffset = sOffset;
  129.57 +        this.bOffset = bOffset;
  129.58 +        this.aOffset = aOffset;
  129.59 +    }
  129.60 +
  129.61 +    public String getUiDefaultParentName() {
  129.62 +        return uiDefaultParentName;
  129.63 +    }
  129.64 +
  129.65 +    public float getHueOffset() {
  129.66 +        return hOffset;
  129.67 +    }
  129.68 +
  129.69 +    public float getSaturationOffset() {
  129.70 +        return sOffset;
  129.71 +    }
  129.72 +
  129.73 +    public float getBrightnessOffset() {
  129.74 +        return bOffset;
  129.75 +    }
  129.76 +
  129.77 +    public int getAlphaOffset() {
  129.78 +        return aOffset;
  129.79 +    }
  129.80 +
  129.81 +    /**
  129.82 +     * Recalculate the derived color from the UIManager parent color and offsets
  129.83 +     */
  129.84 +    public void rederiveColor() {
  129.85 +        int old = argbValue;
  129.86 +        Color src = UIManager.getColor(uiDefaultParentName);
  129.87 +        if (src != null) {
  129.88 +            float[] tmp = Color.RGBtoHSB(src.getRed(), src.getGreen(), src.getBlue(), null);
  129.89 +            // apply offsets
  129.90 +            tmp[0] = clamp(tmp[0] + hOffset);
  129.91 +            tmp[1] = clamp(tmp[1] + sOffset);
  129.92 +            tmp[2] = clamp(tmp[2] + bOffset);
  129.93 +            int alpha = clamp(src.getAlpha() + aOffset);
  129.94 +            argbValue = (Color.HSBtoRGB(tmp[0], tmp[1], tmp[2]) & 0xFFFFFF) | (alpha << 24);
  129.95 +        } else {
  129.96 +            float[] tmp = new float[3];
  129.97 +            tmp[0] = clamp(hOffset);
  129.98 +            tmp[1] = clamp(sOffset);
  129.99 +            tmp[2] = clamp(bOffset);
 129.100 +            int alpha = clamp(aOffset);
 129.101 +            argbValue = (Color.HSBtoRGB(tmp[0], tmp[1], tmp[2]) & 0xFFFFFF) | (alpha << 24);
 129.102 +        }
 129.103 +        changeSupport.firePropertyChange("rgb", old, argbValue);
 129.104 +    }
 129.105 +
 129.106 +    /**
 129.107 +     * Returns the RGB value representing the color in the default sRGB {@link java.awt.image.ColorModel}. (Bits 24-31
 129.108 +     * are alpha, 16-23 are red, 8-15 are green, 0-7 are blue).
 129.109 +     *
 129.110 +     * @return the RGB value of the color in the default sRGB <code>ColorModel</code>.
 129.111 +     * @see java.awt.image.ColorModel#getRGBdefault
 129.112 +     * @see #getRed
 129.113 +     * @see #getGreen
 129.114 +     * @see #getBlue
 129.115 +     * @since JDK1.0
 129.116 +     */
 129.117 +    @Override public int getRGB() {
 129.118 +        return argbValue;
 129.119 +    }
 129.120 +
 129.121 +    @Override
 129.122 +    public boolean equals(Object o) {
 129.123 +        if (this == o) return true;
 129.124 +        if (!(o instanceof DerivedColor)) return false;
 129.125 +        DerivedColor that = (DerivedColor) o;
 129.126 +        if (aOffset != that.aOffset) return false;
 129.127 +        if (Float.compare(that.bOffset, bOffset) != 0) return false;
 129.128 +        if (Float.compare(that.hOffset, hOffset) != 0) return false;
 129.129 +        if (Float.compare(that.sOffset, sOffset) != 0) return false;
 129.130 +        if (!uiDefaultParentName.equals(that.uiDefaultParentName)) return false;
 129.131 +        return true;
 129.132 +    }
 129.133 +
 129.134 +    @Override
 129.135 +    public int hashCode() {
 129.136 +        int result = uiDefaultParentName.hashCode();
 129.137 +        result = 31 * result + hOffset != +0.0f ?
 129.138 +                Float.floatToIntBits(hOffset) : 0;
 129.139 +        result = 31 * result + sOffset != +0.0f ?
 129.140 +                Float.floatToIntBits(sOffset) : 0;
 129.141 +        result = 31 * result + bOffset != +0.0f ?
 129.142 +                Float.floatToIntBits(bOffset) : 0;
 129.143 +        result = 31 * result + aOffset;
 129.144 +        return result;
 129.145 +    }
 129.146 +
 129.147 +     /**
 129.148 +     * Add a PropertyChangeListener to the listener list.
 129.149 +     * The listener is registered for all properties.
 129.150 +     * The same listener object may be added more than once, and will be called
 129.151 +     * as many times as it is added.
 129.152 +     * If <code>listener</code> is null, no exception is thrown and no action
 129.153 +     * is taken.
 129.154 +     *
 129.155 +     * @param listener  The PropertyChangeListener to be added
 129.156 +     */
 129.157 +    public void addPropertyChangeListener(PropertyChangeListener listener) {
 129.158 +        changeSupport.addPropertyChangeListener(listener);
 129.159 +    }
 129.160 +
 129.161 +    /**
 129.162 +     * Remove a PropertyChangeListener from the listener list.
 129.163 +     * This removes a PropertyChangeListener that was registered
 129.164 +     * for all properties.
 129.165 +     * If <code>listener</code> was added more than once to the same event
 129.166 +     * source, it will be notified one less time after being removed.
 129.167 +     * If <code>listener</code> is null, or was never added, no exception is
 129.168 +     * thrown and no action is taken.
 129.169 +     *
 129.170 +     * @param listener  The PropertyChangeListener to be removed
 129.171 +     */
 129.172 +    public void removePropertyChangeListener(PropertyChangeListener listener) {
 129.173 +        changeSupport.removePropertyChangeListener(listener);
 129.174 +    }
 129.175 +
 129.176 +    private float clamp(float value) {
 129.177 +        if (value < 0) {
 129.178 +            value = 0;
 129.179 +        } else if (value > 1) {
 129.180 +            value = 1;
 129.181 +        }
 129.182 +        return value;
 129.183 +    }
 129.184 +
 129.185 +    private int clamp(int value) {
 129.186 +        if (value < 0) {
 129.187 +            value = 0;
 129.188 +        } else if (value > 255) {
 129.189 +            value = 255;
 129.190 +        }
 129.191 +        return value;
 129.192 +    }
 129.193 +
 129.194 +    /**
 129.195 +     * Returns a string representation of this <code>Color</code>. This method
 129.196 +     * is intended to be used only for debugging purposes. The content and
 129.197 +     * format of the returned string might vary between implementations. The
 129.198 +     * returned string might be empty but cannot be <code>null</code>.
 129.199 +     *
 129.200 +     * @return a String representation of this <code>Color</code>.
 129.201 +     */
 129.202 +    @Override
 129.203 +    public String toString() {
 129.204 +        Color src = UIManager.getColor(uiDefaultParentName);
 129.205 +        String s = "DerivedColor(color=" + getRed() + "," + getGreen() + "," + getBlue() +
 129.206 +                " parent=" + uiDefaultParentName +
 129.207 +                " offsets=" + getHueOffset() + "," + getSaturationOffset() + ","
 129.208 +                + getBrightnessOffset() + "," + getAlphaOffset();
 129.209 +        return src == null ? s : s + " pColor=" + src.getRed() + "," + src.getGreen() + "," + src.getBlue();
 129.210 +    }
 129.211 +
 129.212 +    static class UIResource extends DerivedColor implements javax.swing.plaf.UIResource {
 129.213 +        UIResource(String uiDefaultParentName, float hOffset, float sOffset,
 129.214 +                   float bOffset, int aOffset) {
 129.215 +            super(uiDefaultParentName, hOffset, sOffset, bOffset, aOffset);
 129.216 +        }
 129.217 +    }
 129.218 +}
   130.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   130.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/DropShadowEffect.java	Wed Apr 29 00:27:46 2009 -0700
   130.3 @@ -0,0 +1,128 @@
   130.4 +/*
   130.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
   130.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   130.7 + *
   130.8 + * This code is free software; you can redistribute it and/or modify it
   130.9 + * under the terms of the GNU General Public License version 2 only, as
  130.10 + * published by the Free Software Foundation.  Sun designates this
  130.11 + * particular file as subject to the "Classpath" exception as provided
  130.12 + * by Sun in the LICENSE file that accompanied this code.
  130.13 + *
  130.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  130.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  130.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  130.17 + * version 2 for more details (a copy is included in the LICENSE file that
  130.18 + * accompanied this code).
  130.19 + *
  130.20 + * You should have received a copy of the GNU General Public License version
  130.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  130.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  130.23 + *
  130.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  130.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  130.26 + * have any questions.
  130.27 + */
  130.28 +package javax.swing.plaf.nimbus;
  130.29 +
  130.30 +import java.awt.image.BufferedImage;
  130.31 +import java.awt.image.Raster;
  130.32 +import java.awt.image.WritableRaster;
  130.33 +import java.util.Arrays;
  130.34 +
  130.35 +/**
  130.36 + * DropShadowEffect - This effect currently only works with ARGB type buffered
  130.37 + * images.
  130.38 + *
  130.39 + * @author Created by Jasper Potts (Jun 18, 2007)
  130.40 + */
  130.41 +class DropShadowEffect extends ShadowEffect {
  130.42 +
  130.43 +    // =================================================================================================================
  130.44 +    // Effect Methods
  130.45 +
  130.46 +    /**
  130.47 +     * Get the type of this effect, one of UNDER,BLENDED,OVER. UNDER means the result of apply effect should be painted
  130.48 +     * under the src image. BLENDED means the result of apply sffect contains a modified src image so just it should be
  130.49 +     * painted. OVER means the result of apply effect should be painted over the src image.
  130.50 +     *
  130.51 +     * @return The effect type
  130.52 +     */
  130.53 +    @Override
  130.54 +    EffectType getEffectType() {
  130.55 +        return EffectType.UNDER;
  130.56 +    }
  130.57 +
  130.58 +    /**
  130.59 +     * Apply the effect to the src image generating the result . The result image may or may not contain the source
  130.60 +     * image depending on what the effect type is.
  130.61 +     *
  130.62 +     * @param src The source image for applying the effect to
  130.63 +     * @param dst The destination image to paint effect result into. If this is null then a new image will be created
  130.64 +     * @param w   The width of the src image to apply effect to, this allow the src and dst buffers to be bigger than
  130.65 +     *            the area the need effect applied to it
  130.66 +     * @param h   The height of the src image to apply effect to, this allow the src and dst buffers to be bigger than
  130.67 +     *            the area the need effect applied to it
  130.68 +     * @return Image with the result of the effect
  130.69 +     */
  130.70 +    @Override
  130.71 +    BufferedImage applyEffect(BufferedImage src, BufferedImage dst, int w, int h) {
  130.72 +        if (src == null || src.getType() != BufferedImage.TYPE_INT_ARGB){
  130.73 +            throw new IllegalArgumentException("Effect only works with " +
  130.74 +                    "source images of type BufferedImage.TYPE_INT_ARGB.");
  130.75 +        }
  130.76 +        if (dst != null && dst.getType() != BufferedImage.TYPE_INT_ARGB){
  130.77 +            throw new IllegalArgumentException("Effect only works with " +
  130.78 +                    "destination images of type BufferedImage.TYPE_INT_ARGB.");
  130.79 +        }
  130.80 +        // calculate offset
  130.81 +        double trangleAngle = Math.toRadians(angle - 90);
  130.82 +        int offsetX = (int) (Math.sin(trangleAngle) * distance);
  130.83 +        int offsetY = (int) (Math.cos(trangleAngle) * distance);
  130.84 +        // clac expanded size
  130.85 +        int tmpOffX = offsetX + size;
  130.86 +        int tmpOffY = offsetX + size;
  130.87 +        int tmpW = w + offsetX + size + size;
  130.88 +        int tmpH = h + offsetX + size;
  130.89 +        // create tmp buffers
  130.90 +        int[] lineBuf = getArrayCache().getTmpIntArray(w);
  130.91 +        byte[] tmpBuf1 = getArrayCache().getTmpByteArray1(tmpW * tmpH);
  130.92 +        Arrays.fill(tmpBuf1, (byte) 0x00);
  130.93 +        byte[] tmpBuf2 = getArrayCache().getTmpByteArray2(tmpW * tmpH);
  130.94 +        // extract src image alpha channel and inverse and offset
  130.95 +        Raster srcRaster = src.getRaster();
  130.96 +        for (int y = 0; y < h; y++) {
  130.97 +            int dy = (y + tmpOffY);
  130.98 +            int offset = dy * tmpW;
  130.99 +            srcRaster.getDataElements(0, y, w, 1, lineBuf);
 130.100 +            for (int x = 0; x < w; x++) {
 130.101 +                int dx = x + tmpOffX;
 130.102 +                tmpBuf1[offset + dx] = (byte) ((lineBuf[x] & 0xFF000000) >>> 24);
 130.103 +            }
 130.104 +        }
 130.105 +        // blur
 130.106 +        float[] kernel = EffectUtils.createGaussianKernel(size);
 130.107 +        EffectUtils.blur(tmpBuf1, tmpBuf2, tmpW, tmpH, kernel, size); // horizontal pass
 130.108 +        EffectUtils.blur(tmpBuf2, tmpBuf1, tmpH, tmpW, kernel, size);// vertical pass
 130.109 +        //rescale
 130.110 +        float spread = Math.min(1 / (1 - (0.01f * this.spread)), 255);
 130.111 +        for (int i = 0; i < tmpBuf1.length; i++) {
 130.112 +            int val = (int) (((int) tmpBuf1[i] & 0xFF) * spread);
 130.113 +            tmpBuf1[i] = (val > 255) ? (byte) 0xFF : (byte) val;
 130.114 +        }
 130.115 +        // create color image with shadow color and greyscale image as alpha
 130.116 +        if (dst == null) dst = new BufferedImage(w, h,
 130.117 +                BufferedImage.TYPE_INT_ARGB);
 130.118 +        WritableRaster shadowRaster = dst.getRaster();
 130.119 +        int red = color.getRed(), green = color.getGreen(), blue = color.getBlue();
 130.120 +        for (int y = 0; y < h; y++) {
 130.121 +            int srcY = y + tmpOffY;
 130.122 +            int shadowOffset = (srcY - offsetY) * tmpW;
 130.123 +            for (int x = 0; x < w; x++) {
 130.124 +                int srcX = x + tmpOffX;
 130.125 +                lineBuf[x] = tmpBuf1[shadowOffset + (srcX - offsetX)] << 24 | red << 16 | green << 8 | blue;
 130.126 +            }
 130.127 +            shadowRaster.setDataElements(0, y, w, 1, lineBuf);
 130.128 +        }
 130.129 +        return dst;
 130.130 +    }
 130.131 +}
   131.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   131.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/Effect.java	Wed Apr 29 00:27:46 2009 -0700
   131.3 @@ -0,0 +1,133 @@
   131.4 +/*
   131.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
   131.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   131.7 + *
   131.8 + * This code is free software; you can redistribute it and/or modify it
   131.9 + * under the terms of the GNU General Public License version 2 only, as
  131.10 + * published by the Free Software Foundation.  Sun designates this
  131.11 + * particular file as subject to the "Classpath" exception as provided
  131.12 + * by Sun in the LICENSE file that accompanied this code.
  131.13 + *
  131.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  131.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  131.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  131.17 + * version 2 for more details (a copy is included in the LICENSE file that
  131.18 + * accompanied this code).
  131.19 + *
  131.20 + * You should have received a copy of the GNU General Public License version
  131.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  131.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  131.23 + *
  131.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  131.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  131.26 + * have any questions.
  131.27 + */
  131.28 +package javax.swing.plaf.nimbus;
  131.29 +
  131.30 +import sun.awt.AppContext;
  131.31 +
  131.32 +import java.awt.image.BufferedImage;
  131.33 +import java.lang.ref.SoftReference;
  131.34 +
  131.35 +/**
  131.36 + * Effect
  131.37 + *
  131.38 + * @author Created by Jasper Potts (Jun 18, 2007)
  131.39 + */
  131.40 +abstract class Effect {
  131.41 +    enum EffectType {
  131.42 +        UNDER, BLENDED, OVER
  131.43 +    }
  131.44 +
  131.45 +    // =================================================================================================================
  131.46 +    // Abstract Methods
  131.47 +
  131.48 +    /**
  131.49 +     * Get the type of this effect, one of UNDER,BLENDED,OVER. UNDER means the result of apply effect should be painted
  131.50 +     * under the src image. BLENDED means the result of apply sffect contains a modified src image so just it should be
  131.51 +     * painted. OVER means the result of apply effect should be painted over the src image.
  131.52 +     *
  131.53 +     * @return The effect type
  131.54 +     */
  131.55 +    abstract EffectType getEffectType();
  131.56 +
  131.57 +    /**
  131.58 +     * Get the opacity to use to paint the result effected image if the EffectType is UNDER or OVER.
  131.59 +     *
  131.60 +     * @return The opactity for the effect, 0.0f -> 1.0f
  131.61 +     */
  131.62 +    abstract float getOpacity();
  131.63 +
  131.64 +    /**
  131.65 +     * Apply the effect to the src image generating the result . The result image may or may not contain the source
  131.66 +     * image depending on what the effect type is.
  131.67 +     *
  131.68 +     * @param src The source image for applying the effect to
  131.69 +     * @param dst The dstination image to paint effect result into. If this is null then a new image will be created
  131.70 +     * @param w   The width of the src image to apply effect to, this allow the src and dst buffers to be bigger than
  131.71 +     *            the area the need effect applied to it
  131.72 +     * @param h   The height of the src image to apply effect to, this allow the src and dst buffers to be bigger than
  131.73 +     *            the area the need effect applied to it
  131.74 +     * @return The result of appl
  131.75 +     */
  131.76 +    abstract BufferedImage applyEffect(BufferedImage src, BufferedImage dst, int w, int h);
  131.77 +
  131.78 +    // =================================================================================================================
  131.79 +    // Static data cache
  131.80 +
  131.81 +    protected static ArrayCache getArrayCache() {
  131.82 +        ArrayCache cache = (ArrayCache)AppContext.getAppContext().get(ArrayCache.class);
  131.83 +        if (cache == null){
  131.84 +            cache = new ArrayCache();
  131.85 +            AppContext.getAppContext().put(ArrayCache.class,cache);
  131.86 +        }
  131.87 +        return cache;
  131.88 +    }
  131.89 +
  131.90 +    protected static class ArrayCache {
  131.91 +        private SoftReference<int[]> tmpIntArray = null;
  131.92 +        private SoftReference<byte[]> tmpByteArray1 = null;
  131.93 +        private SoftReference<byte[]> tmpByteArray2 = null;
  131.94 +        private SoftReference<byte[]> tmpByteArray3 = null;
  131.95 +
  131.96 +        protected int[] getTmpIntArray(int size) {
  131.97 +            int[] tmp;
  131.98 +            if (tmpIntArray == null || (tmp = tmpIntArray.get()) == null || tmp.length < size) {
  131.99 +                // create new array
 131.100 +                tmp = new int[size];
 131.101 +                tmpIntArray = new SoftReference<int[]>(tmp);
 131.102 +            }
 131.103 +            return tmp;
 131.104 +        }
 131.105 +
 131.106 +        protected byte[] getTmpByteArray1(int size) {
 131.107 +            byte[] tmp;
 131.108 +            if (tmpByteArray1 == null || (tmp = tmpByteArray1.get()) == null || tmp.length < size) {
 131.109 +                // create new array
 131.110 +                tmp = new byte[size];
 131.111 +                tmpByteArray1 = new SoftReference<byte[]>(tmp);
 131.112 +            }
 131.113 +            return tmp;
 131.114 +        }
 131.115 +
 131.116 +        protected byte[] getTmpByteArray2(int size) {
 131.117 +            byte[] tmp;
 131.118 +            if (tmpByteArray2 == null || (tmp = tmpByteArray2.get()) == null || tmp.length < size) {
 131.119 +                // create new array
 131.120 +                tmp = new byte[size];
 131.121 +                tmpByteArray2 = new SoftReference<byte[]>(tmp);
 131.122 +            }
 131.123 +            return tmp;
 131.124 +        }
 131.125 +
 131.126 +        protected byte[] getTmpByteArray3(int size) {
 131.127 +            byte[] tmp;
 131.128 +            if (tmpByteArray3 == null || (tmp = tmpByteArray3.get()) == null || tmp.length < size) {
 131.129 +                // create new array
 131.130 +                tmp = new byte[size];
 131.131 +                tmpByteArray3 = new SoftReference<byte[]>(tmp);
 131.132 +            }
 131.133 +            return tmp;
 131.134 +        }
 131.135 +    }
 131.136 +}
   132.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   132.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/EffectUtils.java	Wed Apr 29 00:27:46 2009 -0700
   132.3 @@ -0,0 +1,426 @@
   132.4 +/*
   132.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
   132.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   132.7 + *
   132.8 + * This code is free software; you can redistribute it and/or modify it
   132.9 + * under the terms of the GNU General Public License version 2 only, as
  132.10 + * published by the Free Software Foundation.  Sun designates this
  132.11 + * particular file as subject to the "Classpath" exception as provided
  132.12 + * by Sun in the LICENSE file that accompanied this code.
  132.13 + *
  132.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  132.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  132.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  132.17 + * version 2 for more details (a copy is included in the LICENSE file that
  132.18 + * accompanied this code).
  132.19 + *
  132.20 + * You should have received a copy of the GNU General Public License version
  132.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  132.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  132.23 + *
  132.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  132.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  132.26 + * have any questions.
  132.27 + */
  132.28 +package javax.swing.plaf.nimbus;
  132.29 +
  132.30 +import java.awt.AlphaComposite;
  132.31 +import java.awt.Graphics2D;
  132.32 +import java.awt.Transparency;
  132.33 +import java.awt.GraphicsConfiguration;
  132.34 +import java.awt.GraphicsEnvironment;
  132.35 +import java.awt.image.BufferedImage;
  132.36 +import java.awt.image.Raster;
  132.37 +import java.awt.image.WritableRaster;
  132.38 +import java.awt.image.ColorModel;
  132.39 +
  132.40 +/**
  132.41 + * EffectUtils
  132.42 + *
  132.43 + * @author Created by Jasper Potts (Jun 18, 2007)
  132.44 + */
  132.45 +class EffectUtils {
  132.46 +
  132.47 +    /**
  132.48 +     * Clear a transparent image to 100% transparent
  132.49 +     *
  132.50 +     * @param img The image to clear
  132.51 +     */
  132.52 +    static void clearImage(BufferedImage img) {
  132.53 +        Graphics2D g2 = img.createGraphics();
  132.54 +        g2.setComposite(AlphaComposite.Clear);
  132.55 +        g2.fillRect(0, 0, img.getWidth(), img.getHeight());
  132.56 +        g2.dispose();
  132.57 +    }
  132.58 +
  132.59 +    // =================================================================================================================
  132.60 +    // Blur
  132.61 +
  132.62 +    /**
  132.63 +     * Apply Gaussian Blur to Image
  132.64 +     *
  132.65 +     * @param src    The image tp
  132.66 +     * @param dst    The destination image to draw blured src image into, null if you want a new one created
  132.67 +     * @param radius The blur kernel radius
  132.68 +     * @return The blured image
  132.69 +     */
  132.70 +    static BufferedImage gaussianBlur(BufferedImage src, BufferedImage dst, int radius) {
  132.71 +        int width = src.getWidth();
  132.72 +        int height = src.getHeight();
  132.73 +        if (dst == null || dst.getWidth() != width || dst.getHeight() != height || src.getType() != dst.getType()) {
  132.74 +            dst = createColorModelCompatibleImage(src);
  132.75 +        }
  132.76 +        float[] kernel = createGaussianKernel(radius);
  132.77 +        if (src.getType() == BufferedImage.TYPE_INT_ARGB) {
  132.78 +            int[] srcPixels = new int[width * height];
  132.79 +            int[] dstPixels = new int[width * height];
  132.80 +            getPixels(src, 0, 0, width, height, srcPixels);
  132.81 +            // horizontal pass
  132.82 +            blur(srcPixels, dstPixels, width, height, kernel, radius);
  132.83 +            // vertical pass
  132.84 +            //noinspection SuspiciousNameCombination
  132.85 +            blur(dstPixels, srcPixels, height, width, kernel, radius);
  132.86 +            // the result is now stored in srcPixels due to the 2nd pass
  132.87 +            setPixels(dst, 0, 0, width, height, srcPixels);
  132.88 +        } else if (src.getType() == BufferedImage.TYPE_BYTE_GRAY) {
  132.89 +            byte[] srcPixels = new byte[width * height];
  132.90 +            byte[] dstPixels = new byte[width * height];
  132.91 +            getPixels(src, 0, 0, width, height, srcPixels);
  132.92 +            // horizontal pass
  132.93 +            blur(srcPixels, dstPixels, width, height, kernel, radius);
  132.94 +            // vertical pass
  132.95 +            //noinspection SuspiciousNameCombination
  132.96 +            blur(dstPixels, srcPixels, height, width, kernel, radius);
  132.97 +            // the result is now stored in srcPixels due to the 2nd pass
  132.98 +            setPixels(dst, 0, 0, width, height, srcPixels);
  132.99 +        } else {
 132.100 +            throw new IllegalArgumentException("EffectUtils.gaussianBlur() src image is not a supported type, type=[" +
 132.101 +                    src.getType() + "]");
 132.102 +        }
 132.103 +        return dst;
 132.104 +    }
 132.105 +
 132.106 +    /**
 132.107 +     * <p>Blurs the source pixels into the destination pixels. The force of the blur is specified by the radius which
 132.108 +     * must be greater than 0.</p> <p>The source and destination pixels arrays are expected to be in the INT_ARGB
 132.109 +     * format.</p> <p>After this method is executed, dstPixels contains a transposed and filtered copy of
 132.110 +     * srcPixels.</p>
 132.111 +     *
 132.112 +     * @param srcPixels the source pixels
 132.113 +     * @param dstPixels the destination pixels
 132.114 +     * @param width     the width of the source picture
 132.115 +     * @param height    the height of the source picture
 132.116 +     * @param kernel    the kernel of the blur effect
 132.117 +     * @param radius    the radius of the blur effect
 132.118 +     */
 132.119 +    private static void blur(int[] srcPixels, int[] dstPixels,
 132.120 +                             int width, int height,
 132.121 +                             float[] kernel, int radius) {
 132.122 +        float a;
 132.123 +        float r;
 132.124 +        float g;
 132.125 +        float b;
 132.126 +
 132.127 +        int ca;
 132.128 +        int cr;
 132.129 +        int cg;
 132.130 +        int cb;
 132.131 +
 132.132 +        for (int y = 0; y < height; y++) {
 132.133 +            int index = y;
 132.134 +            int offset = y * width;
 132.135 +
 132.136 +            for (int x = 0; x < width; x++) {
 132.137 +                a = r = g = b = 0.0f;
 132.138 +
 132.139 +                for (int i = -radius; i <= radius; i++) {
 132.140 +                    int subOffset = x + i;
 132.141 +                    if (subOffset < 0 || subOffset >= width) {
 132.142 +                        subOffset = (x + width) % width;
 132.143 +                    }
 132.144 +
 132.145 +                    int pixel = srcPixels[offset + subOffset];
 132.146 +                    float blurFactor = kernel[radius + i];
 132.147 +
 132.148 +                    a += blurFactor * ((pixel >> 24) & 0xFF);
 132.149 +                    r += blurFactor * ((pixel >> 16) & 0xFF);
 132.150 +                    g += blurFactor * ((pixel >> 8) & 0xFF);
 132.151 +                    b += blurFactor * ((pixel) & 0xFF);
 132.152 +                }
 132.153 +
 132.154 +                ca = (int) (a + 0.5f);
 132.155 +                cr = (int) (r + 0.5f);
 132.156 +                cg = (int) (g + 0.5f);
 132.157 +                cb = (int) (b + 0.5f);
 132.158 +
 132.159 +                dstPixels[index] = ((ca > 255 ? 255 : ca) << 24) |
 132.160 +                        ((cr > 255 ? 255 : cr) << 16) |
 132.161 +                        ((cg > 255 ? 255 : cg) << 8) |
 132.162 +                        (cb > 255 ? 255 : cb);
 132.163 +                index += height;
 132.164 +            }
 132.165 +        }
 132.166 +    }
 132.167 +
 132.168 +    /**
 132.169 +     * <p>Blurs the source pixels into the destination pixels. The force of the blur is specified by the radius which
 132.170 +     * must be greater than 0.</p> <p>The source and destination pixels arrays are expected to be in the BYTE_GREY
 132.171 +     * format.</p> <p>After this method is executed, dstPixels contains a transposed and filtered copy of
 132.172 +     * srcPixels.</p>
 132.173 +     *
 132.174 +     * @param srcPixels the source pixels
 132.175 +     * @param dstPixels the destination pixels
 132.176 +     * @param width     the width of the source picture
 132.177 +     * @param height    the height of the source picture
 132.178 +     * @param kernel    the kernel of the blur effect
 132.179 +     * @param radius    the radius of the blur effect
 132.180 +     */
 132.181 +    static void blur(byte[] srcPixels, byte[] dstPixels,
 132.182 +                            int width, int height,
 132.183 +                            float[] kernel, int radius) {
 132.184 +        float p;
 132.185 +        int cp;
 132.186 +        for (int y = 0; y < height; y++) {
 132.187 +            int index = y;
 132.188 +            int offset = y * width;
 132.189 +            for (int x = 0; x < width; x++) {
 132.190 +                p = 0.0f;
 132.191 +                for (int i = -radius; i <= radius; i++) {
 132.192 +                    int subOffset = x + i;
 132.193 +//                    if (subOffset < 0) subOffset = 0;
 132.194 +//                    if (subOffset >= width) subOffset = width-1;
 132.195 +                    if (subOffset < 0 || subOffset >= width) {
 132.196 +                        subOffset = (x + width) % width;
 132.197 +                    }
 132.198 +                    int pixel = srcPixels[offset + subOffset] & 0xFF;
 132.199 +                    float blurFactor = kernel[radius + i];
 132.200 +                    p += blurFactor * pixel;
 132.201 +                }
 132.202 +                cp = (int) (p + 0.5f);
 132.203 +                dstPixels[index] = (byte) (cp > 255 ? 255 : cp);
 132.204 +                index += height;
 132.205 +            }
 132.206 +        }
 132.207 +    }
 132.208 +
 132.209 +    static float[] createGaussianKernel(int radius) {
 132.210 +        if (radius < 1) {
 132.211 +            throw new IllegalArgumentException("Radius must be >= 1");
 132.212 +        }
 132.213 +
 132.214 +        float[] data = new float[radius * 2 + 1];
 132.215 +
 132.216 +        float sigma = radius / 3.0f;
 132.217 +        float twoSigmaSquare = 2.0f * sigma * sigma;
 132.218 +        float sigmaRoot = (float) Math.sqrt(twoSigmaSquare * Math.PI);
 132.219 +        float total = 0.0f;
 132.220 +
 132.221 +        for (int i = -radius; i <= radius; i++) {
 132.222 +            float distance = i * i;
 132.223 +            int index = i + radius;
 132.224 +            data[index] = (float) Math.exp(-distance / twoSigmaSquare) / sigmaRoot;
 132.225 +            total += data[index];
 132.226 +        }
 132.227 +
 132.228 +        for (int i = 0; i < data.length; i++) {
 132.229 +            data[i] /= total;
 132.230 +        }
 132.231 +
 132.232 +        return data;
 132.233 +    }
 132.234 +
 132.235 +    // =================================================================================================================
 132.236 +    // Get/Set Pixels helper methods
 132.237 +
 132.238 +    /**
 132.239 +     * <p>Returns an array of pixels, stored as integers, from a <code>BufferedImage</code>. The pixels are grabbed from
 132.240 +     * a rectangular area defined by a location and two dimensions. Calling this method on an image of type different
 132.241 +     * from <code>BufferedImage.TYPE_INT_ARGB</code> and <code>BufferedImage.TYPE_INT_RGB</code> will unmanage the
 132.242 +     * image.</p>
 132.243 +     *
 132.244 +     * @param img    the source image
 132.245 +     * @param x      the x location at which to start grabbing pixels
 132.246 +     * @param y      the y location at which to start grabbing pixels
 132.247 +     * @param w      the width of the rectangle of pixels to grab
 132.248 +     * @param h      the height of the rectangle of pixels to grab
 132.249 +     * @param pixels a pre-allocated array of pixels of size w*h; can be null
 132.250 +     * @return <code>pixels</code> if non-null, a new array of integers otherwise
 132.251 +     * @throws IllegalArgumentException is <code>pixels</code> is non-null and of length &lt; w*h
 132.252 +     */
 132.253 +    static byte[] getPixels(BufferedImage img,
 132.254 +                                   int x, int y, int w, int h, byte[] pixels) {
 132.255 +        if (w == 0 || h == 0) {
 132.256 +            return new byte[0];
 132.257 +        }
 132.258 +
 132.259 +        if (pixels == null) {
 132.260 +            pixels = new byte[w * h];
 132.261 +        } else if (pixels.length < w * h) {
 132.262 +            throw new IllegalArgumentException("pixels array must have a length >= w*h");
 132.263 +        }
 132.264 +
 132.265 +        int imageType = img.getType();
 132.266 +        if (imageType == BufferedImage.TYPE_BYTE_GRAY) {
 132.267 +            Raster raster = img.getRaster();
 132.268 +            return (byte[]) raster.getDataElements(x, y, w, h, pixels);
 132.269 +        } else {
 132.270 +            throw new IllegalArgumentException("Only type BYTE_GRAY is supported");
 132.271 +        }
 132.272 +    }
 132.273 +
 132.274 +    /**
 132.275 +     * <p>Writes a rectangular area of pixels in the destination <code>BufferedImage</code>. Calling this method on an
 132.276 +     * image of type different from <code>BufferedImage.TYPE_INT_ARGB</code> and <code>BufferedImage.TYPE_INT_RGB</code>
 132.277 +     * will unmanage the image.</p>
 132.278 +     *
 132.279 +     * @param img    the destination image
 132.280 +     * @param x      the x location at which to start storing pixels
 132.281 +     * @param y      the y location at which to start storing pixels
 132.282 +     * @param w      the width of the rectangle of pixels to store
 132.283 +     * @param h      the height of the rectangle of pixels to store
 132.284 +     * @param pixels an array of pixels, stored as integers
 132.285 +     * @throws IllegalArgumentException is <code>pixels</code> is non-null and of length &lt; w*h
 132.286 +     */
 132.287 +    static void setPixels(BufferedImage img,
 132.288 +                                 int x, int y, int w, int h, byte[] pixels) {
 132.289 +        if (pixels == null || w == 0 || h == 0) {
 132.290 +            return;
 132.291 +        } else if (pixels.length < w * h) {
 132.292 +            throw new IllegalArgumentException("pixels array must have a length >= w*h");
 132.293 +        }
 132.294 +        int imageType = img.getType();
 132.295 +        if (imageType == BufferedImage.TYPE_BYTE_GRAY) {
 132.296 +            WritableRaster raster = img.getRaster();
 132.297 +            raster.setDataElements(x, y, w, h, pixels);
 132.298 +        } else {
 132.299 +            throw new IllegalArgumentException("Only type BYTE_GRAY is supported");
 132.300 +        }
 132.301 +    }
 132.302 +
 132.303 +    /**
 132.304 +     * <p>Returns an array of pixels, stored as integers, from a
 132.305 +     * <code>BufferedImage</code>. The pixels are grabbed from a rectangular
 132.306 +     * area defined by a location and two dimensions. Calling this method on
 132.307 +     * an image of type different from <code>BufferedImage.TYPE_INT_ARGB</code>
 132.308 +     * and <code>BufferedImage.TYPE_INT_RGB</code> will unmanage the image.</p>
 132.309 +     *
 132.310 +     * @param img the source image
 132.311 +     * @param x the x location at which to start grabbing pixels
 132.312 +     * @param y the y location at which to start grabbing pixels
 132.313 +     * @param w the width of the rectangle of pixels to grab
 132.314 +     * @param h the height of the rectangle of pixels to grab
 132.315 +     * @param pixels a pre-allocated array of pixels of size w*h; can be null
 132.316 +     * @return <code>pixels</code> if non-null, a new array of integers
 132.317 +     *   otherwise
 132.318 +     * @throws IllegalArgumentException is <code>pixels</code> is non-null and
 132.319 +     *   of length &lt; w*h
 132.320 +     */
 132.321 +    public static int[] getPixels(BufferedImage img,
 132.322 +                                  int x, int y, int w, int h, int[] pixels) {
 132.323 +        if (w == 0 || h == 0) {
 132.324 +            return new int[0];
 132.325 +        }
 132.326 +
 132.327 +        if (pixels == null) {
 132.328 +            pixels = new int[w * h];
 132.329 +        } else if (pixels.length < w * h) {
 132.330 +            throw new IllegalArgumentException("pixels array must have a length" +
 132.331 +                                               " >= w*h");
 132.332 +        }
 132.333 +
 132.334 +        int imageType = img.getType();
 132.335 +        if (imageType == BufferedImage.TYPE_INT_ARGB ||
 132.336 +            imageType == BufferedImage.TYPE_INT_RGB) {
 132.337 +            Raster raster = img.getRaster();
 132.338 +            return (int[]) raster.getDataElements(x, y, w, h, pixels);
 132.339 +        }
 132.340 +
 132.341 +        // Unmanages the image
 132.342 +        return img.getRGB(x, y, w, h, pixels, 0, w);
 132.343 +    }
 132.344 +
 132.345 +    /**
 132.346 +     * <p>Writes a rectangular area of pixels in the destination
 132.347 +     * <code>BufferedImage</code>. Calling this method on
 132.348 +     * an image of type different from <code>BufferedImage.TYPE_INT_ARGB</code>
 132.349 +     * and <code>BufferedImage.TYPE_INT_RGB</code> will unmanage the image.</p>
 132.350 +     *
 132.351 +     * @param img the destination image
 132.352 +     * @param x the x location at which to start storing pixels
 132.353 +     * @param y the y location at which to start storing pixels
 132.354 +     * @param w the width of the rectangle of pixels to store
 132.355 +     * @param h the height of the rectangle of pixels to store
 132.356 +     * @param pixels an array of pixels, stored as integers
 132.357 +     * @throws IllegalArgumentException is <code>pixels</code> is non-null and
 132.358 +     *   of length &lt; w*h
 132.359 +     */
 132.360 +    public static void setPixels(BufferedImage img,
 132.361 +                                 int x, int y, int w, int h, int[] pixels) {
 132.362 +        if (pixels == null || w == 0 || h == 0) {
 132.363 +            return;
 132.364 +        } else if (pixels.length < w * h) {
 132.365 +            throw new IllegalArgumentException("pixels array must have a length" +
 132.366 +                                               " >= w*h");
 132.367 +        }
 132.368 +
 132.369 +        int imageType = img.getType();
 132.370 +        if (imageType == BufferedImage.TYPE_INT_ARGB ||
 132.371 +            imageType == BufferedImage.TYPE_INT_RGB) {
 132.372 +            WritableRaster raster = img.getRaster();
 132.373 +            raster.setDataElements(x, y, w, h, pixels);
 132.374 +        } else {
 132.375 +            // Unmanages the image
 132.376 +            img.setRGB(x, y, w, h, pixels, 0, w);
 132.377 +        }
 132.378 +    }
 132.379 +
 132.380 +    /**
 132.381 +     * <p>Returns a new <code>BufferedImage</code> using the same color model
 132.382 +     * as the image passed as a parameter. The returned image is only compatible
 132.383 +     * with the image passed as a parameter. This does not mean the returned
 132.384 +     * image is compatible with the hardware.</p>
 132.385 +     *
 132.386 +     * @param image the reference image from which the color model of the new
 132.387 +     *   image is obtained
 132.388 +     * @return a new <code>BufferedImage</code>, compatible with the color model
 132.389 +     *   of <code>image</code>
 132.390 +     */
 132.391 +    public static BufferedImage createColorModelCompatibleImage(BufferedImage image) {
 132.392 +        ColorModel cm = image.getColorModel();
 132.393 +        return new BufferedImage(cm,
 132.394 +            cm.createCompatibleWritableRaster(image.getWidth(),
 132.395 +                                              image.getHeight()),
 132.396 +            cm.isAlphaPremultiplied(), null);
 132.397 +    }
 132.398 +
 132.399 +    /**
 132.400 +     * <p>Returns a new translucent compatible image of the specified width and
 132.401 +     * height. That is, the returned <code>BufferedImage</code> is compatible with
 132.402 +     * the graphics hardware. If the method is called in a headless
 132.403 +     * environment, then the returned BufferedImage will be compatible with
 132.404 +     * the source image.</p>
 132.405 +     *
 132.406 +     * @param width the width of the new image
 132.407 +     * @param height the height of the new image
 132.408 +     * @return a new translucent compatible <code>BufferedImage</code> of the
 132.409 +     *   specified width and height
 132.410 +     */
 132.411 +    public static BufferedImage createCompatibleTranslucentImage(int width,
 132.412 +                                                                 int height) {
 132.413 +        return isHeadless() ?
 132.414 +                new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB) :
 132.415 +                getGraphicsConfiguration().createCompatibleImage(width, height,
 132.416 +                                                   Transparency.TRANSLUCENT);
 132.417 +    }
 132.418 +
 132.419 +    private static boolean isHeadless() {
 132.420 +        return GraphicsEnvironment.isHeadless();
 132.421 +    }
 132.422 +
 132.423 +    // Returns the graphics configuration for the primary screen
 132.424 +    private static GraphicsConfiguration getGraphicsConfiguration() {
 132.425 +        return GraphicsEnvironment.getLocalGraphicsEnvironment().
 132.426 +                    getDefaultScreenDevice().getDefaultConfiguration();
 132.427 +    }
 132.428 +
 132.429 +}
   133.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   133.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/ImageCache.java	Wed Apr 29 00:27:46 2009 -0700
   133.3 @@ -0,0 +1,217 @@
   133.4 +/*
   133.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
   133.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   133.7 + *
   133.8 + * This code is free software; you can redistribute it and/or modify it
   133.9 + * under the terms of the GNU General Public License version 2 only, as
  133.10 + * published by the Free Software Foundation.  Sun designates this
  133.11 + * particular file as subject to the "Classpath" exception as provided
  133.12 + * by Sun in the LICENSE file that accompanied this code.
  133.13 + *
  133.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  133.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  133.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  133.17 + * version 2 for more details (a copy is included in the LICENSE file that
  133.18 + * accompanied this code).
  133.19 + *
  133.20 + * You should have received a copy of the GNU General Public License version
  133.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  133.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  133.23 + *
  133.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  133.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  133.26 + * have any questions.
  133.27 + */
  133.28 +package javax.swing.plaf.nimbus;
  133.29 +
  133.30 +import java.awt.GraphicsConfiguration;
  133.31 +import java.awt.Image;
  133.32 +import java.lang.ref.ReferenceQueue;
  133.33 +import java.lang.ref.SoftReference;
  133.34 +import java.util.Arrays;
  133.35 +import java.util.Iterator;
  133.36 +import java.util.LinkedHashMap;
  133.37 +import java.util.Map;
  133.38 +import java.util.concurrent.locks.ReadWriteLock;
  133.39 +import java.util.concurrent.locks.ReentrantReadWriteLock;
  133.40 +
  133.41 +/**
  133.42 + * ImageCache - A fixed pixel count sized cache of Images keyed by arbitrary set of arguments. All images are held with
  133.43 + * SoftReferences so they will be dropped by the GC if heap memory gets tight. When our size hits max pixel count least
  133.44 + * recently requested images are removed first.
  133.45 + *
  133.46 + * @author Created by Jasper Potts (Aug 7, 2007)
  133.47 + */
  133.48 +class ImageCache {
  133.49 +    // Ordered Map keyed by args hash, ordered by most recent accessed entry.
  133.50 +    private final LinkedHashMap<Integer, PixelCountSoftReference> map =
  133.51 +            new LinkedHashMap<Integer, PixelCountSoftReference>(16, 0.75f, true);
  133.52 +    // Maximum number of pixels to cache, this is used if maxCount
  133.53 +    private final int maxPixelCount;
  133.54 +    // Maximum cached image size in pxiels
  133.55 +    private final int maxSingleImagePixelSize;
  133.56 +    // The current number of pixels stored in the cache
  133.57 +    private int currentPixelCount = 0;
  133.58 +    // Lock for concurrent access to map
  133.59 +    private ReadWriteLock lock = new ReentrantReadWriteLock();
  133.60 +    // Reference queue for tracking lost softreferences to images in the cache
  133.61 +    private ReferenceQueue<Image> referenceQueue = new ReferenceQueue<Image>();
  133.62 +    // Singleton Instance
  133.63 +    private static final ImageCache instance = new ImageCache();
  133.64 +
  133.65 +
  133.66 +    /** Get static singleton instance */
  133.67 +    static ImageCache getInstance() {
  133.68 +        return instance;
  133.69 +    }
  133.70 +
  133.71 +    public ImageCache() {
  133.72 +        this.maxPixelCount = (8 * 1024 * 1024) / 4; // 8Mb of pixels
  133.73 +        this.maxSingleImagePixelSize = 300 * 300;
  133.74 +    }
  133.75 +
  133.76 +    public ImageCache(int maxPixelCount, int maxSingleImagePixelSize) {
  133.77 +        this.maxPixelCount = maxPixelCount;
  133.78 +        this.maxSingleImagePixelSize = maxSingleImagePixelSize;
  133.79 +    }
  133.80 +
  133.81 +    /** Clear the cache */
  133.82 +    public void flush() {
  133.83 +        lock.readLock().lock();
  133.84 +        try {
  133.85 +            map.clear();
  133.86 +        } finally {
  133.87 +            lock.readLock().unlock();
  133.88 +        }
  133.89 +    }
  133.90 +
  133.91 +    /**
  133.92 +     * Check if the image size is to big to be stored in the cache
  133.93 +     *
  133.94 +     * @param w The image width
  133.95 +     * @param h The image height
  133.96 +     * @return True if the image size is less than max
  133.97 +     */
  133.98 +    public boolean isImageCachable(int w, int h) {
  133.99 +        return (w * h) < maxSingleImagePixelSize;
 133.100 +    }
 133.101 +
 133.102 +    /**
 133.103 +     * Get the cached image for given keys
 133.104 +     *
 133.105 +     * @param config The graphics configuration, needed if cached image is a Volatile Image. Used as part of cache key
 133.106 +     * @param w      The image width, used as part of cache key
 133.107 +     * @param h      The image height, used as part of cache key
 133.108 +     * @param args   Other arguments to use as part of the cache key
 133.109 +     * @return Returns the cached Image, or null there is no cached image for key
 133.110 +     */
 133.111 +    public Image getImage(GraphicsConfiguration config, int w, int h, Object... args) {
 133.112 +        lock.readLock().lock();
 133.113 +        try {
 133.114 +            PixelCountSoftReference ref = map.get(hash(config, w, h, args));
 133.115 +            // check reference has not been lost and the key truly matches, in case of false positive hash match
 133.116 +            if (ref != null && ref.equals(config,w, h, args)) {
 133.117 +                return ref.get();
 133.118 +            } else {
 133.119 +                return null;
 133.120 +            }
 133.121 +        } finally {
 133.122 +            lock.readLock().unlock();
 133.123 +        }
 133.124 +    }
 133.125 +
 133.126 +    /**
 133.127 +     * Sets the cached image for the specified constraints.
 133.128 +     *
 133.129 +     * @param image  The image to store in cache
 133.130 +     * @param config The graphics configuration, needed if cached image is a Volatile Image. Used as part of cache key
 133.131 +     * @param w      The image width, used as part of cache key
 133.132 +     * @param h      The image height, used as part of cache key
 133.133 +     * @param args   Other arguments to use as part of the cache key
 133.134 +     * @return true if the image could be cached or false if the image is too big
 133.135 +     */
 133.136 +    public boolean setImage(Image image, GraphicsConfiguration config, int w, int h, Object... args) {
 133.137 +        if (!isImageCachable(w, h)) return false;
 133.138 +        int hash = hash(config, w, h, args);
 133.139 +        lock.writeLock().lock();
 133.140 +        try {
 133.141 +            PixelCountSoftReference ref = map.get(hash);
 133.142 +            // check if currently in map
 133.143 +            if (ref != null && ref.get() == image) {
 133.144 +                return true;
 133.145 +            }
 133.146 +            // clear out old
 133.147 +            if (ref != null) {
 133.148 +                currentPixelCount -= ref.pixelCount;
 133.149 +                map.remove(hash);
 133.150 +            }
 133.151 +            // add new image to pixel count
 133.152 +            int newPixelCount = image.getWidth(null) * image.getHeight(null);
 133.153 +            currentPixelCount += newPixelCount;
 133.154 +            // clean out lost references if not enough space
 133.155 +            if (currentPixelCount > maxPixelCount) {
 133.156 +                while ((ref = (PixelCountSoftReference)referenceQueue.poll()) != null){
 133.157 +                    //reference lost
 133.158 +                    map.remove(ref.hash);
 133.159 +                    currentPixelCount -= ref.pixelCount;
 133.160 +                }
 133.161 +            }
 133.162 +            // remove old items till there is enough free space
 133.163 +            if (currentPixelCount > maxPixelCount) {
 133.164 +                Iterator<Map.Entry<Integer, PixelCountSoftReference>> mapIter = map.entrySet().iterator();
 133.165 +                while ((currentPixelCount > maxPixelCount) && mapIter.hasNext()) {
 133.166 +                    Map.Entry<Integer, PixelCountSoftReference> entry = mapIter.next();
 133.167 +                    mapIter.remove();
 133.168 +                    Image img = entry.getValue().get();
 133.169 +                    if (img != null) img.flush();
 133.170 +                    currentPixelCount -= entry.getValue().pixelCount;
 133.171 +                }
 133.172 +            }
 133.173 +            // finaly put new in map
 133.174 +            map.put(hash, new PixelCountSoftReference(image, referenceQueue, newPixelCount,hash, config, w, h, args));
 133.175 +            return true;
 133.176 +        } finally {
 133.177 +            lock.writeLock().unlock();
 133.178 +        }
 133.179 +    }
 133.180 +
 133.181 +    /** Create a unique hash from all the input */
 133.182 +    private int hash(GraphicsConfiguration config, int w, int h, Object ... args) {
 133.183 +        int hash;
 133.184 +        hash = (config != null ? config.hashCode() : 0);
 133.185 +        hash = 31 * hash + w;
 133.186 +        hash = 31 * hash + h;
 133.187 +        hash = 31 * hash + Arrays.deepHashCode(args);
 133.188 +        return hash;
 133.189 +    }
 133.190 +
 133.191 +
 133.192 +    /** Extended SoftReference that stores the pixel count even after the image is lost */
 133.193 +    private static class PixelCountSoftReference extends SoftReference<Image> {
 133.194 +        private final int pixelCount;
 133.195 +        private final int hash;
 133.196 +        // key parts
 133.197 +        private final GraphicsConfiguration config;
 133.198 +        private final int w;
 133.199 +        private final int h;
 133.200 +        private final Object[] args;
 133.201 +
 133.202 +        public PixelCountSoftReference(Image referent, ReferenceQueue<? super Image> q, int pixelCount, int hash,
 133.203 +                                       GraphicsConfiguration config, int w, int h, Object[] args) {
 133.204 +            super(referent, q);
 133.205 +            this.pixelCount = pixelCount;
 133.206 +            this.hash = hash;
 133.207 +            this.config = config;
 133.208 +            this.w = w;
 133.209 +            this.h = h;
 133.210 +            this.args = args;
 133.211 +        }
 133.212 +
 133.213 +        public boolean equals (GraphicsConfiguration config, int w, int h, Object[] args){
 133.214 +            return config == this.config &&
 133.215 +                            w == this.w &&
 133.216 +                            h == this.h &&
 133.217 +                            Arrays.equals(args, this.args);
 133.218 +        }
 133.219 +    }
 133.220 +}
   134.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   134.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/ImageScalingHelper.java	Wed Apr 29 00:27:46 2009 -0700
   134.3 @@ -0,0 +1,280 @@
   134.4 +/*
   134.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
   134.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   134.7 + *
   134.8 + * This code is free software; you can redistribute it and/or modify it
   134.9 + * under the terms of the GNU General Public License version 2 only, as
  134.10 + * published by the Free Software Foundation.  Sun designates this
  134.11 + * particular file as subject to the "Classpath" exception as provided
  134.12 + * by Sun in the LICENSE file that accompanied this code.
  134.13 + *
  134.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  134.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  134.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  134.17 + * version 2 for more details (a copy is included in the LICENSE file that
  134.18 + * accompanied this code).
  134.19 + *
  134.20 + * You should have received a copy of the GNU General Public License version
  134.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  134.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  134.23 + *
  134.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  134.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  134.26 + * have any questions.
  134.27 + */
  134.28 +package javax.swing.plaf.nimbus;
  134.29 +
  134.30 +import java.awt.Graphics;
  134.31 +import java.awt.Image;
  134.32 +import java.awt.Insets;
  134.33 +
  134.34 +/**
  134.35 + * ImageScalingHelper
  134.36 + *
  134.37 + * @author Created by Jasper Potts (Aug 8, 2007)
  134.38 + */
  134.39 +class ImageScalingHelper {
  134.40 +
  134.41 +    /** Enumeration for the types of painting this class can handle. */
  134.42 +    enum PaintType {
  134.43 +        /**
  134.44 +         * Painting type indicating the image should be centered in the space provided.  When used the <code>mask</code>
  134.45 +         * is ignored.
  134.46 +         */
  134.47 +        CENTER,
  134.48 +
  134.49 +        /**
  134.50 +         * Painting type indicating the image should be tiled across the specified width and height.  When used the
  134.51 +         * <code>mask</code> is ignored.
  134.52 +         */
  134.53 +        TILE,
  134.54 +
  134.55 +        /**
  134.56 +         * Painting type indicating the image should be split into nine regions with the top, left, bottom and right
  134.57 +         * areas stretched.
  134.58 +         */
  134.59 +        PAINT9_STRETCH,
  134.60 +
  134.61 +        /**
  134.62 +         * Painting type indicating the image should be split into nine regions with the top, left, bottom and right
  134.63 +         * areas tiled.
  134.64 +         */
  134.65 +        PAINT9_TILE
  134.66 +    }
  134.67 +
  134.68 +    ;
  134.69 +
  134.70 +    private static final Insets EMPTY_INSETS = new Insets(0, 0, 0, 0);
  134.71 +
  134.72 +    static final int PAINT_TOP_LEFT = 1;
  134.73 +    static final int PAINT_TOP = 2;
  134.74 +    static final int PAINT_TOP_RIGHT = 4;
  134.75 +    static final int PAINT_LEFT = 8;
  134.76 +    static final int PAINT_CENTER = 16;
  134.77 +    static final int PAINT_RIGHT = 32;
  134.78 +    static final int PAINT_BOTTOM_RIGHT = 64;
  134.79 +    static final int PAINT_BOTTOM = 128;
  134.80 +    static final int PAINT_BOTTOM_LEFT = 256;
  134.81 +    /**
  134.82 +     * Specifies that all regions should be painted.  If this is set any other regions specified will not be painted.
  134.83 +     * For example PAINT_ALL | PAINT_CENTER will paint all but the center.
  134.84 +     */
  134.85 +    static final int PAINT_ALL = 512;
  134.86 +
  134.87 +    /**
  134.88 +     * Paints using the algorightm specified by <code>paintType</code>.
  134.89 +     *
  134.90 +     * @param g         Graphics to render to
  134.91 +     * @param x         X-coordinate
  134.92 +     * @param y         Y-coordinate
  134.93 +     * @param w         Width to render to
  134.94 +     * @param h         Height to render to
  134.95 +     * @param image     Image to render from, if <code>null</code> this method will do nothing
  134.96 +     * @param sInsets   Insets specifying the portion of the image that will be stretched or tiled, if <code>null</code>
  134.97 +     *                  empty <code>Insets</code> will be used.
  134.98 +     * @param dInsets   Destination insets specifying the portion of the image will be stretched or tiled, if
  134.99 +     *                  <code>null</code> empty <code>Insets</code> will be used.
 134.100 +     * @param paintType Specifies what type of algorithm to use in painting
 134.101 +     * @param mask      Specifies portion of image to render, if <code>PAINT_ALL</code> is specified, any other regions
 134.102 +     *                  specified will not be painted, for example PAINT_ALL | PAINT_CENTER paints everything but the
 134.103 +     *                  center.
 134.104 +     */
 134.105 +    public static void paint(Graphics g, int x, int y, int w, int h,
 134.106 +                      Image image, Insets sInsets,
 134.107 +                      Insets dInsets, PaintType paintType, int mask) {
 134.108 +        if (image == null || image.getWidth(null) <= 0 || image.getHeight(null) <= 0) {
 134.109 +            return;
 134.110 +        }
 134.111 +        if (sInsets == null) {
 134.112 +            sInsets = EMPTY_INSETS;
 134.113 +        }
 134.114 +        if (dInsets == null) {
 134.115 +            dInsets = EMPTY_INSETS;
 134.116 +        }
 134.117 +        int iw = image.getWidth(null);
 134.118 +        int ih = image.getHeight(null);
 134.119 +
 134.120 +        if (paintType == PaintType.CENTER) {
 134.121 +            // Center the image
 134.122 +            g.drawImage(image, x + (w - iw) / 2,
 134.123 +                    y + (h - ih) / 2, null);
 134.124 +        } else if (paintType == PaintType.TILE) {
 134.125 +            // Tile the image
 134.126 +            int lastIY = 0;
 134.127 +            for (int yCounter = y, maxY = y + h; yCounter < maxY;
 134.128 +                 yCounter += (ih - lastIY), lastIY = 0) {
 134.129 +                int lastIX = 0;
 134.130 +                for (int xCounter = x, maxX = x + w; xCounter < maxX;
 134.131 +                     xCounter += (iw - lastIX), lastIX = 0) {
 134.132 +                    int dx2 = Math.min(maxX, xCounter + iw - lastIX);
 134.133 +                    int dy2 = Math.min(maxY, yCounter + ih - lastIY);
 134.134 +                    g.drawImage(image, xCounter, yCounter, dx2, dy2,
 134.135 +                            lastIX, lastIY, lastIX + dx2 - xCounter,
 134.136 +                            lastIY + dy2 - yCounter, null);
 134.137 +                }
 134.138 +            }
 134.139 +        } else {
 134.140 +            int st = sInsets.top;
 134.141 +            int sl = sInsets.left;
 134.142 +            int sb = sInsets.bottom;
 134.143 +            int sr = sInsets.right;
 134.144 +
 134.145 +            int dt = dInsets.top;
 134.146 +            int dl = dInsets.left;
 134.147 +            int db = dInsets.bottom;
 134.148 +            int dr = dInsets.right;
 134.149 +
 134.150 +            // Constrain the insets to the size of the image
 134.151 +            if (st + sb > ih) {
 134.152 +                db = dt = sb = st = Math.max(0, ih / 2);
 134.153 +            }
 134.154 +            if (sl + sr > iw) {
 134.155 +                dl = dr = sl = sr = Math.max(0, iw / 2);
 134.156 +            }
 134.157 +
 134.158 +            // Constrain the insets to the size of the region we're painting
 134.159 +            // in.
 134.160 +            if (dt + db > h) {
 134.161 +                dt = db = Math.max(0, h / 2 - 1);
 134.162 +            }
 134.163 +            if (dl + dr > w) {
 134.164 +                dl = dr = Math.max(0, w / 2 - 1);
 134.165 +            }
 134.166 +
 134.167 +            boolean stretch = (paintType == PaintType.PAINT9_STRETCH);
 134.168 +            if ((mask & PAINT_ALL) != 0) {
 134.169 +                mask = (PAINT_ALL - 1) & ~mask;
 134.170 +            }
 134.171 +
 134.172 +            if ((mask & PAINT_LEFT) != 0) {
 134.173 +                drawChunk(image, g, stretch, x, y + dt, x + dl, y + h - db,
 134.174 +                        0, st, sl, ih - sb, false);
 134.175 +            }
 134.176 +            if ((mask & PAINT_TOP_LEFT) != 0) {
 134.177 +                drawImage(image, g, x, y, x + dl, y + dt,
 134.178 +                        0, 0, sl, st);
 134.179 +            }
 134.180 +            if ((mask & PAINT_TOP) != 0) {
 134.181 +                drawChunk(image, g, stretch, x + dl, y, x + w - dr, y + dt,
 134.182 +                        sl, 0, iw - sr, st, true);
 134.183 +            }
 134.184 +            if ((mask & PAINT_TOP_RIGHT) != 0) {
 134.185 +                drawImage(image, g, x + w - dr, y, x + w, y + dt,
 134.186 +                        iw - sr, 0, iw, st);
 134.187 +            }
 134.188 +            if ((mask & PAINT_RIGHT) != 0) {
 134.189 +                drawChunk(image, g, stretch,
 134.190 +                        x + w - dr, y + dt, x + w, y + h - db,
 134.191 +                        iw - sr, st, iw, ih - sb, false);
 134.192 +            }
 134.193 +            if ((mask & PAINT_BOTTOM_RIGHT) != 0) {
 134.194 +                drawImage(image, g, x + w - dr, y + h - db, x + w, y + h,
 134.195 +                        iw - sr, ih - sb, iw, ih);
 134.196 +            }
 134.197 +            if ((mask & PAINT_BOTTOM) != 0) {
 134.198 +                drawChunk(image, g, stretch,
 134.199 +                        x + dl, y + h - db, x + w - dr, y + h,
 134.200 +                        sl, ih - sb, iw - sr, ih, true);
 134.201 +            }
 134.202 +            if ((mask & PAINT_BOTTOM_LEFT) != 0) {
 134.203 +                drawImage(image, g, x, y + h - db, x + dl, y + h,
 134.204 +                        0, ih - sb, sl, ih);
 134.205 +            }
 134.206 +            if ((mask & PAINT_CENTER) != 0) {
 134.207 +                drawImage(image, g, x + dl, y + dt, x + w - dr, y + h - db,
 134.208 +                        sl, st, iw - sr, ih - sb);
 134.209 +            }
 134.210 +        }
 134.211 +    }
 134.212 +
 134.213 +    /**
 134.214 +     * Draws a portion of an image, stretched or tiled.
 134.215 +     *
 134.216 +     * @param image Image to render.
 134.217 +     * @param g Graphics to render to
 134.218 +     * @param stretch Whether the image should be stretched or timed in the
 134.219 +     *                provided space.
 134.220 +     * @param dx1 X origin to draw to
 134.221 +     * @param dy1 Y origin to draw to
 134.222 +     * @param dx2 End x location to draw to
 134.223 +     * @param dy2 End y location to draw to
 134.224 +     * @param sx1 X origin to draw from
 134.225 +     * @param sy1 Y origin to draw from
 134.226 +     * @param sx2 Max x location to draw from
 134.227 +     * @param sy2 Max y location to draw from
 134.228 +     * @param xDirection Used if the image is not stretched. If true it
 134.229 +     *        indicates the image should be tiled along the x axis.
 134.230 +     */
 134.231 +    private static void drawChunk(Image image, Graphics g, boolean stretch,
 134.232 +                           int dx1, int dy1, int dx2, int dy2, int sx1,
 134.233 +                           int sy1, int sx2, int sy2,
 134.234 +                           boolean xDirection) {
 134.235 +        if (dx2 - dx1 <= 0 || dy2 - dy1 <= 0 || sx2 - sx1 <= 0 ||
 134.236 +                              sy2 - sy1 <= 0) {
 134.237 +            // Bogus location, nothing to paint
 134.238 +            return;
 134.239 +        }
 134.240 +        if (stretch) {
 134.241 +            g.drawImage(image, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, null);
 134.242 +        }
 134.243 +        else {
 134.244 +            int xSize = sx2 - sx1;
 134.245 +            int ySize = sy2 - sy1;
 134.246 +            int deltaX;
 134.247 +            int deltaY;
 134.248 +
 134.249 +            if (xDirection) {
 134.250 +                deltaX = xSize;
 134.251 +                deltaY = 0;
 134.252 +            }
 134.253 +            else {
 134.254 +                deltaX = 0;
 134.255 +                deltaY = ySize;
 134.256 +            }
 134.257 +            while (dx1 < dx2 && dy1 < dy2) {
 134.258 +                int newDX2 = Math.min(dx2, dx1 + xSize);
 134.259 +                int newDY2 = Math.min(dy2, dy1 + ySize);
 134.260 +
 134.261 +                g.drawImage(image, dx1, dy1, newDX2, newDY2,
 134.262 +                            sx1, sy1, sx1 + newDX2 - dx1,
 134.263 +                            sy1 + newDY2 - dy1, null);
 134.264 +                dx1 += deltaX;
 134.265 +                dy1 += deltaY;
 134.266 +            }
 134.267 +        }
 134.268 +    }
 134.269 +
 134.270 +    private static void drawImage(Image image, Graphics g,
 134.271 +                           int dx1, int dy1, int dx2, int dy2, int sx1,
 134.272 +                           int sy1, int sx2, int sy2) {
 134.273 +        // PENDING: is this necessary, will G2D do it for me?
 134.274 +        if (dx2 - dx1 <= 0 || dy2 - dy1 <= 0 || sx2 - sx1 <= 0 ||
 134.275 +                sy2 - sy1 <= 0) {
 134.276 +            // Bogus location, nothing to paint
 134.277 +            return;
 134.278 +        }
 134.279 +        g.drawImage(image, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, null);
 134.280 +    }
 134.281 +
 134.282 +
 134.283 +}
   135.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   135.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/InnerGlowEffect.java	Wed Apr 29 00:27:46 2009 -0700
   135.3 @@ -0,0 +1,39 @@
   135.4 +/*
   135.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
   135.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   135.7 + *
   135.8 + * This code is free software; you can redistribute it and/or modify it
   135.9 + * under the terms of the GNU General Public License version 2 only, as
  135.10 + * published by the Free Software Foundation.  Sun designates this
  135.11 + * particular file as subject to the "Classpath" exception as provided
  135.12 + * by Sun in the LICENSE file that accompanied this code.
  135.13 + *
  135.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  135.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  135.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  135.17 + * version 2 for more details (a copy is included in the LICENSE file that
  135.18 + * accompanied this code).
  135.19 + *
  135.20 + * You should have received a copy of the GNU General Public License version
  135.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  135.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  135.23 + *
  135.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  135.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  135.26 + * have any questions.
  135.27 + */
  135.28 +package javax.swing.plaf.nimbus;
  135.29 +
  135.30 +import java.awt.Color;
  135.31 +
  135.32 +/**
  135.33 + * InnerGlowEffect
  135.34 + *
  135.35 + * @author Created by Jasper Potts (Jun 21, 2007)
  135.36 + */
  135.37 +class InnerGlowEffect extends InnerShadowEffect {
  135.38 +    InnerGlowEffect() {
  135.39 +        distance = 0;
  135.40 +        color = new Color(255, 255, 211);
  135.41 +    }
  135.42 +}
   136.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   136.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/InnerShadowEffect.java	Wed Apr 29 00:27:46 2009 -0700
   136.3 @@ -0,0 +1,131 @@
   136.4 +/*
   136.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
   136.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   136.7 + *
   136.8 + * This code is free software; you can redistribute it and/or modify it
   136.9 + * under the terms of the GNU General Public License version 2 only, as
  136.10 + * published by the Free Software Foundation.  Sun designates this
  136.11 + * particular file as subject to the "Classpath" exception as provided
  136.12 + * by Sun in the LICENSE file that accompanied this code.
  136.13 + *
  136.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  136.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  136.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  136.17 + * version 2 for more details (a copy is included in the LICENSE file that
  136.18 + * accompanied this code).
  136.19 + *
  136.20 + * You should have received a copy of the GNU General Public License version
  136.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  136.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  136.23 + *
  136.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  136.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  136.26 + * have any questions.
  136.27 + */
  136.28 +package javax.swing.plaf.nimbus;
  136.29 +
  136.30 +import java.awt.image.BufferedImage;
  136.31 +import java.awt.image.Raster;
  136.32 +import java.awt.image.WritableRaster;
  136.33 +import java.util.Arrays;
  136.34 +
  136.35 +/**
  136.36 + * InnerShadowEffect - This effect currently only works with ARGB type buffered
  136.37 + * images.
  136.38 + *
  136.39 + * @author Created by Jasper Potts (Jun 18, 2007)
  136.40 + */
  136.41 +class InnerShadowEffect extends ShadowEffect {
  136.42 +
  136.43 +    // =================================================================================================================
  136.44 +    // Effect Methods
  136.45 +
  136.46 +    /**
  136.47 +     * Get the type of this effect, one of UNDER,BLENDED,OVER. UNDER means the result of apply effect should be painted
  136.48 +     * under the src image. BLENDED means the result of apply sffect contains a modified src image so just it should be
  136.49 +     * painted. OVER means the result of apply effect should be painted over the src image.
  136.50 +     *
  136.51 +     * @return The effect type
  136.52 +     */
  136.53 +    Effect.EffectType getEffectType() {
  136.54 +        return Effect.EffectType.OVER;
  136.55 +    }
  136.56 +
  136.57 +    /**
  136.58 +     * Apply the effect to the src image generating the result . The result image may or may not contain the source
  136.59 +     * image depending on what the effect type is.
  136.60 +     *
  136.61 +     * @param src The source image for applying the effect to
  136.62 +     * @param dst The dstination image to paint effect result into. If this is null then a new image will be created
  136.63 +     * @param w   The width of the src image to apply effect to, this allow the src and dst buffers to be bigger than
  136.64 +     *            the area the need effect applied to it
  136.65 +     * @param h   The height of the src image to apply effect to, this allow the src and dst buffers to be bigger than
  136.66 +     *            the area the need effect applied to it
  136.67 +     * @return Image with the result of the effect
  136.68 +     */
  136.69 +    BufferedImage applyEffect(BufferedImage src, BufferedImage dst, int w, int h) {
  136.70 +        if (src == null || src.getType() != BufferedImage.TYPE_INT_ARGB){
  136.71 +            throw new IllegalArgumentException("Effect only works with " +
  136.72 +                    "source images of type BufferedImage.TYPE_INT_ARGB.");
  136.73 +        }
  136.74 +        if (dst != null && dst.getType() != BufferedImage.TYPE_INT_ARGB){
  136.75 +            throw new IllegalArgumentException("Effect only works with " +
  136.76 +                    "destination images of type BufferedImage.TYPE_INT_ARGB.");
  136.77 +        }
  136.78 +        // calculate offset
  136.79 +        double trangleAngle = Math.toRadians(angle - 90);
  136.80 +        int offsetX = (int) (Math.sin(trangleAngle) * distance);
  136.81 +        int offsetY = (int) (Math.cos(trangleAngle) * distance);
  136.82 +        // clac expanded size
  136.83 +        int tmpOffX = offsetX + size;
  136.84 +        int tmpOffY = offsetX + size;
  136.85 +        int tmpW = w + offsetX + size + size;
  136.86 +        int tmpH = h + offsetX + size;
  136.87 +        // create tmp buffers
  136.88 +        int[] lineBuf = getArrayCache().getTmpIntArray(w);
  136.89 +        byte[] srcAlphaBuf = getArrayCache().getTmpByteArray1(tmpW * tmpH);
  136.90 +        Arrays.fill(srcAlphaBuf, (byte) 0xFF);
  136.91 +        byte[] tmpBuf1 = getArrayCache().getTmpByteArray2(tmpW * tmpH);
  136.92 +        byte[] tmpBuf2 = getArrayCache().getTmpByteArray3(tmpW * tmpH);
  136.93 +        // extract src image alpha channel and inverse and offset
  136.94 +        Raster srcRaster = src.getRaster();
  136.95 +        for (int y = 0; y < h; y++) {
  136.96 +            int dy = (y + tmpOffY);
  136.97 +            int offset = dy * tmpW;
  136.98 +            srcRaster.getDataElements(0, y, w, 1, lineBuf);
  136.99 +            for (int x = 0; x < w; x++) {
 136.100 +                int dx = x + tmpOffX;
 136.101 +                srcAlphaBuf[offset + dx] = (byte) ((255 - ((lineBuf[x] & 0xFF000000) >>> 24)) & 0xFF);
 136.102 +            }
 136.103 +        }
 136.104 +        // blur
 136.105 +        float[] kernel = EffectUtils.createGaussianKernel(size * 2);
 136.106 +        EffectUtils.blur(srcAlphaBuf, tmpBuf2, tmpW, tmpH, kernel, size * 2); // horizontal pass
 136.107 +        EffectUtils.blur(tmpBuf2, tmpBuf1, tmpH, tmpW, kernel, size * 2);// vertical pass
 136.108 +        //rescale
 136.109 +        float spread = Math.min(1 / (1 - (0.01f * this.spread)), 255);
 136.110 +        for (int i = 0; i < tmpBuf1.length; i++) {
 136.111 +            int val = (int) (((int) tmpBuf1[i] & 0xFF) * spread);
 136.112 +            tmpBuf1[i] = (val > 255) ? (byte) 0xFF : (byte) val;
 136.113 +        }
 136.114 +        // create color image with shadow color and greyscale image as alpha
 136.115 +        if (dst == null) dst = new BufferedImage(w, h,
 136.116 +                BufferedImage.TYPE_INT_ARGB);
 136.117 +        WritableRaster shadowRaster = dst.getRaster();
 136.118 +        int red = color.getRed(), green = color.getGreen(), blue = color.getBlue();
 136.119 +        for (int y = 0; y < h; y++) {
 136.120 +            int srcY = y + tmpOffY;
 136.121 +            int offset = srcY * tmpW;
 136.122 +            int shadowOffset = (srcY - offsetY) * tmpW;
 136.123 +            for (int x = 0; x < w; x++) {
 136.124 +                int srcX = x + tmpOffX;
 136.125 +                int origianlAlphaVal = 255 - ((int) srcAlphaBuf[offset + srcX] & 0xFF);
 136.126 +                int shadowVal = (int) tmpBuf1[shadowOffset + (srcX - offsetX)] & 0xFF;
 136.127 +                int alphaVal = Math.min(origianlAlphaVal, shadowVal);
 136.128 +                lineBuf[x] = ((byte) alphaVal & 0xFF) << 24 | red << 16 | green << 8 | blue;
 136.129 +            }
 136.130 +            shadowRaster.setDataElements(0, y, w, 1, lineBuf);
 136.131 +        }
 136.132 +        return dst;
 136.133 +    }
 136.134 +}
   137.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   137.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/LoweredBorder.java	Wed Apr 29 00:27:46 2009 -0700
   137.3 @@ -0,0 +1,201 @@
   137.4 +/*
   137.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
   137.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   137.7 + *
   137.8 + * This code is free software; you can redistribute it and/or modify it
   137.9 + * under the terms of the GNU General Public License version 2 only, as
  137.10 + * published by the Free Software Foundation.  Sun designates this
  137.11 + * particular file as subject to the "Classpath" exception as provided
  137.12 + * by Sun in the LICENSE file that accompanied this code.
  137.13 + *
  137.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  137.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  137.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  137.17 + * version 2 for more details (a copy is included in the LICENSE file that
  137.18 + * accompanied this code).
  137.19 + *
  137.20 + * You should have received a copy of the GNU General Public License version
  137.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  137.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  137.23 + *
  137.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  137.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  137.26 + * have any questions.
  137.27 + */
  137.28 +package javax.swing.plaf.nimbus;
  137.29 +
  137.30 +import javax.swing.border.Border;
  137.31 +import javax.swing.JComponent;
  137.32 +import javax.swing.plaf.UIResource;
  137.33 +import java.awt.Insets;
  137.34 +import java.awt.Component;
  137.35 +import java.awt.Graphics;
  137.36 +import java.awt.Graphics2D;
  137.37 +import java.awt.Color;
  137.38 +import java.awt.Transparency;
  137.39 +import java.awt.RenderingHints;
  137.40 +import java.awt.Dimension;
  137.41 +import java.awt.image.BufferedImage;
  137.42 +
  137.43 +/**
  137.44 + * LoweredBorder - A recessed rounded inner shadowed border. Used as the
  137.45 + * standard Nimbus TitledBorder. This class is both a painter and a swing
  137.46 + * border.
  137.47 + *
  137.48 + * @author Jasper Potts
  137.49 + */
  137.50 +class LoweredBorder extends AbstractRegionPainter implements Border {
  137.51 +    private static final int IMG_SIZE = 30;
  137.52 +    private static final int RADIUS = 13;
  137.53 +    private static final Insets INSETS = new Insets(10,10,10,10);
  137.54 +    private static final PaintContext PAINT_CONTEXT = new PaintContext(INSETS,
  137.55 +            new Dimension(IMG_SIZE,IMG_SIZE),false,
  137.56 +            PaintContext.CacheMode.NINE_SQUARE_SCALE,
  137.57 +            Integer.MAX_VALUE, Integer.MAX_VALUE);
  137.58 +
  137.59 +    // =========================================================================
  137.60 +    // Painter Methods
  137.61 +
  137.62 +    @Override
  137.63 +    protected Object[] getExtendedCacheKeys(JComponent c) {
  137.64 +        return new Object[] {c.getBackground()};
  137.65 +    }
  137.66 +
  137.67 +    /**
  137.68 +     * Actually performs the painting operation. Subclasses must implement this
  137.69 +     * method. The graphics object passed may represent the actual surface being
  137.70 +     * rendererd to, or it may be an intermediate buffer. It has also been
  137.71 +     * pre-translated. Simply render the component as if it were located at 0, 0
  137.72 +     * and had a width of <code>width</code> and a height of
  137.73 +     * <code>height</code>. For performance reasons, you may want to read the
  137.74 +     * clip from the Graphics2D object and only render within that space.
  137.75 +     *
  137.76 +     * @param g      The Graphics2D surface to paint to
  137.77 +     * @param c      The JComponent related to the drawing event. For example,
  137.78 +     *               if the region being rendered is Button, then <code>c</code>
  137.79 +     *               will be a JButton. If the region being drawn is
  137.80 +     *               ScrollBarSlider, then the component will be JScrollBar.
  137.81 +     *               This value may be null.
  137.82 +     * @param width  The width of the region to paint. Note that in the case of
  137.83 +     *               painting the foreground, this value may differ from
  137.84 +     *               c.getWidth().
  137.85 +     * @param height The height of the region to paint. Note that in the case of
  137.86 +     *               painting the foreground, this value may differ from
  137.87 +     *               c.getHeight().
  137.88 +     */
  137.89 +    protected void doPaint(Graphics2D g, JComponent c, int width, int height,
  137.90 +            Object[] extendedCacheKeys) {
  137.91 +        BufferedImage img1 = new BufferedImage(IMG_SIZE,IMG_SIZE,
  137.92 +                    BufferedImage.TYPE_INT_ARGB);
  137.93 +        BufferedImage img2 = new BufferedImage(IMG_SIZE,IMG_SIZE,
  137.94 +                    BufferedImage.TYPE_INT_ARGB);
  137.95 +        // draw shadow shape
  137.96 +        Graphics2D g2 = (Graphics2D)img1.getGraphics();
  137.97 +        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
  137.98 +                RenderingHints.VALUE_ANTIALIAS_ON);
  137.99 +        g2.setColor(c.getBackground());
 137.100 +        g2.fillRoundRect(2,0,26,26,RADIUS,RADIUS);
 137.101 +        g2.dispose();
 137.102 +        // draw shadow
 137.103 +        InnerShadowEffect effect = new InnerShadowEffect();
 137.104 +        effect.setDistance(1);
 137.105 +        effect.setSize(3);
 137.106 +        effect.setColor(getLighter(c.getBackground(),2.1f));
 137.107 +        effect.setAngle(90);
 137.108 +        effect.applyEffect(img1,img2,IMG_SIZE,IMG_SIZE);
 137.109 +        // draw outline to img2
 137.110 +        g2 = (Graphics2D)img2.getGraphics();
 137.111 +        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
 137.112 +                RenderingHints.VALUE_ANTIALIAS_ON);
 137.113 +        g2.setClip(0,28,IMG_SIZE,1);
 137.114 +        g2.setColor(getLighter(c.getBackground(),0.90f));
 137.115 +        g2.drawRoundRect(2,1,25,25,RADIUS,RADIUS);
 137.116 +        g2.dispose();
 137.117 +        // draw final image
 137.118 +        if (width != IMG_SIZE || height != IMG_SIZE){
 137.119 +            ImageScalingHelper.paint(g,0,0,width,height,img2, INSETS, INSETS,
 137.120 +                    ImageScalingHelper.PaintType.PAINT9_STRETCH,
 137.121 +                    ImageScalingHelper.PAINT_ALL);
 137.122 +        } else {
 137.123 +            g.drawImage(img2,0,0,c);
 137.124 +        }
 137.125 +        img1 = null;
 137.126 +        img2 = null;
 137.127 +    }
 137.128 +
 137.129 +    /**
 137.130 +     * <p>Gets the PaintContext for this painting operation. This method is
 137.131 +     * called on every paint, and so should be fast and produce no garbage. The
 137.132 +     * PaintContext contains information such as cache hints. It also contains
 137.133 +     * data necessary for decoding points at runtime, such as the stretching
 137.134 +     * insets, the canvas size at which the encoded points were defined, and
 137.135 +     * whether the stretching insets are inverted.</p>
 137.136 +     * <p/>
 137.137 +     * <p> This method allows for subclasses to package the painting of
 137.138 +     * different states with possibly different canvas sizes, etc, into one
 137.139 +     * AbstractRegionPainter implementation.</p>
 137.140 +     *
 137.141 +     * @return a PaintContext associated with this paint operation.
 137.142 +     */
 137.143 +    protected PaintContext getPaintContext() {
 137.144 +        return PAINT_CONTEXT;
 137.145 +    }
 137.146 +
 137.147 +    // =========================================================================
 137.148 +    // Border Methods
 137.149 +
 137.150 +    /**
 137.151 +     * Returns the insets of the border.
 137.152 +     *
 137.153 +     * @param c the component for which this border insets value applies
 137.154 +     */
 137.155 +    public Insets getBorderInsets(Component c) {
 137.156 +        return INSETS;
 137.157 +    }
 137.158 +
 137.159 +    /**
 137.160 +     * Returns whether or not the border is opaque.  If the border is opaque, it
 137.161 +     * is responsible for filling in it's own background when painting.
 137.162 +     */
 137.163 +    public boolean isBorderOpaque() {
 137.164 +        return false;
 137.165 +    }
 137.166 +
 137.167 +    /**
 137.168 +     * Paints the border for the specified component with the specified position
 137.169 +     * and size.
 137.170 +     *
 137.171 +     * @param c      the component for which this border is being painted
 137.172 +     * @param g      the paint graphics
 137.173 +     * @param x      the x position of the painted border
 137.174 +     * @param y      the y position of the painted border
 137.175 +     * @param width  the width of the painted border
 137.176 +     * @param height the height of the painted border
 137.177 +     */
 137.178 +    public void paintBorder(Component c, Graphics g, int x, int y, int width,
 137.179 +                            int height) {
 137.180 +        JComponent comp = (c instanceof JComponent)?(JComponent)c:null;
 137.181 +        if (g instanceof Graphics2D){
 137.182 +            Graphics2D g2 = (Graphics2D)g;
 137.183 +            g2.translate(x,y);
 137.184 +            paint(g2,comp, width, height);
 137.185 +            g2.translate(-x,-y);
 137.186 +        } else {
 137.187 +            BufferedImage img =  new BufferedImage(IMG_SIZE,IMG_SIZE,
 137.188 +                    BufferedImage.TYPE_INT_ARGB);
 137.189 +            Graphics2D g2 = (Graphics2D)img.getGraphics();
 137.190 +            paint(g2,comp, width, height);
 137.191 +            g2.dispose();
 137.192 +            ImageScalingHelper.paint(g,x,y,width,height,img,INSETS, INSETS,
 137.193 +                    ImageScalingHelper.PaintType.PAINT9_STRETCH,
 137.194 +                    ImageScalingHelper.PAINT_ALL);
 137.195 +        }
 137.196 +    }
 137.197 +
 137.198 +    private Color getLighter(Color c, float factor){
 137.199 +        return new Color(Math.min((int)(c.getRed()/factor), 255),
 137.200 +                         Math.min((int)(c.getGreen()/factor), 255),
 137.201 +                         Math.min((int)(c.getBlue()/factor), 255));
 137.202 +    }
 137.203 +}
 137.204 +
   138.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   138.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/NimbusIcon.java	Wed Apr 29 00:27:46 2009 -0700
   138.3 @@ -0,0 +1,223 @@
   138.4 +/*
   138.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
   138.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   138.7 + *
   138.8 + * This code is free software; you can redistribute it and/or modify it
   138.9 + * under the terms of the GNU General Public License version 2 only, as
  138.10 + * published by the Free Software Foundation.  Sun designates this
  138.11 + * particular file as subject to the "Classpath" exception as provided
  138.12 + * by Sun in the LICENSE file that accompanied this code.
  138.13 + *
  138.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  138.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  138.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  138.17 + * version 2 for more details (a copy is included in the LICENSE file that
  138.18 + * accompanied this code).
  138.19 + *
  138.20 + * You should have received a copy of the GNU General Public License version
  138.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  138.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  138.23 + *
  138.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  138.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  138.26 + * have any questions.
  138.27 + */
  138.28 +package javax.swing.plaf.nimbus;
  138.29 +
  138.30 +import javax.swing.Painter;
  138.31 +import sun.swing.plaf.synth.SynthIcon;
  138.32 +
  138.33 +import javax.swing.plaf.synth.SynthContext;
  138.34 +import javax.swing.*;
  138.35 +import java.awt.*;
  138.36 +import java.awt.image.BufferedImage;
  138.37 +import javax.swing.plaf.UIResource;
  138.38 +
  138.39 +/**
  138.40 + * An icon that delegates to a painter.
  138.41 + * @author rbair
  138.42 + */
  138.43 +class NimbusIcon extends SynthIcon {
  138.44 +    private int width;
  138.45 +    private int height;
  138.46 +    private String prefix;
  138.47 +    private String key;
  138.48 +
  138.49 +    NimbusIcon(String prefix, String key, int w, int h) {
  138.50 +        this.width = w;
  138.51 +        this.height = h;
  138.52 +        this.prefix = prefix;
  138.53 +        this.key = key;
  138.54 +    }
  138.55 +
  138.56 +    @Override
  138.57 +    public void paintIcon(SynthContext context, Graphics g, int x, int y,
  138.58 +                          int w, int h) {
  138.59 +        Painter painter = null;
  138.60 +        if (context != null) {
  138.61 +            painter = (Painter)context.getStyle().get(context, key);
  138.62 +        }
  138.63 +        if (painter == null){
  138.64 +            painter = (Painter) UIManager.get(prefix + "[Enabled]." + key);
  138.65 +        }
  138.66 +
  138.67 +        if (painter != null && context != null) {
  138.68 +            JComponent c = context.getComponent();
  138.69 +            boolean rotate = false;
  138.70 +            boolean flip = false;
  138.71 +            //translatex and translatey are additional translations that
  138.72 +            //must occur on the graphics context when rendering a toolbar
  138.73 +            //icon
  138.74 +            int translatex = 0;
  138.75 +            int translatey = 0;
  138.76 +            if (c instanceof JToolBar) {
  138.77 +                JToolBar toolbar = (JToolBar)c;
  138.78 +                rotate = toolbar.getOrientation() == JToolBar.VERTICAL;
  138.79 +                flip = !toolbar.getComponentOrientation().isLeftToRight();
  138.80 +                Object o = NimbusLookAndFeel.resolveToolbarConstraint(toolbar);
  138.81 +                //we only do the +1 hack for UIResource borders, assuming
  138.82 +                //that the border is probably going to be our border
  138.83 +                if (toolbar.getBorder() instanceof UIResource) {
  138.84 +                    if (o == BorderLayout.SOUTH) {
  138.85 +                        translatey = 1;
  138.86 +                    } else if (o == BorderLayout.EAST) {
  138.87 +                        translatex = 1;
  138.88 +                    }
  138.89 +                }
  138.90 +            }
  138.91 +            if (g instanceof Graphics2D){
  138.92 +                Graphics2D gfx = (Graphics2D)g;
  138.93 +                gfx.translate(x, y);
  138.94 +                gfx.translate(translatex, translatey);
  138.95 +                if (rotate) {
  138.96 +                    gfx.rotate(Math.toRadians(90));
  138.97 +                    gfx.translate(0, -w);
  138.98 +                    painter.paint(gfx, context.getComponent(), h, w);
  138.99 +                    gfx.translate(0, w);
 138.100 +                    gfx.rotate(Math.toRadians(-90));
 138.101 +                } else if (flip){
 138.102 +                    gfx.scale(-1, 1);
 138.103 +                    gfx.translate(-w,0);
 138.104 +                    painter.paint(gfx, context.getComponent(), w, h);
 138.105 +                    gfx.translate(w,0);
 138.106 +                    gfx.scale(-1, 1);
 138.107 +                } else {
 138.108 +                    painter.paint(gfx, context.getComponent(), w, h);
 138.109 +                }
 138.110 +                gfx.translate(-translatex, -translatey);
 138.111 +                gfx.translate(-x, -y);
 138.112 +            } else {
 138.113 +                // use image if we are printing to a Java 1.1 PrintGraphics as
 138.114 +                // it is not a instance of Graphics2D
 138.115 +                BufferedImage img = new BufferedImage(w,h,
 138.116 +                        BufferedImage.TYPE_INT_ARGB);
 138.117 +                Graphics2D gfx = img.createGraphics();
 138.118 +                if (rotate) {
 138.119 +                    gfx.rotate(Math.toRadians(90));
 138.120 +                    gfx.translate(0, -w);
 138.121 +                    painter.paint(gfx, context.getComponent(), h, w);
 138.122 +                } else if (flip){
 138.123 +                    gfx.scale(-1, 1);
 138.124 +                    gfx.translate(-w,0);
 138.125 +                    painter.paint(gfx, context.getComponent(), w, h);
 138.126 +                } else {
 138.127 +                    painter.paint(gfx, context.getComponent(), w, h);
 138.128 +                }
 138.129 +                gfx.dispose();
 138.130 +                g.drawImage(img,x,y,null);
 138.131 +                img = null;
 138.132 +            }
 138.133 +        }
 138.134 +    }
 138.135 +
 138.136 +    /**
 138.137 +     * Implements the standard Icon interface's paintIcon method as the standard
 138.138 +     * synth stub passes null for the context and this will cause us to not
 138.139 +     * paint any thing, so we override here so that we can paint the enabled
 138.140 +     * state if no synth context is available
 138.141 +     */
 138.142 +    @Override
 138.143 +    public void paintIcon(Component c, Graphics g, int x, int y) {
 138.144 +        Painter painter = (Painter)UIManager.get(prefix + "[Enabled]." + key);
 138.145 +        if (painter != null){
 138.146 +            JComponent jc = (c instanceof JComponent) ? (JComponent)c : null;
 138.147 +            Graphics2D gfx = (Graphics2D)g;
 138.148 +            gfx.translate(x, y);
 138.149 +            painter.paint(gfx, jc , width, height);
 138.150 +            gfx.translate(-x, -y);
 138.151 +        }
 138.152 +    }
 138.153 +
 138.154 +    @Override
 138.155 +    public int getIconWidth(SynthContext context) {
 138.156 +        if (context == null) {
 138.157 +            return width;
 138.158 +        }
 138.159 +        JComponent c = context.getComponent();
 138.160 +        if (c instanceof JToolBar && ((JToolBar)c).getOrientation() == JToolBar.VERTICAL) {
 138.161 +            //we only do the -1 hack for UIResource borders, assuming
 138.162 +            //that the border is probably going to be our border
 138.163 +            if (c.getBorder() instanceof UIResource) {
 138.164 +                return c.getWidth() - 1;
 138.165 +            } else {
 138.166 +                return c.getWidth();
 138.167 +            }
 138.168 +        } else {
 138.169 +            return scale(context, width);
 138.170 +        }
 138.171 +    }
 138.172 +
 138.173 +    @Override
 138.174 +    public int getIconHeight(SynthContext context) {
 138.175 +        if (context == null) {
 138.176 +            return height;
 138.177 +        }
 138.178 +        JComponent c = context.getComponent();
 138.179 +        if (c instanceof JToolBar){
 138.180 +            JToolBar toolbar = (JToolBar)c;
 138.181 +            if (toolbar.getOrientation() == JToolBar.HORIZONTAL) {
 138.182 +                //we only do the -1 hack for UIResource borders, assuming
 138.183 +                //that the border is probably going to be our border
 138.184 +                if (toolbar.getBorder() instanceof UIResource) {
 138.185 +                    return c.getHeight() - 1;
 138.186 +                } else {
 138.187 +                    return c.getHeight();
 138.188 +                }
 138.189 +            } else {
 138.190 +                return scale(context, width);
 138.191 +            }
 138.192 +        } else {
 138.193 +            return scale(context, height);
 138.194 +        }
 138.195 +    }
 138.196 +
 138.197 +    /**
 138.198 +     * Scale a size based on the "JComponent.sizeVariant" client property of the
 138.199 +     * component that is using this icon
 138.200 +     *
 138.201 +     * @param context The synthContext to get the component from
 138.202 +     * @param size The size to scale
 138.203 +     * @return The scaled size or original if "JComponent.sizeVariant" is not
 138.204 +     *          set
 138.205 +     */
 138.206 +    private int scale(SynthContext context, int size) {
 138.207 +        if (context == null || context.getComponent() == null){
 138.208 +            return size;
 138.209 +        }
 138.210 +        // The key "JComponent.sizeVariant" is used to match Apple's LAF
 138.211 +        String scaleKey = (String) context.getComponent().getClientProperty(
 138.212 +                "JComponent.sizeVariant");
 138.213 +        if (scaleKey != null) {
 138.214 +            if (NimbusStyle.LARGE_KEY.equals(scaleKey)) {
 138.215 +                size *= NimbusStyle.LARGE_SCALE;
 138.216 +            } else if (NimbusStyle.SMALL_KEY.equals(scaleKey)) {
 138.217 +                size *= NimbusStyle.SMALL_SCALE;
 138.218 +            } else if (NimbusStyle.MINI_KEY.equals(scaleKey)) {
 138.219 +                // mini is not quite as small for icons as full mini is
 138.220 +                // just too tiny
 138.221 +                size *= NimbusStyle.MINI_SCALE + 0.07;
 138.222 +            }
 138.223 +        }
 138.224 +        return size;
 138.225 +    }
 138.226 +}
   139.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   139.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/NimbusLookAndFeel.java	Wed Apr 29 00:27:46 2009 -0700
   139.3 @@ -0,0 +1,520 @@
   139.4 +/*
   139.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
   139.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   139.7 + *
   139.8 + * This code is free software; you can redistribute it and/or modify it
   139.9 + * under the terms of the GNU General Public License version 2 only, as
  139.10 + * published by the Free Software Foundation.  Sun designates this
  139.11 + * particular file as subject to the "Classpath" exception as provided
  139.12 + * by Sun in the LICENSE file that accompanied this code.
  139.13 + *
  139.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  139.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  139.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  139.17 + * version 2 for more details (a copy is included in the LICENSE file that
  139.18 + * accompanied this code).
  139.19 + *
  139.20 + * You should have received a copy of the GNU General Public License version
  139.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  139.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  139.23 + *
  139.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  139.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  139.26 + * have any questions.
  139.27 + */
  139.28 +package javax.swing.plaf.nimbus;
  139.29 +
  139.30 +import java.awt.BorderLayout;
  139.31 +import static java.awt.BorderLayout.*;
  139.32 +import javax.swing.JComponent;
  139.33 +import javax.swing.UIDefaults;
  139.34 +import javax.swing.UIManager;
  139.35 +import javax.swing.plaf.synth.Region;
  139.36 +import javax.swing.plaf.synth.SynthLookAndFeel;
  139.37 +import javax.swing.plaf.synth.SynthStyle;
  139.38 +import javax.swing.plaf.synth.SynthStyleFactory;
  139.39 +import javax.swing.plaf.UIResource;
  139.40 +import java.security.AccessController;
  139.41 +import java.awt.Color;
  139.42 +import java.awt.Container;
  139.43 +import java.awt.Graphics2D;
  139.44 +import java.awt.LayoutManager;
  139.45 +import java.awt.image.BufferedImage;
  139.46 +import javax.swing.GrayFilter;
  139.47 +import javax.swing.Icon;
  139.48 +import javax.swing.JToolBar;
  139.49 +import javax.swing.border.TitledBorder;
  139.50 +import javax.swing.plaf.BorderUIResource;
  139.51 +import javax.swing.plaf.ColorUIResource;
  139.52 +import sun.swing.ImageIconUIResource;
  139.53 +import sun.swing.plaf.synth.SynthIcon;
  139.54 +import sun.swing.plaf.GTKKeybindings;
  139.55 +import sun.swing.plaf.WindowsKeybindings;
  139.56 +import sun.security.action.GetPropertyAction;
  139.57 +
  139.58 +/**
  139.59 + * <p>The NimbusLookAndFeel class.</p>
  139.60 + *
  139.61 + * @author Jasper Potts
  139.62 + * @author Richard Bair
  139.63 + */
  139.64 +public class NimbusLookAndFeel extends SynthLookAndFeel {
  139.65 +
  139.66 +    /** Set of standard region names for UIDefaults Keys */
  139.67 +    private static final String[] COMPONENT_KEYS = new String[]{"ArrowButton", "Button",
  139.68 +                    "CheckBox", "CheckBoxMenuItem", "ColorChooser", "ComboBox",
  139.69 +                    "DesktopPane", "DesktopIcon", "EditorPane", "FileChooser",
  139.70 +                    "FormattedTextField", "InternalFrame",
  139.71 +                    "InternalFrameTitlePane", "Label", "List", "Menu",
  139.72 +                    "MenuBar", "MenuItem", "OptionPane", "Panel",
  139.73 +                    "PasswordField", "PopupMenu", "PopupMenuSeparator",
  139.74 +                    "ProgressBar", "RadioButton", "RadioButtonMenuItem",
  139.75 +                    "RootPane", "ScrollBar", "ScrollBarTrack", "ScrollBarThumb",
  139.76 +                    "ScrollPane", "Separator", "Slider", "SliderTrack",
  139.77 +                    "SliderThumb", "Spinner", "SplitPane", "TabbedPane",
  139.78 +                    "Table", "TableHeader", "TextArea", "TextField", "TextPane",
  139.79 +                    "ToggleButton", "ToolBar", "ToolTip", "Tree", "Viewport"};
  139.80 +
  139.81 +    /**
  139.82 +     * A reference to the auto-generated file NimbusDefaults. This file contains
  139.83 +     * the default mappings and values for the look and feel as specified in the
  139.84 +     * visual designer.
  139.85 +     */
  139.86 +    private NimbusDefaults defaults;
  139.87 +
  139.88 +    /**
  139.89 +     * Reference to populated LAD uidefaults
  139.90 +     */
  139.91 +    private UIDefaults uiDefaults;
  139.92 +
  139.93 +    /**
  139.94 +     * Create a new NimbusLookAndFeel.
  139.95 +     */
  139.96 +    public NimbusLookAndFeel() {
  139.97 +        super();
  139.98 +        defaults = new NimbusDefaults();
  139.99 +    }
 139.100 +
 139.101 +    /** Called by UIManager when this look and feel is installed. */
 139.102 +    @Override public void initialize() {
 139.103 +        super.initialize();
 139.104 +        defaults.initialize();
 139.105 +        // create synth style factory
 139.106 +        setStyleFactory(new SynthStyleFactory() {
 139.107 +            @Override
 139.108 +            public SynthStyle getStyle(JComponent c, Region r) {
 139.109 +                return defaults.getStyle(c, r);
 139.110 +            }
 139.111 +        });
 139.112 +    }
 139.113 +
 139.114 +
 139.115 +    /** Called by UIManager when this look and feel is uninstalled. */
 139.116 +    @Override public void uninitialize() {
 139.117 +        super.uninitialize();
 139.118 +        defaults.uninitialize();
 139.119 +        // clear all cached images to free memory
 139.120 +        ImageCache.getInstance().flush();
 139.121 +        // remove the listeners and things installed by NimbusStyle
 139.122 +        NimbusStyle.uninitialize();
 139.123 +    }
 139.124 +
 139.125 +    /**
 139.126 +     * @inheritDoc
 139.127 +     */
 139.128 +    @Override public UIDefaults getDefaults() {
 139.129 +        if (uiDefaults == null){
 139.130 +            // Detect platform
 139.131 +            String osName = getSystemProperty("os.name");
 139.132 +            boolean isWindows = osName != null && osName.contains("Windows");
 139.133 +
 139.134 +            // We need to call super for basic's properties file.
 139.135 +            uiDefaults = super.getDefaults();
 139.136 +            defaults.initializeDefaults(uiDefaults);
 139.137 +
 139.138 +            // Install Keybindings
 139.139 +            if (isWindows) {
 139.140 +                WindowsKeybindings.installKeybindings(uiDefaults);
 139.141 +            } else {
 139.142 +                GTKKeybindings.installKeybindings(uiDefaults);
 139.143 +            }
 139.144 +
 139.145 +            // Add Titled Border
 139.146 +            uiDefaults.put("TitledBorder.titlePosition",
 139.147 +                    TitledBorder.ABOVE_TOP);
 139.148 +            uiDefaults.put("TitledBorder.border", new BorderUIResource(
 139.149 +                    new LoweredBorder()));
 139.150 +            uiDefaults.put("TitledBorder.titleColor",
 139.151 +                    getDerivedColor("text",0.0f,0.0f,0.23f,0,true));
 139.152 +            uiDefaults.put("TitledBorder.font",
 139.153 +                    new NimbusDefaults.DerivedFont("defaultFont",
 139.154 +                            1f, true, null));
 139.155 +
 139.156 +            // Choose Dialog button positions
 139.157 +            uiDefaults.put("OptionPane.isYesLast", !isWindows);
 139.158 +
 139.159 +            // Store Table ScrollPane Corner Component
 139.160 +            uiDefaults.put("Table.scrollPaneCornerComponent",
 139.161 +                    TableScrollPaneCorner.class);
 139.162 +
 139.163 +            // Setup the settings for ToolBarSeparator which is custom
 139.164 +            // installed for Nimbus
 139.165 +            uiDefaults.put("ToolBarSeparator[Enabled].backgroundPainter",
 139.166 +                    new ToolBarSeparatorPainter());
 139.167 +
 139.168 +            // Populate UIDefaults with a standard set of properties
 139.169 +            for (String componentKey : COMPONENT_KEYS) {
 139.170 +                String key = componentKey+".foreground";
 139.171 +                if (!uiDefaults.containsKey(key)){
 139.172 +                    uiDefaults.put(key,
 139.173 +                            new NimbusProperty(componentKey,"textForeground"));
 139.174 +                }
 139.175 +                key = componentKey+".background";
 139.176 +                if (!uiDefaults.containsKey(key)){
 139.177 +                    uiDefaults.put(key,
 139.178 +                            new NimbusProperty(componentKey,"background"));
 139.179 +                }
 139.180 +                key = componentKey+".font";
 139.181 +                if (!uiDefaults.containsKey(key)){
 139.182 +                    uiDefaults.put(key,
 139.183 +                            new NimbusProperty(componentKey,"font"));
 139.184 +                }
 139.185 +                key = componentKey+".disabledText";
 139.186 +                if (!uiDefaults.containsKey(key)){
 139.187 +                    uiDefaults.put(key,
 139.188 +                            new NimbusProperty(componentKey,"Disabled",
 139.189 +                                   "textForeground"));
 139.190 +                }
 139.191 +                key = componentKey+".disabled";
 139.192 +                if (!uiDefaults.containsKey(key)){
 139.193 +                    uiDefaults.put(key,
 139.194 +                            new NimbusProperty(componentKey,"Disabled",
 139.195 +                                    "background"));
 139.196 +                }
 139.197 +            }
 139.198 +
 139.199 +            // FileView icon keys are used by some applications, we don't have
 139.200 +            // a computer icon at the moment so using home icon for now
 139.201 +            uiDefaults.put("FileView.computerIcon",
 139.202 +                    new LinkProperty("FileChooser.homeFolderIcon"));
 139.203 +            uiDefaults.put("FileView.directoryIcon",
 139.204 +                    new LinkProperty("FileChooser.directoryIcon"));
 139.205 +            uiDefaults.put("FileView.fileIcon",
 139.206 +                    new LinkProperty("FileChooser.fileIcon"));
 139.207 +            uiDefaults.put("FileView.floppyDriveIcon",
 139.208 +                    new LinkProperty("FileChooser.floppyDriveIcon"));
 139.209 +            uiDefaults.put("FileView.hardDriveIcon",
 139.210 +                    new LinkProperty("FileChooser.hardDriveIcon"));
 139.211 +        }
 139.212 +        return uiDefaults;
 139.213 +    }
 139.214 +
 139.215 +    /**
 139.216 +     * Gets the style associated with the given component and region. This
 139.217 +     * will never return null. If an appropriate component and region cannot
 139.218 +     * be determined, then a default style is returned.
 139.219 +     *
 139.220 +     * @param c a non-null reference to a JComponent
 139.221 +     * @param r a non-null reference to the region of the component c
 139.222 +     * @return a non-null reference to a NimbusStyle.
 139.223 +     */
 139.224 +    public static NimbusStyle getStyle(JComponent c, Region r) {
 139.225 +        return (NimbusStyle)SynthLookAndFeel.getStyle(c, r);
 139.226 +    }
 139.227 +
 139.228 +    /**
 139.229 +     * Return a short string that identifies this look and feel. This
 139.230 +     * String will be the unquoted String "Nimbus".
 139.231 +     *
 139.232 +     * @return a short string identifying this look and feel.
 139.233 +     */
 139.234 +    @Override public String getName() {
 139.235 +        return "Nimbus";
 139.236 +    }
 139.237 +
 139.238 +    /**
 139.239 +     * Return a string that identifies this look and feel. This String will
 139.240 +     * be the unquoted String "Nimbus".
 139.241 +     *
 139.242 +     * @return a short string identifying this look and feel.
 139.243 +     */
 139.244 +    @Override public String getID() {
 139.245 +        return "Nimbus";
 139.246 +    }
 139.247 +
 139.248 +    /**
 139.249 +     * Returns a textual description of this look and feel.
 139.250 +     *
 139.251 +     * @return textual description of this look and feel.
 139.252 +     */
 139.253 +    @Override public String getDescription() {
 139.254 +        return "Nimbus Look and Feel";
 139.255 +    }
 139.256 +
 139.257 +    /**
 139.258 +     * @inheritDoc
 139.259 +     * @return true
 139.260 +     */
 139.261 +    @Override public boolean shouldUpdateStyleOnAncestorChanged() {
 139.262 +        return true;
 139.263 +    }
 139.264 +
 139.265 +    /**
 139.266 +     * <p>Registers a third party component with the NimbusLookAndFeel.</p>
 139.267 +     *
 139.268 +     * <p>Regions represent Components and areas within Components that act as
 139.269 +     * independent painting areas. Once registered with the NimbusLookAndFeel,
 139.270 +     * NimbusStyles for these Regions can be retrieved via the
 139.271 +     * <code>getStyle</code> method.</p>
 139.272 +     *
 139.273 +     * <p>The NimbusLookAndFeel uses a standard naming scheme for entries in the
 139.274 +     * UIDefaults table. The key for each property, state, painter, and other
 139.275 +     * default registered in UIDefaults for a specific Region will begin with
 139.276 +     * the specified <code>prefix</code></p>
 139.277 +     *
 139.278 +     * <p>For example, suppose I had a component named JFoo. Suppose I then registered
 139.279 +     * this component with the NimbusLookAndFeel in this manner:</p>
 139.280 +     *
 139.281 +     * <pre><code>
 139.282 +     *     laf.register(NimbusFooUI.FOO_REGION, "Foo");
 139.283 +     * </code></pre>
 139.284 +     *
 139.285 +     * <p>In this case, I could then register properties for this component with
 139.286 +     * UIDefaults in the following manner:</p>
 139.287 +     *
 139.288 +     * <pre><code>
 139.289 +     *     UIManager.put("Foo.background", new ColorUIResource(Color.BLACK));
 139.290 +     *     UIManager.put("Foo.Enabled.backgroundPainter", new FooBackgroundPainter());
 139.291 +     * </code></pre>
 139.292 +     *
 139.293 +     * <p>It is also possible to register a named component with Nimbus.
 139.294 +     * For example, suppose you wanted to style the background of a JPanel
 139.295 +     * named "MyPanel" differently from other JPanels. You could accomplish this
 139.296 +     * by doing the following:</p>
 139.297 +     *
 139.298 +     * <pre><code>
 139.299 +     *     laf.register(Region.PANEL, "\"MyPanel\"");
 139.300 +     *     UIManager.put("\"MyPanel\".background", new ColorUIResource(Color.RED));
 139.301 +     * </code></pre>
 139.302 +     *
 139.303 +     * @param region The Synth Region that is being registered. Such as Button, or
 139.304 +     *        ScrollBarThumb, or NimbusFooUI.FOO_REGION.
 139.305 +     * @param prefix The UIDefault prefix. For example, could be ComboBox, or if
 139.306 +     *        a named components, "MyComboBox", or even something like
 139.307 +     *        ToolBar."MyComboBox"."ComboBox.arrowButton"
 139.308 +     */
 139.309 +    public void register(Region region, String prefix) {
 139.310 +        defaults.register(region, prefix);
 139.311 +    }
 139.312 +
 139.313 +    /**
 139.314 +     * Simple utility method that reads system keys.
 139.315 +     */
 139.316 +    private String getSystemProperty(String key) {
 139.317 +        return AccessController.doPrivileged(new GetPropertyAction(key));
 139.318 +    }
 139.319 +
 139.320 +    @Override
 139.321 +    public Icon getDisabledIcon(JComponent component, Icon icon) {
 139.322 +        if (icon instanceof SynthIcon) {
 139.323 +            SynthIcon si = (SynthIcon)icon;
 139.324 +            BufferedImage img = EffectUtils.createCompatibleTranslucentImage(
 139.325 +                    si.getIconWidth(), si.getIconHeight());
 139.326 +            Graphics2D gfx = img.createGraphics();
 139.327 +            si.paintIcon(component, gfx, 0, 0);
 139.328 +            gfx.dispose();
 139.329 +            return new ImageIconUIResource(GrayFilter.createDisabledImage(img));
 139.330 +        } else {
 139.331 +            return super.getDisabledIcon(component, icon);
 139.332 +        }
 139.333 +    }
 139.334 +
 139.335 +    /**
 139.336 +     * Get a derived color, derived colors are shared instances and is color
 139.337 +     * value will change when its parent UIDefault color changes.
 139.338 +     *
 139.339 +     * @param uiDefaultParentName The parent UIDefault key
 139.340 +     * @param hOffset             The hue offset
 139.341 +     * @param sOffset             The saturation offset
 139.342 +     * @param bOffset             The brightness offset
 139.343 +     * @param aOffset             The alpha offset
 139.344 +     * @param uiResource          True if the derived color should be a
 139.345 +     *                            UIResource, false if it should not be
 139.346 +     * @return The stored derived color
 139.347 +     */
 139.348 +    public Color getDerivedColor(String uiDefaultParentName,
 139.349 +                                 float hOffset, float sOffset,
 139.350 +                                 float bOffset, int aOffset,
 139.351 +                                 boolean uiResource) {
 139.352 +        return defaults.getDerivedColor(uiDefaultParentName, hOffset, sOffset,
 139.353 +                bOffset, aOffset, uiResource);
 139.354 +    }
 139.355 +
 139.356 +    /**
 139.357 +     * Decodes and returns a color, which is derived from an offset between two
 139.358 +     * other colors.
 139.359 +     *
 139.360 +     * @param color1   The first color
 139.361 +     * @param color2   The second color
 139.362 +     * @param midPoint The offset between color 1 and color 2, a value of 0.0 is
 139.363 +     *                 color 1 and 1.0 is color 2;
 139.364 +     * @param uiResource True if the derived color should be a UIResource
 139.365 +     * @return The derived color
 139.366 +     */
 139.367 +    protected final Color getDerivedColor(Color color1, Color color2,
 139.368 +                                      float midPoint, boolean uiResource) {
 139.369 +        int argb = deriveARGB(color1, color2, midPoint);
 139.370 +        if (uiResource) {
 139.371 +            return new ColorUIResource(argb);
 139.372 +        } else {
 139.373 +            return new Color(argb);
 139.374 +        }
 139.375 +    }
 139.376 +
 139.377 +    /**
 139.378 +     * Decodes and returns a color, which is derived from a offset between two
 139.379 +     * other colors.
 139.380 +     *
 139.381 +     * @param color1   The first color
 139.382 +     * @param color2   The second color
 139.383 +     * @param midPoint The offset between color 1 and color 2, a value of 0.0 is
 139.384 +     *                 color 1 and 1.0 is color 2;
 139.385 +     * @return The derived color, which will be a UIResource
 139.386 +     */
 139.387 +    protected final Color getDerivedColor(Color color1, Color color2,
 139.388 +                                      float midPoint) {
 139.389 +        return getDerivedColor(color1, color2, midPoint, true);
 139.390 +    }
 139.391 +
 139.392 +    /**
 139.393 +     * Package private method which returns either BorderLayout.NORTH,
 139.394 +     * BorderLayout.SOUTH, BorderLayout.EAST, or BorderLayout.WEST depending
 139.395 +     * on the location of the toolbar in its parent. The toolbar might be
 139.396 +     * in PAGE_START, PAGE_END, CENTER, or some other position, but will be
 139.397 +     * resolved to either NORTH,SOUTH,EAST, or WEST based on where the toolbar
 139.398 +     * actually IS, with CENTER being NORTH.
 139.399 +     *
 139.400 +     * This code is used to determine where the border line should be drawn
 139.401 +     * by the custom toolbar states, and also used by NimbusIcon to determine
 139.402 +     * whether the handle icon needs to be shifted to look correct.
 139.403 +     *
 139.404 +     * Toollbars are unfortunately odd in the way these things are handled,
 139.405 +     * and so this code exists to unify the logic related to toolbars so it can
 139.406 +     * be shared among the static files such as NimbusIcon and generated files
 139.407 +     * such as the ToolBar state classes.
 139.408 +     */
 139.409 +    static Object resolveToolbarConstraint(JToolBar toolbar) {
 139.410 +        //NOTE: we don't worry about component orientation or PAGE_END etc
 139.411 +        //because the BasicToolBarUI always uses an absolute position of
 139.412 +        //NORTH/SOUTH/EAST/WEST.
 139.413 +        if (toolbar != null) {
 139.414 +            Container parent = toolbar.getParent();
 139.415 +            if (parent != null) {
 139.416 +                LayoutManager m = parent.getLayout();
 139.417 +                if (m instanceof BorderLayout) {
 139.418 +                    BorderLayout b = (BorderLayout)m;
 139.419 +                    Object con = b.getConstraints(toolbar);
 139.420 +                    if (con == SOUTH || con == EAST || con == WEST) {
 139.421 +                        return con;
 139.422 +                    }
 139.423 +                    return NORTH;
 139.424 +                }
 139.425 +            }
 139.426 +        }
 139.427 +        return NORTH;
 139.428 +    }
 139.429 +
 139.430 +    /**
 139.431 +     * Derives the ARGB value for a color based on an offset between two
 139.432 +     * other colors.
 139.433 +     *
 139.434 +     * @param color1   The first color
 139.435 +     * @param color2   The second color
 139.436 +     * @param midPoint The offset between color 1 and color 2, a value of 0.0 is
 139.437 +     *                 color 1 and 1.0 is color 2;
 139.438 +     * @return the ARGB value for a new color based on this derivation
 139.439 +     */
 139.440 +    static int deriveARGB(Color color1, Color color2, float midPoint) {
 139.441 +        int r = color1.getRed() +
 139.442 +                (int) ((color2.getRed() - color1.getRed()) * midPoint + 0.5f);
 139.443 +        int g = color1.getGreen() +
 139.444 +                (int) ((color2.getGreen() - color1.getGreen()) * midPoint +
 139.445 +                        0.5f);
 139.446 +        int b = color1.getBlue() +
 139.447 +                (int) ((color2.getBlue() - color1.getBlue()) * midPoint + 0.5f);
 139.448 +        int a = color1.getAlpha() +
 139.449 +                (int) ((color2.getAlpha() - color1.getAlpha()) * midPoint +
 139.450 +                        0.5f);
 139.451 +        return ((a & 0xFF) << 24) |
 139.452 +                ((r & 0xFF) << 16) |
 139.453 +                ((g & 0xFF) << 8) |
 139.454 +                (b & 0xFF);
 139.455 +    }
 139.456 +
 139.457 +    /**
 139.458 +     * Simple Symbolic Link style UIDefalts Property
 139.459 +     */
 139.460 +    private class LinkProperty implements UIDefaults.ActiveValue, UIResource{
 139.461 +        private String dstPropName;
 139.462 +
 139.463 +        private LinkProperty(String dstPropName) {
 139.464 +            this.dstPropName = dstPropName;
 139.465 +        }
 139.466 +
 139.467 +        @Override
 139.468 +        public Object createValue(UIDefaults table) {
 139.469 +            return UIManager.get(dstPropName);
 139.470 +        }
 139.471 +    }
 139.472 +
 139.473 +    /**
 139.474 +     * Nimbus Property that looks up Nimbus keys for standard key names. For
 139.475 +     * example "Button.background" --> "Button[Enabled].backgound"
 139.476 +     */
 139.477 +    private class NimbusProperty implements UIDefaults.ActiveValue, UIResource {
 139.478 +        private String prefix;
 139.479 +        private String state = null;
 139.480 +        private String suffix;
 139.481 +        private boolean isFont;
 139.482 +
 139.483 +        private NimbusProperty(String prefix, String suffix) {
 139.484 +            this.prefix = prefix;
 139.485 +            this.suffix = suffix;
 139.486 +            isFont = "font".equals(suffix);
 139.487 +        }
 139.488 +
 139.489 +        private NimbusProperty(String prefix, String state, String suffix) {
 139.490 +            this(prefix,suffix);
 139.491 +            this.state = state;
 139.492 +        }
 139.493 +
 139.494 +        /**
 139.495 +         * Creates the value retrieved from the <code>UIDefaults</code> table.
 139.496 +         * The object is created each time it is accessed.
 139.497 +         *
 139.498 +         * @param table a <code>UIDefaults</code> table
 139.499 +         * @return the created <code>Object</code>
 139.500 +         */
 139.501 +        @Override
 139.502 +        public Object createValue(UIDefaults table) {
 139.503 +            Object obj = null;
 139.504 +            // check specified state
 139.505 +            if (state!=null){
 139.506 +                obj = uiDefaults.get(prefix+"["+state+"]."+suffix);
 139.507 +            }
 139.508 +            // check enabled state
 139.509 +            if (obj==null){
 139.510 +                obj = uiDefaults.get(prefix+"[Enabled]."+suffix);
 139.511 +            }
 139.512 +            // check for defaults
 139.513 +            if (obj==null){
 139.514 +                if (isFont) {
 139.515 +                    obj = uiDefaults.get("defaultFont");
 139.516 +                } else {
 139.517 +                    obj = uiDefaults.get(suffix);
 139.518 +                }
 139.519 +            }
 139.520 +            return obj;
 139.521 +        }
 139.522 +    }
 139.523 +}
   140.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   140.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/NimbusStyle.java	Wed Apr 29 00:27:46 2009 -0700
   140.3 @@ -0,0 +1,1259 @@
   140.4 +/*
   140.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
   140.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   140.7 + *
   140.8 + * This code is free software; you can redistribute it and/or modify it
   140.9 + * under the terms of the GNU General Public License version 2 only, as
  140.10 + * published by the Free Software Foundation.  Sun designates this
  140.11 + * particular file as subject to the "Classpath" exception as provided
  140.12 + * by Sun in the LICENSE file that accompanied this code.
  140.13 + *
  140.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  140.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  140.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  140.17 + * version 2 for more details (a copy is included in the LICENSE file that
  140.18 + * accompanied this code).
  140.19 + *
  140.20 + * You should have received a copy of the GNU General Public License version
  140.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  140.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  140.23 + *
  140.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  140.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  140.26 + * have any questions.
  140.27 + */
  140.28 +package javax.swing.plaf.nimbus;
  140.29 +
  140.30 +import javax.swing.Painter;
  140.31 +
  140.32 +import java.beans.PropertyChangeEvent;
  140.33 +import javax.swing.JComponent;
  140.34 +import javax.swing.UIDefaults;
  140.35 +import javax.swing.UIManager;
  140.36 +import javax.swing.plaf.ColorUIResource;
  140.37 +import javax.swing.plaf.synth.ColorType;
  140.38 +import static javax.swing.plaf.synth.SynthConstants.*;
  140.39 +import javax.swing.plaf.synth.SynthContext;
  140.40 +import javax.swing.plaf.synth.SynthPainter;
  140.41 +import javax.swing.plaf.synth.SynthStyle;
  140.42 +import java.awt.Color;
  140.43 +import java.awt.Font;
  140.44 +import java.awt.Insets;
  140.45 +import java.beans.PropertyChangeListener;
  140.46 +import java.util.ArrayList;
  140.47 +import java.util.Collections;
  140.48 +import java.util.Comparator;
  140.49 +import java.util.HashMap;
  140.50 +import java.util.HashSet;
  140.51 +import java.util.List;
  140.52 +import java.util.Map;
  140.53 +import java.util.TreeMap;
  140.54 +import sun.awt.AppContext;
  140.55 +
  140.56 +/**
  140.57 + * <p>A SynthStyle implementation used by Nimbus. Each Region that has been
  140.58 + * registered with the NimbusLookAndFeel will have an associated NimbusStyle.
  140.59 + * Third party components that are registered with the NimbusLookAndFeel will
  140.60 + * therefore be handed a NimbusStyle from the look and feel from the
  140.61 + * #getStyle(JComponent, Region) method.</p>
  140.62 + *
  140.63 + * <p>This class properly reads and retrieves values placed in the UIDefaults
  140.64 + * according to the standard Nimbus naming conventions. It will create and
  140.65 + * retrieve painters, fonts, colors, and other data stored there.</p>
  140.66 + *
  140.67 + * <p>NimbusStyle also supports the ability to override settings on a per
  140.68 + * component basis. NimbusStyle checks the component's client property map for
  140.69 + * "Nimbus.Overrides". If the value associated with this key is an instance of
  140.70 + * UIDefaults, then the values in that defaults table will override the standard
  140.71 + * Nimbus defaults in UIManager, but for that component instance only.</p>
  140.72 + *
  140.73 + * <p>Optionally, you may specify the client property
  140.74 + * "Nimbus.Overrides.InheritDefaults". If true, this client property indicates
  140.75 + * that the defaults located in UIManager should first be read, and then
  140.76 + * replaced with defaults located in the component client properties. If false,
  140.77 + * then only the defaults located in the component client property map will
  140.78 + * be used. If not specified, it is assumed to be true.</p>
  140.79 + *
  140.80 + * <p>You must specify "Nimbus.Overrides" for "Nimbus.Overrides.InheritDefaults"
  140.81 + * to have any effect. "Nimbus.Overrides" indicates whether there are any
  140.82 + * overrides, while "Nimbus.Overrides.InheritDefaults" indicates whether those
  140.83 + * overrides should first be initialized with the defaults from UIManager.</p>
  140.84 + *
  140.85 + * <p>The NimbusStyle is reloaded whenever a property change event is fired
  140.86 + * for a component for "Nimbus.Overrides" or "Nimbus.Overrides.InheritDefaults".
  140.87 + * So for example, setting a new UIDefaults on a component would cause the
  140.88 + * style to be reloaded.</p>
  140.89 + *
  140.90 + * <p>The values are only read out of UIManager once, and then cached. If
  140.91 + * you need to read the values again (for example, if the UI is being reloaded),
  140.92 + * then discard this NimbusStyle and read a new one from NimbusLookAndFeel
  140.93 + * using NimbusLookAndFeel.getStyle.</p>
  140.94 + *
  140.95 + * <p>The primary API of interest in this class for 3rd party component authors
  140.96 + * are the three methods which retrieve painters: #getBackgroundPainter,
  140.97 + * #getForegroundPainter, and #getBorderPainter.</p>
  140.98 + *
  140.99 + * <p>NimbusStyle allows you to specify custom states, or modify the order of
 140.100 + * states. Synth (and thus Nimbus) has the concept of a "state". For example,
 140.101 + * a JButton might be in the "MOUSE_OVER" state, or the "ENABLED" state, or the
 140.102 + * "DISABLED" state. These are all "standard" states which are defined in synth,
 140.103 + * and which apply to all synth Regions.</p>
 140.104 + *
 140.105 + * <p>Sometimes, however, you need to have a custom state. For example, you
 140.106 + * want JButton to render differently if it's parent is a JToolbar. In Nimbus,
 140.107 + * you specify these custom states by including a special key in UIDefaults.
 140.108 + * The following UIDefaults entries define three states for this button:</p>
 140.109 + *
 140.110 + * <pre><code>
 140.111 + *     JButton.States = Enabled, Disabled, Toolbar
 140.112 + *     JButton[Enabled].backgroundPainter = somePainter
 140.113 + *     JButton[Disabled].background = BLUE
 140.114 + *     JButton[Toolbar].backgroundPainter = someOtherPaint
 140.115 + * </code></pre>
 140.116 + *
 140.117 + * <p>As you can see, the <code>JButton.States</code> entry lists the states
 140.118 + * that the JButton style will support. You then specify the settings for
 140.119 + * each state. If you do not specify the <code>JButton.States</code> entry,
 140.120 + * then the standard Synth states will be assumed. If you specify the entry
 140.121 + * but the list of states is empty or null, then the standard synth states
 140.122 + * will be assumed.</p>
 140.123 + *
 140.124 + * @author Richard Bair
 140.125 + * @author Jasper Potts
 140.126 + */
 140.127 +public final class NimbusStyle extends SynthStyle {
 140.128 +    /* Keys and scales for large/small/mini components, based on Apples sizes */
 140.129 +    public static final String LARGE_KEY = "large";
 140.130 +    public static final String SMALL_KEY = "small";
 140.131 +    public static final String MINI_KEY = "mini";
 140.132 +    public static final double LARGE_SCALE = 1.15;
 140.133 +    public static final double SMALL_SCALE = 0.857;
 140.134 +    public static final double MINI_SCALE = 0.714;
 140.135 +
 140.136 +    /**
 140.137 +     * Special constant used for performance reasons during the get() method.
 140.138 +     * If get() runs through all of the search locations and determines that
 140.139 +     * there is no value, then NULL will be placed into the values map. This way
 140.140 +     * on subsequent lookups it will simply extract NULL, see it, and return
 140.141 +     * null rather than continuing the lookup procedure.
 140.142 +     */
 140.143 +    private static final Object NULL = '\0';
 140.144 +    /**
 140.145 +     * <p>The Color to return from getColorForState if it would otherwise have
 140.146 +     * returned null.</p>
 140.147 +     *
 140.148 +     * <p>Returning null from getColorForState is a very bad thing, as it causes
 140.149 +     * the AWT peer for the component to install a SystemColor, which is not a
 140.150 +     * UIResource. As a result, if <code>null</code> is returned from
 140.151 +     * getColorForState, then thereafter the color is not updated for other
 140.152 +     * states or on LAF changes or updates. This DEFAULT_COLOR is used to
 140.153 +     * ensure that a ColorUIResource is always returned from
 140.154 +     * getColorForState.</p>
 140.155 +     */
 140.156 +    private static final Color DEFAULT_COLOR = new ColorUIResource(Color.BLACK);
 140.157 +    /**
 140.158 +     * Simple Comparator for ordering the RuntimeStates according to their
 140.159 +     * rank.
 140.160 +     */
 140.161 +    private static final Comparator<RuntimeState> STATE_COMPARATOR =
 140.162 +        new Comparator<RuntimeState>() {
 140.163 +            @Override
 140.164 +            public int compare(RuntimeState a, RuntimeState b) {
 140.165 +                return a.state - b.state;
 140.166 +            }
 140.167 +        };
 140.168 +    /**
 140.169 +     * The prefix for the component or region that this NimbusStyle
 140.170 +     * represents. This prefix is used to lookup state in the UIManager.
 140.171 +     * It should be something like Button or Slider.Thumb or "MyButton" or
 140.172 +     * ComboBox."ComboBox.arrowButton" or "MyComboBox"."ComboBox.arrowButton"
 140.173 +     */
 140.174 +    private String prefix;
 140.175 +    /**
 140.176 +     * The SynthPainter that will be returned from this NimbusStyle. The
 140.177 +     * SynthPainter returned will be a SynthPainterImpl, which will in turn
 140.178 +     * delegate back to this NimbusStyle for the proper Painter (not
 140.179 +     * SynthPainter) to use for painting the foreground, background, or border.
 140.180 +     */
 140.181 +    private SynthPainter painter;
 140.182 +    /**
 140.183 +     * Data structure containing all of the defaults, insets, states, and other
 140.184 +     * values associated with this style. This instance refers to default
 140.185 +     * values, and are used when no overrides are discovered in the client
 140.186 +     * properties of a component. These values are lazily created on first
 140.187 +     * access.
 140.188 +     */
 140.189 +    private Values values;
 140.190 +
 140.191 +    /**
 140.192 +     * A temporary CacheKey used to perform lookups. This pattern avoids
 140.193 +     * creating useless garbage keys, or concatenating strings, etc.
 140.194 +     */
 140.195 +    private CacheKey tmpKey = new CacheKey("", 0);
 140.196 +
 140.197 +    /**
 140.198 +     * Some NimbusStyles are created for a specific component only. In Nimbus,
 140.199 +     * this happens whenever the component has as a client property a
 140.200 +     * UIDefaults which overrides (or supplements) those defaults found in
 140.201 +     * UIManager.
 140.202 +     */
 140.203 +    private JComponent component;
 140.204 +
 140.205 +    /**
 140.206 +     * Create a new NimbusStyle. Only the prefix must be supplied. At the
 140.207 +     * appropriate time, installDefaults will be called. At that point, all of
 140.208 +     * the state information will be pulled from UIManager and stored locally
 140.209 +     * within this style.
 140.210 +     *
 140.211 +     * @param prefix Something like Button or Slider.Thumb or
 140.212 +     *        org.jdesktop.swingx.JXStatusBar or ComboBox."ComboBox.arrowButton"
 140.213 +     * @param c an optional reference to a component that this NimbusStyle
 140.214 +     *        should be associated with. This is only used when the component
 140.215 +     *        has Nimbus overrides registered in its client properties and
 140.216 +     *        should be null otherwise.
 140.217 +     */
 140.218 +    NimbusStyle(String prefix, JComponent c) {
 140.219 +        this.component = c;
 140.220 +        this.prefix = prefix;
 140.221 +        this.painter = new SynthPainterImpl(this);
 140.222 +    }
 140.223 +
 140.224 +    /**
 140.225 +     * @inheritDoc
 140.226 +     *
 140.227 +     * Overridden to cause this style to populate itself with data from
 140.228 +     * UIDefaults, if necessary.
 140.229 +     */
 140.230 +    @Override public void installDefaults(SynthContext ctx) {
 140.231 +        validate();
 140.232 +
 140.233 +        //delegate to the superclass to install defaults such as background,
 140.234 +        //foreground, font, and opaque onto the swing component.
 140.235 +        super.installDefaults(ctx);
 140.236 +    }
 140.237 +
 140.238 +    static String parsePrefix(String key) {
 140.239 +       if (key == null) return null;
 140.240 +       boolean inquotes = false;
 140.241 +       for (int i=0; i<key.length(); i++) {
 140.242 +           char c = key.charAt(i);
 140.243 +           if (c == '"') {
 140.244 +               inquotes = !inquotes;
 140.245 +           } else if ((c == '[' || c == '.') && !inquotes) {
 140.246 +               return key.substring(0, i);
 140.247 +           }
 140.248 +       }
 140.249 +       return null;
 140.250 +    }
 140.251 +
 140.252 +    /**
 140.253 +     * Called by NimbusLookAndFeel when the look and feel is being uninstalled.
 140.254 +     * Performs general cleanup of any app-context specific data.
 140.255 +     */
 140.256 +    static void uninitialize() {
 140.257 +        // get the appcontext that we've stored data in
 140.258 +        AppContext ctx = AppContext.getAppContext();
 140.259 +
 140.260 +        // get the pcl stored in app context
 140.261 +        PropertyChangeListener pcl = (PropertyChangeListener)
 140.262 +                ctx.get("NimbusStyle.defaults.pcl");
 140.263 +
 140.264 +        // if the pcl exists, uninstall it from the UIDefaults tables
 140.265 +        if (pcl != null) {
 140.266 +            UIManager.getDefaults().removePropertyChangeListener(pcl);
 140.267 +            UIManager.getLookAndFeelDefaults().removePropertyChangeListener(pcl);
 140.268 +        }
 140.269 +
 140.270 +        // clear out the compiled defaults
 140.271 +        ctx.put("NimbusStyle.defaults", null);
 140.272 +    }
 140.273 +
 140.274 +    /**
 140.275 +     * Pulls data out of UIDefaults, if it has not done so already, and sets
 140.276 +     * up the internal state.
 140.277 +     */
 140.278 +    private void validate() {
 140.279 +        // a non-null values object is the flag we use to determine whether
 140.280 +        // to reparse from UIManager.
 140.281 +        if (values != null) return;
 140.282 +
 140.283 +        // reconstruct this NimbusStyle based on the entries in the UIManager
 140.284 +        // and possibly based on any overrides within the component's
 140.285 +        // client properties (assuming such a component exists and contains
 140.286 +        // any Nimbus.Overrides)
 140.287 +        values = new Values();
 140.288 +
 140.289 +        // the profiler revealed that a great deal of CPU time and useless
 140.290 +        // garbage was being produced by this method and the init method. One
 140.291 +        // culprit was the creation and reparsing of the entire UIDefaults
 140.292 +        // map on each call to this method where "values" was null. It turns
 140.293 +        // out this was happening a lot.
 140.294 +        // To remove this bottleneck, we store the compiled TreeMaps of defaults
 140.295 +        // in the appContext for reuse. It is nulled whenever the UIDefaults
 140.296 +        // changes and recomputed when necessary.
 140.297 +        final AppContext ctx = AppContext.getAppContext();
 140.298 +
 140.299 +        // fetch the defaults from the app context. If null, then create and
 140.300 +        // store the compiled defaults
 140.301 +        Map<String, TreeMap<String, Object>> compiledDefaults =
 140.302 +                (Map<String, TreeMap<String, Object>>)
 140.303 +                    ctx.get("NimbusStyle.defaults");
 140.304 +
 140.305 +        if (compiledDefaults == null) {
 140.306 +            // the entire UIDefaults tables are parsed and compiled into
 140.307 +            // this map of maps. The key of the compiledDefaults is the
 140.308 +            // prefix for each style, while the value is a map of
 140.309 +            // keys->values for that prefix.
 140.310 +            compiledDefaults = new HashMap<String, TreeMap<String, Object>>();
 140.311 +
 140.312 +            // get all the defaults from UIManager.getDefaults() and put them
 140.313 +            // into the compiledDefaults
 140.314 +            compileDefaults(compiledDefaults, UIManager.getDefaults());
 140.315 +
 140.316 +            // This second statement pulls defaults from the laf defaults
 140.317 +            UIDefaults lafDefaults = UIManager.getLookAndFeelDefaults();
 140.318 +            compileDefaults(compiledDefaults, lafDefaults);
 140.319 +
 140.320 +            // if it has not already been done, add a listener to both
 140.321 +            // UIManager.getDefaults() and UIManager.getLookAndFeelDefaults().
 140.322 +            PropertyChangeListener pcl = (PropertyChangeListener)
 140.323 +                    ctx.get("NimbusStyle.defaults.pcl");
 140.324 +
 140.325 +            // if pcl is null, then it has not yet been registered with
 140.326 +            // the UIManager defaults for this app context
 140.327 +            if (pcl == null) {
 140.328 +                // create a PCL which will simply clear out the compiled
 140.329 +                // defaults from the app context, causing it to be recomputed
 140.330 +                // on subsequent passes
 140.331 +                pcl = new DefaultsListener();
 140.332 +                // add the PCL to both defaults tables that we pay attention
 140.333 +                // to, so that if the UIDefaults are updated, then the
 140.334 +                // precompiled defaults will be cleared from the app context
 140.335 +                // and recomputed on subsequent passes
 140.336 +                UIManager.getDefaults().addPropertyChangeListener(pcl);
 140.337 +                UIManager.getLookAndFeelDefaults().addPropertyChangeListener(pcl);
 140.338 +                // save the PCL to the app context as a marker indicating
 140.339 +                // that the PCL has been registered so we don't end up adding
 140.340 +                // more than one listener to the UIDefaults tables.
 140.341 +                ctx.put("NimbusStyle.defaults.pcl", pcl);
 140.342 +            }
 140.343 +
 140.344 +            // store the defaults for reuse
 140.345 +            ctx.put("NimbusStyle.defaults", compiledDefaults);
 140.346 +        }
 140.347 +
 140.348 +        TreeMap<String, Object> defaults = compiledDefaults.get(prefix);
 140.349 +
 140.350 +        // inspect the client properties for the key "Nimbus.Overrides". If the
 140.351 +        // value is an instance of UIDefaults, then these defaults are used
 140.352 +        // in place of, or in addition to, the defaults in UIManager.
 140.353 +        if (component != null) {
 140.354 +            Object o = component.getClientProperty("Nimbus.Overrides");
 140.355 +            if (o instanceof UIDefaults) {
 140.356 +                Object i = component.getClientProperty(
 140.357 +                        "Nimbus.Overrides.InheritDefaults");
 140.358 +                boolean inherit = i instanceof Boolean ? (Boolean)i : true;
 140.359 +                UIDefaults d = (UIDefaults)o;
 140.360 +                TreeMap<String, Object> map = new TreeMap<String, Object>();
 140.361 +                for (Object obj : d.keySet()) {
 140.362 +                    if (obj instanceof String) {
 140.363 +                        String key = (String)obj;
 140.364 +                        if (key.startsWith(prefix)) {
 140.365 +                            map.put(key, d.get(key));
 140.366 +                        }
 140.367 +                    }
 140.368 +                }
 140.369 +                if (inherit) {
 140.370 +                    defaults.putAll(map);
 140.371 +                } else {
 140.372 +                    defaults = map;
 140.373 +                }
 140.374 +            }
 140.375 +        }
 140.376 +
 140.377 +        // Now that I've accumulated all the defaults pertaining to this
 140.378 +        // style, call init which will read these defaults and configure
 140.379 +        // the default "values".
 140.380 +        init(values, defaults);
 140.381 +    }
 140.382 +
 140.383 +    /**
 140.384 +     * Iterates over all the keys in the specified UIDefaults and compiles
 140.385 +     * those keys into the comiledDefaults data structure. It relies on
 140.386 +     * parsing the "prefix" out of the key. If the key is not a String or is
 140.387 +     * null then it is ignored. In all other cases a prefix is parsed out
 140.388 +     * (even if that prefix is the empty String or is a "fake" prefix. That
 140.389 +     * is, suppose you had a key Foo~~MySpecial.KeyThing~~. In this case this
 140.390 +     * is not a Nimbus formatted key, but we don't care, we treat it as if it
 140.391 +     * is. This doesn't pose any harm, it will simply never be used).
 140.392 +     *
 140.393 +     * @param compiledDefaults
 140.394 +     * @param d
 140.395 +     */
 140.396 +    private void compileDefaults(
 140.397 +            Map<String, TreeMap<String,Object>> compiledDefaults,
 140.398 +            UIDefaults d) {
 140.399 +        for (Object obj : new HashSet(d.keySet())) {
 140.400 +            if (obj instanceof String) {
 140.401 +                String key = (String)obj;
 140.402 +                String kp = parsePrefix(key);
 140.403 +                if (kp == null) continue;
 140.404 +                TreeMap<String,Object> map = compiledDefaults.get(kp);
 140.405 +                if (map == null) {
 140.406 +                    map = new TreeMap<String,Object>();
 140.407 +                    compiledDefaults.put(kp, map);
 140.408 +                }
 140.409 +                map.put(key, d.get(key));
 140.410 +            }
 140.411 +        }
 140.412 +    }
 140.413 +
 140.414 +    /**
 140.415 +     * Initializes the given <code>Values</code> object with the defaults
 140.416 +     * contained in the given TreeMap.
 140.417 +     *
 140.418 +     * @param v The Values object to be initialized
 140.419 +     * @param myDefaults a map of UIDefaults to use in initializing the Values.
 140.420 +     *        This map must contain only keys associated with this Style.
 140.421 +     */
 140.422 +    private void init(Values v, TreeMap<String, Object> myDefaults) {
 140.423 +        //a list of the different types of states used by this style. This
 140.424 +        //list may contain only "standard" states (those defined by Synth),
 140.425 +        //or it may contain custom states, or it may contain only "standard"
 140.426 +        //states but list them in a non-standard order.
 140.427 +        List<State> states = new ArrayList<State>();
 140.428 +        //a map of state name to code
 140.429 +        Map<String,Integer> stateCodes = new HashMap<String,Integer>();
 140.430 +        //This is a list of runtime "state" context objects. These contain
 140.431 +        //the values associated with each state.
 140.432 +        List<RuntimeState> runtimeStates = new ArrayList<RuntimeState>();
 140.433 +
 140.434 +        //determine whether there are any custom states, or custom state
 140.435 +        //order. If so, then read all those custom states and define the
 140.436 +        //"values" stateTypes to be a non-null array.
 140.437 +        //Otherwise, let the "values" stateTypes be null to indicate that
 140.438 +        //there are no custom states or custom state ordering
 140.439 +        String statesString = (String)myDefaults.get(prefix + ".States");
 140.440 +        if (statesString != null) {
 140.441 +            String s[] = statesString.split(",");
 140.442 +            for (int i=0; i<s.length; i++) {
 140.443 +                s[i] = s[i].trim();
 140.444 +                if (!State.isStandardStateName(s[i])) {
 140.445 +                    //this is a non-standard state name, so look for the
 140.446 +                    //custom state associated with it
 140.447 +                    String stateName = prefix + "." + s[i];
 140.448 +                    State customState = (State)myDefaults.get(stateName);
 140.449 +                    if (customState != null) {
 140.450 +                        states.add(customState);
 140.451 +                    }
 140.452 +                } else {
 140.453 +                    states.add(State.getStandardState(s[i]));
 140.454 +                }
 140.455 +            }
 140.456 +
 140.457 +            //if there were any states defined, then set the stateTypes array
 140.458 +            //to be non-null. Otherwise, leave it null (meaning, use the
 140.459 +            //standard synth states).
 140.460 +            if (states.size() > 0) {
 140.461 +                v.stateTypes = states.toArray(new State[states.size()]);
 140.462 +            }
 140.463 +
 140.464 +            //assign codes for each of the state types
 140.465 +            int code = 1;
 140.466 +            for (State state : states) {
 140.467 +                stateCodes.put(state.getName(), code);
 140.468 +                code <<= 1;
 140.469 +            }
 140.470 +        } else {
 140.471 +            //since there were no custom states defined, setup the list of
 140.472 +            //standard synth states. Note that the "v.stateTypes" is not
 140.473 +            //being set here, indicating that at runtime the state selection
 140.474 +            //routines should use standard synth states instead of custom
 140.475 +            //states. I do need to popuplate this temp list now though, so that
 140.476 +            //the remainder of this method will function as expected.
 140.477 +            states.add(State.Enabled);
 140.478 +            states.add(State.MouseOver);
 140.479 +            states.add(State.Pressed);
 140.480 +            states.add(State.Disabled);
 140.481 +            states.add(State.Focused);
 140.482 +            states.add(State.Selected);
 140.483 +            states.add(State.Default);
 140.484 +
 140.485 +            //assign codes for the states
 140.486 +            stateCodes.put("Enabled", ENABLED);
 140.487 +            stateCodes.put("MouseOver", MOUSE_OVER);
 140.488 +            stateCodes.put("Pressed", PRESSED);
 140.489 +            stateCodes.put("Disabled", DISABLED);
 140.490 +            stateCodes.put("Focused", FOCUSED);
 140.491 +            stateCodes.put("Selected", SELECTED);
 140.492 +            stateCodes.put("Default", DEFAULT);
 140.493 +        }
 140.494 +
 140.495 +        //Now iterate over all the keys in the defaults table
 140.496 +        for (String key : myDefaults.keySet()) {
 140.497 +            //The key is something like JButton.Enabled.backgroundPainter,
 140.498 +            //or JButton.States, or JButton.background.
 140.499 +            //Remove the "JButton." portion of the key
 140.500 +            String temp = key.substring(prefix.length());
 140.501 +            //if there is a " or : then we skip it because it is a subregion
 140.502 +            //of some kind
 140.503 +            if (temp.indexOf('"') != -1 || temp.indexOf(':') != -1) continue;
 140.504 +            //remove the separator
 140.505 +            temp = temp.substring(1);
 140.506 +            //At this point, temp may be any of the following:
 140.507 +            //background
 140.508 +            //[Enabled].background
 140.509 +            //[Enabled+MouseOver].background
 140.510 +            //property.foo
 140.511 +
 140.512 +            //parse out the states and the property
 140.513 +            String stateString = null;
 140.514 +            String property = null;
 140.515 +            int bracketIndex = temp.indexOf(']');
 140.516 +            if (bracketIndex < 0) {
 140.517 +                //there is not a state string, so property = temp
 140.518 +                property = temp;
 140.519 +            } else {
 140.520 +                stateString = temp.substring(0, bracketIndex);
 140.521 +                property = temp.substring(bracketIndex + 2);
 140.522 +            }
 140.523 +
 140.524 +            //now that I have the state (if any) and the property, get the
 140.525 +            //value for this property and install it where it belongs
 140.526 +            if (stateString == null) {
 140.527 +                //there was no state, just a property. Check for the custom
 140.528 +                //"contentMargins" property (which is handled specially by
 140.529 +                //Synth/Nimbus). Also check for the property being "States",
 140.530 +                //in which case it is not a real property and should be ignored.
 140.531 +                //otherwise, assume it is a property and install it on the
 140.532 +                //values object
 140.533 +                if ("contentMargins".equals(property)) {
 140.534 +                    v.contentMargins = (Insets)myDefaults.get(key);
 140.535 +                } else if ("States".equals(property)) {
 140.536 +                    //ignore
 140.537 +                } else {
 140.538 +                    v.defaults.put(property, myDefaults.get(key));
 140.539 +                }
 140.540 +            } else {
 140.541 +                //it is possible that the developer has a malformed UIDefaults
 140.542 +                //entry, such that something was specified in the place of
 140.543 +                //the State portion of the key but it wasn't a state. In this
 140.544 +                //case, skip will be set to true
 140.545 +                boolean skip = false;
 140.546 +                //this variable keeps track of the int value associated with
 140.547 +                //the state. See SynthState for details.
 140.548 +                int componentState = 0;
 140.549 +                //Multiple states may be specified in the string, such as
 140.550 +                //Enabled+MouseOver
 140.551 +                String[] stateParts = stateString.split("\\+");
 140.552 +                //For each state, we need to find the State object associated
 140.553 +                //with it, or skip it if it cannot be found.
 140.554 +                for (String s : stateParts) {
 140.555 +                    if (stateCodes.containsKey(s)) {
 140.556 +                        componentState |= stateCodes.get(s);
 140.557 +                    } else {
 140.558 +                        //Was not a state. Maybe it was a subregion or something
 140.559 +                        //skip it.
 140.560 +                        skip = true;
 140.561 +                        break;
 140.562 +                    }
 140.563 +                }
 140.564 +
 140.565 +                if (skip) continue;
 140.566 +
 140.567 +                //find the RuntimeState for this State
 140.568 +                RuntimeState rs = null;
 140.569 +                for (RuntimeState s : runtimeStates) {
 140.570 +                    if (s.state == componentState) {
 140.571 +                        rs = s;
 140.572 +                        break;
 140.573 +                    }
 140.574 +                }
 140.575 +
 140.576 +                //couldn't find the runtime state, so create a new one
 140.577 +                if (rs == null) {
 140.578 +                    rs = new RuntimeState(componentState, stateString);
 140.579 +                    runtimeStates.add(rs);
 140.580 +                }
 140.581 +
 140.582 +                //check for a couple special properties, such as for the
 140.583 +                //painters. If these are found, then set the specially on
 140.584 +                //the runtime state. Else, it is just a normal property,
 140.585 +                //so put it in the UIDefaults associated with that runtime
 140.586 +                //state
 140.587 +                if ("backgroundPainter".equals(property)) {
 140.588 +                    rs.backgroundPainter = (Painter)myDefaults.get(key);
 140.589 +                } else if ("foregroundPainter".equals(property)) {
 140.590 +                    rs.foregroundPainter = (Painter) myDefaults.get(key);
 140.591 +                } else if ("borderPainter".equals(property)) {
 140.592 +                    rs.borderPainter = (Painter) myDefaults.get(key);
 140.593 +                } else {
 140.594 +                    rs.defaults.put(property, myDefaults.get(key));
 140.595 +                }
 140.596 +            }
 140.597 +        }
 140.598 +
 140.599 +        //now that I've collected all the runtime states, I'll sort them based
 140.600 +        //on their integer "state" (see SynthState for how this works).
 140.601 +        Collections.sort(runtimeStates, STATE_COMPARATOR);
 140.602 +
 140.603 +        //finally, set the array of runtime states on the values object
 140.604 +        v.states = runtimeStates.toArray(new RuntimeState[runtimeStates.size()]);
 140.605 +    }
 140.606 +
 140.607 +    /**
 140.608 +     * @inheritDoc
 140.609 +     *
 140.610 +     * Overridden to cause this style to populate itself with data from
 140.611 +     * UIDefaults, if necessary.
 140.612 +     */
 140.613 +    @Override public Insets getInsets(SynthContext ctx, Insets in) {
 140.614 +        if (in == null) {
 140.615 +            in = new Insets(0, 0, 0, 0);
 140.616 +        }
 140.617 +
 140.618 +        Values v = getValues(ctx);
 140.619 +
 140.620 +        if (v.contentMargins == null) {
 140.621 +            in.bottom = in.top = in.left = in.right = 0;
 140.622 +            return in;
 140.623 +        } else {
 140.624 +            in.bottom = v.contentMargins.bottom;
 140.625 +            in.top = v.contentMargins.top;
 140.626 +            in.left = v.contentMargins.left;
 140.627 +            in.right = v.contentMargins.right;
 140.628 +            // Account for scale
 140.629 +            // The key "JComponent.sizeVariant" is used to match Apple's LAF
 140.630 +            String scaleKey = (String)ctx.getComponent().getClientProperty(
 140.631 +                    "JComponent.sizeVariant");
 140.632 +            if (scaleKey != null){
 140.633 +                if (LARGE_KEY.equals(scaleKey)){
 140.634 +                    in.bottom *= LARGE_SCALE;
 140.635 +                    in.top *= LARGE_SCALE;
 140.636 +                    in.left *= LARGE_SCALE;
 140.637 +                    in.right *= LARGE_SCALE;
 140.638 +                } else if (SMALL_KEY.equals(scaleKey)){
 140.639 +                    in.bottom *= SMALL_SCALE;
 140.640 +                    in.top *= SMALL_SCALE;
 140.641 +                    in.left *= SMALL_SCALE;
 140.642 +                    in.right *= SMALL_SCALE;
 140.643 +                } else if (MINI_KEY.equals(scaleKey)){
 140.644 +                    in.bottom *= MINI_SCALE;
 140.645 +                    in.top *= MINI_SCALE;
 140.646 +                    in.left *= MINI_SCALE;
 140.647 +                    in.right *= MINI_SCALE;
 140.648 +                }
 140.649 +            }
 140.650 +            return in;
 140.651 +        }
 140.652 +    }
 140.653 +
 140.654 +    /**
 140.655 +     * @inheritDoc
 140.656 +     *
 140.657 +     * <p>Overridden to cause this style to populate itself with data from
 140.658 +     * UIDefaults, if necessary.</p>
 140.659 +     *
 140.660 +     * <p>In addition, NimbusStyle handles ColorTypes slightly differently from
 140.661 +     * Synth.</p>
 140.662 +     * <ul>
 140.663 +     *  <li>ColorType.BACKGROUND will equate to the color stored in UIDefaults
 140.664 +     *      named "background".</li>
 140.665 +     *  <li>ColorType.TEXT_BACKGROUND will equate to the color stored in
 140.666 +     *      UIDefaults named "textBackground".</li>
 140.667 +     *  <li>ColorType.FOREGROUND will equate to the color stored in UIDefaults
 140.668 +     *      named "textForeground".</li>
 140.669 +     *  <li>ColorType.TEXT_FOREGROUND will equate to the color stored in
 140.670 +     *      UIDefaults named "textForeground".</li>
 140.671 +     * </ul>
 140.672 +     */
 140.673 +    @Override protected Color getColorForState(SynthContext ctx, ColorType type) {
 140.674 +        String key = null;
 140.675 +        if (type == ColorType.BACKGROUND) {
 140.676 +            key = "background";
 140.677 +        } else if (type == ColorType.FOREGROUND) {
 140.678 +            //map FOREGROUND as TEXT_FOREGROUND
 140.679 +            key = "textForeground";
 140.680 +        } else if (type == ColorType.TEXT_BACKGROUND) {
 140.681 +            key = "textBackground";
 140.682 +        } else if (type == ColorType.TEXT_FOREGROUND) {
 140.683 +            key = "textForeground";
 140.684 +        } else if (type == ColorType.FOCUS) {
 140.685 +            key = "focus";
 140.686 +        } else if (type != null) {
 140.687 +            key = type.toString();
 140.688 +        } else {
 140.689 +            return DEFAULT_COLOR;
 140.690 +        }
 140.691 +        Color c = (Color) get(ctx, key);
 140.692 +        //if all else fails, return a default color (which is a ColorUIResource)
 140.693 +        if (c == null) c = DEFAULT_COLOR;
 140.694 +        return c;
 140.695 +    }
 140.696 +
 140.697 +    /**
 140.698 +     * @inheritDoc
 140.699 +     *
 140.700 +     * Overridden to cause this style to populate itself with data from
 140.701 +     * UIDefaults, if necessary. If a value named "font" is not found in
 140.702 +     * UIDefaults, then the "defaultFont" font in UIDefaults will be returned
 140.703 +     * instead.
 140.704 +     */
 140.705 +    @Override protected Font getFontForState(SynthContext ctx) {
 140.706 +        Font f = (Font)get(ctx, "font");
 140.707 +        if (f == null) f = UIManager.getFont("defaultFont");
 140.708 +
 140.709 +        // Account for scale
 140.710 +        // The key "JComponent.sizeVariant" is used to match Apple's LAF
 140.711 +        String scaleKey = (String)ctx.getComponent().getClientProperty(
 140.712 +                "JComponent.sizeVariant");
 140.713 +        if (scaleKey != null){
 140.714 +            if (LARGE_KEY.equals(scaleKey)){
 140.715 +                f = f.deriveFont(Math.round(f.getSize2D()*LARGE_SCALE));
 140.716 +            } else if (SMALL_KEY.equals(scaleKey)){
 140.717 +                f = f.deriveFont(Math.round(f.getSize2D()*SMALL_SCALE));
 140.718 +            } else if (MINI_KEY.equals(scaleKey)){
 140.719 +                f = f.deriveFont(Math.round(f.getSize2D()*MINI_SCALE));
 140.720 +            }
 140.721 +        }
 140.722 +        return f;
 140.723 +    }
 140.724 +
 140.725 +    /**
 140.726 +     * @inheritDoc
 140.727 +     *
 140.728 +     * Returns the SynthPainter for this style, which ends up delegating to
 140.729 +     * the Painters installed in this style.
 140.730 +     */
 140.731 +    @Override public SynthPainter getPainter(SynthContext ctx) {
 140.732 +        return painter;
 140.733 +    }
 140.734 +
 140.735 +    /**
 140.736 +     * @inheritDoc
 140.737 +     *
 140.738 +     * Overridden to cause this style to populate itself with data from
 140.739 +     * UIDefaults, if necessary. If opacity is not specified in UI defaults,
 140.740 +     * then it defaults to being non-opaque.
 140.741 +     */
 140.742 +    @Override public boolean isOpaque(SynthContext ctx) {
 140.743 +        // Force Table CellRenderers to be opaque
 140.744 +        if ("Table.cellRenderer".equals(ctx.getComponent().getName())) {
 140.745 +            return true;
 140.746 +        }
 140.747 +        Boolean opaque = (Boolean)get(ctx, "opaque");
 140.748 +        return opaque == null ? false : opaque;
 140.749 +    }
 140.750 +
 140.751 +    /**
 140.752 +     * @inheritDoc
 140.753 +     *
 140.754 +     * <p>Overridden to cause this style to populate itself with data from
 140.755 +     * UIDefaults, if necessary.</p>
 140.756 +     *
 140.757 +     * <p>Properties in UIDefaults may be specified in a chained manner. For
 140.758 +     * example:
 140.759 +     * <pre>
 140.760 +     * background
 140.761 +     * Button.opacity
 140.762 +     * Button.Enabled.foreground
 140.763 +     * Button.Enabled+Selected.background
 140.764 +     * </pre></p>
 140.765 +     *
 140.766 +     * <p>In this example, suppose you were in the Enabled+Selected state and
 140.767 +     * searched for "foreground". In this case, we first check for
 140.768 +     * Button.Enabled+Selected.foreground, but no such color exists. We then
 140.769 +     * fall back to the next valid state, in this case,
 140.770 +     * Button.Enabled.foreground, and have a match. So we return it.</p>
 140.771 +     *
 140.772 +     * <p>Again, if we were in the state Enabled and looked for "background", we
 140.773 +     * wouldn't find it in Button.Enabled, or in Button, but would at the top
 140.774 +     * level in UIManager. So we return that value.</p>
 140.775 +     *
 140.776 +     * <p>One special note: the "key" passed to this method could be of the form
 140.777 +     * "background" or "Button.background" where "Button" equals the prefix
 140.778 +     * passed to the NimbusStyle constructor. In either case, it looks for
 140.779 +     * "background".</p>
 140.780 +     *
 140.781 +     * @param ctx
 140.782 +     * @param key must not be null
 140.783 +     */
 140.784 +    @Override public Object get(SynthContext ctx, Object key) {
 140.785 +        Values v = getValues(ctx);
 140.786 +
 140.787 +        // strip off the prefix, if there is one.
 140.788 +        String fullKey = key.toString();
 140.789 +        String partialKey = fullKey.substring(fullKey.indexOf(".") + 1);
 140.790 +
 140.791 +        Object obj = null;
 140.792 +        int xstate = getExtendedState(ctx, v);
 140.793 +
 140.794 +        // check the cache
 140.795 +        tmpKey.init(partialKey, xstate);
 140.796 +        obj = v.cache.get(tmpKey);
 140.797 +        boolean wasInCache = obj != null;
 140.798 +        if (!wasInCache){
 140.799 +            // Search exact matching states and then lesser matching states
 140.800 +            RuntimeState s = null;
 140.801 +            int[] lastIndex = new int[] {-1};
 140.802 +            while (obj == null &&
 140.803 +                    (s = getNextState(v.states, lastIndex, xstate)) != null) {
 140.804 +                obj = s.defaults.get(partialKey);
 140.805 +            }
 140.806 +            // Search Region Defaults
 140.807 +            if (obj == null && v.defaults != null) {
 140.808 +                obj = v.defaults.get(partialKey);
 140.809 +            }
 140.810 +            // return found object
 140.811 +            // Search UIManager Defaults
 140.812 +            if (obj == null) obj = UIManager.get(fullKey);
 140.813 +            // Search Synth Defaults for InputMaps
 140.814 +            if (obj == null && partialKey.equals("focusInputMap")) {
 140.815 +                obj = super.get(ctx, fullKey);
 140.816 +            }
 140.817 +            // if all we got was a null, store this fact for later use
 140.818 +            v.cache.put(new CacheKey(partialKey, xstate),
 140.819 +                    obj == null ? NULL : obj);
 140.820 +        }
 140.821 +        // return found object
 140.822 +        return obj == NULL ? null : obj;
 140.823 +    }
 140.824 +
 140.825 +    /**
 140.826 +     * Gets the appropriate background Painter, if there is one, for the state
 140.827 +     * specified in the given SynthContext. This method does appropriate
 140.828 +     * fallback searching, as described in #get.
 140.829 +     *
 140.830 +     * @param ctx The SynthContext. Must not be null.
 140.831 +     * @return The background painter associated for the given state, or null if
 140.832 +     * none could be found.
 140.833 +     */
 140.834 +    public Painter getBackgroundPainter(SynthContext ctx) {
 140.835 +        Values v = getValues(ctx);
 140.836 +        int xstate = getExtendedState(ctx, v);
 140.837 +        Painter p = null;
 140.838 +
 140.839 +        // check the cache
 140.840 +        tmpKey.init("backgroundPainter$$instance", xstate);
 140.841 +        p = (Painter)v.cache.get(tmpKey);
 140.842 +        if (p != null) return p;
 140.843 +
 140.844 +        // not in cache, so lookup and store in cache
 140.845 +        RuntimeState s = null;
 140.846 +        int[] lastIndex = new int[] {-1};
 140.847 +        while ((s = getNextState(v.states, lastIndex, xstate)) != null) {
 140.848 +            if (s.backgroundPainter != null) {
 140.849 +                p = s.backgroundPainter;
 140.850 +                break;
 140.851 +            }
 140.852 +        }
 140.853 +        if (p == null) p = (Painter)get(ctx, "backgroundPainter");
 140.854 +        if (p != null) {
 140.855 +            v.cache.put(new CacheKey("backgroundPainter$$instance", xstate), p);
 140.856 +        }
 140.857 +        return p;
 140.858 +    }
 140.859 +
 140.860 +    /**
 140.861 +     * Gets the appropriate foreground Painter, if there is one, for the state
 140.862 +     * specified in the given SynthContext. This method does appropriate
 140.863 +     * fallback searching, as described in #get.
 140.864 +     *
 140.865 +     * @param ctx The SynthContext. Must not be null.
 140.866 +     * @return The foreground painter associated for the given state, or null if
 140.867 +     * none could be found.
 140.868 +     */
 140.869 +    public Painter getForegroundPainter(SynthContext ctx) {
 140.870 +        Values v = getValues(ctx);
 140.871 +        int xstate = getExtendedState(ctx, v);
 140.872 +        Painter p = null;
 140.873 +
 140.874 +        // check the cache
 140.875 +        tmpKey.init("foregroundPainter$$instance", xstate);
 140.876 +        p = (Painter)v.cache.get(tmpKey);
 140.877 +        if (p != null) return p;
 140.878 +
 140.879 +        // not in cache, so lookup and store in cache
 140.880 +        RuntimeState s = null;
 140.881 +        int[] lastIndex = new int[] {-1};
 140.882 +        while ((s = getNextState(v.states, lastIndex, xstate)) != null) {
 140.883 +            if (s.foregroundPainter != null) {
 140.884 +                p = s.foregroundPainter;
 140.885 +                break;
 140.886 +            }
 140.887 +        }
 140.888 +        if (p == null) p = (Painter)get(ctx, "foregroundPainter");
 140.889 +        if (p != null) {
 140.890 +            v.cache.put(new CacheKey("foregroundPainter$$instance", xstate), p);
 140.891 +        }
 140.892 +        return p;
 140.893 +    }
 140.894 +
 140.895 +    /**
 140.896 +     * Gets the appropriate border Painter, if there is one, for the state
 140.897 +     * specified in the given SynthContext. This method does appropriate
 140.898 +     * fallback searching, as described in #get.
 140.899 +     *
 140.900 +     * @param ctx The SynthContext. Must not be null.
 140.901 +     * @return The border painter associated for the given state, or null if
 140.902 +     * none could be found.
 140.903 +     */
 140.904 +    public Painter getBorderPainter(SynthContext ctx) {
 140.905 +        Values v = getValues(ctx);
 140.906 +        int xstate = getExtendedState(ctx, v);
 140.907 +        Painter p = null;
 140.908 +
 140.909 +        // check the cache
 140.910 +        tmpKey.init("borderPainter$$instance", xstate);
 140.911 +        p = (Painter)v.cache.get(tmpKey);
 140.912 +        if (p != null) return p;
 140.913 +
 140.914 +        // not in cache, so lookup and store in cache
 140.915 +        RuntimeState s = null;
 140.916 +        int[] lastIndex = new int[] {-1};
 140.917 +        while ((s = getNextState(v.states, lastIndex, xstate)) != null) {
 140.918 +            if (s.borderPainter != null) {
 140.919 +                p = s.borderPainter;
 140.920 +                break;
 140.921 +            }
 140.922 +        }
 140.923 +        if (p == null) p = (Painter)get(ctx, "borderPainter");
 140.924 +        if (p != null) {
 140.925 +            v.cache.put(new CacheKey("borderPainter$$instance", xstate), p);
 140.926 +        }
 140.927 +        return p;
 140.928 +    }
 140.929 +
 140.930 +    /**
 140.931 +     * Utility method which returns the proper Values based on the given
 140.932 +     * SynthContext. Ensures that parsing of the values has occurred, or
 140.933 +     * reoccurs as necessary.
 140.934 +     *
 140.935 +     * @param ctx The SynthContext
 140.936 +     * @return a non-null values reference
 140.937 +     */
 140.938 +    private Values getValues(SynthContext ctx) {
 140.939 +        validate();
 140.940 +        return values;
 140.941 +    }
 140.942 +
 140.943 +    /**
 140.944 +     * Simple utility method that searchs the given array of Strings for the
 140.945 +     * given string. This method is only called from getExtendedState if
 140.946 +     * the developer has specified a specific state for the component to be
 140.947 +     * in (ie, has "wedged" the component in that state) by specifying
 140.948 +     * they client property "Nimbus.State".
 140.949 +     *
 140.950 +     * @param names a non-null array of strings
 140.951 +     * @param name the name to look for in the array
 140.952 +     * @return true or false based on whether the given name is in the array
 140.953 +     */
 140.954 +    private boolean contains(String[] names, String name) {
 140.955 +        assert name != null;
 140.956 +        for (int i=0; i<names.length; i++) {
 140.957 +            if (name.equals(names[i])) {
 140.958 +                return true;
 140.959 +            }
 140.960 +        }
 140.961 +        return false;
 140.962 +    }
 140.963 +
 140.964 +    /**
 140.965 +     * <p>Gets the extended state for a given synth context. Nimbus supports the
 140.966 +     * ability to define custom states. The algorithm used for choosing what
 140.967 +     * style information to use for a given state requires a single integer
 140.968 +     * bit string where each bit in the integer represents a different state
 140.969 +     * that the component is in. This method uses the componentState as
 140.970 +     * reported in the SynthContext, in addition to custom states, to determine
 140.971 +     * what this extended state is.</p>
 140.972 +     *
 140.973 +     * <p>In addition, this method checks the component in the given context
 140.974 +     * for a client property called "Nimbus.State". If one exists, then it will
 140.975 +     * decompose the String associated with that property to determine what
 140.976 +     * state to return. In this way, the developer can force a component to be
 140.977 +     * in a specific state, regardless of what the "real" state of the component
 140.978 +     * is.</p>
 140.979 +     *
 140.980 +     * <p>The string associated with "Nimbus.State" would be of the form:
 140.981 +     * <pre>Enabled+CustomState+MouseOver</pre></p>
 140.982 +     *
 140.983 +     * @param ctx
 140.984 +     * @param v
 140.985 +     * @return
 140.986 +     */
 140.987 +    private int getExtendedState(SynthContext ctx, Values v) {
 140.988 +        JComponent c = ctx.getComponent();
 140.989 +        int xstate = 0;
 140.990 +        int mask = 1;
 140.991 +        //check for the Nimbus.State client property
 140.992 +        //Performance NOTE: getClientProperty ends up inside a synchronized
 140.993 +        //block, so there is some potential for performance issues here, however
 140.994 +        //I'm not certain that there is one on a modern VM.
 140.995 +        Object property = c.getClientProperty("Nimbus.State");
 140.996 +        if (property != null) {
 140.997 +            String stateNames = property.toString();
 140.998 +            String[] states = stateNames.split("\\+");
 140.999 +            if (v.stateTypes == null){
140.1000 +                // standard states only
140.1001 +                for (String stateStr : states) {
140.1002 +                    State.StandardState s = State.getStandardState(stateStr);
140.1003 +                    if (s != null) xstate |= s.getState();
140.1004 +                }
140.1005 +            } else {
140.1006 +                // custom states
140.1007 +                for (State s : v.stateTypes) {
140.1008 +                    if (contains(states, s.getName())) {
140.1009 +                        xstate |= mask;
140.1010 +                    }
140.1011 +                    mask <<= 1;
140.1012 +                }
140.1013 +            }
140.1014 +        } else {
140.1015 +            //if there are no custom states defined, then simply return the
140.1016 +            //state that Synth reported
140.1017 +            if (v.stateTypes == null) return ctx.getComponentState();
140.1018 +
140.1019 +            //there are custom states on this values, so I'll have to iterate
140.1020 +            //over them all and return a custom extended state
140.1021 +            int state = ctx.getComponentState();
140.1022 +            for (State s : v.stateTypes) {
140.1023 +                if (s.isInState(c, state)) {
140.1024 +                    xstate |= mask;
140.1025 +                }
140.1026 +                mask <<= 1;
140.1027 +            }
140.1028 +        }
140.1029 +        return xstate;
140.1030 +    }
140.1031 +
140.1032 +    /**
140.1033 +     * <p>Gets the RuntimeState that most closely matches the state in the given
140.1034 +     * context, but is less specific than the given "lastState". Essentially,
140.1035 +     * this allows you to search for the next best state.</p>
140.1036 +     *
140.1037 +     * <p>For example, if you had the following three states:
140.1038 +     * <pre>
140.1039 +     * Enabled
140.1040 +     * Enabled+Pressed
140.1041 +     * Disabled
140.1042 +     * </pre>
140.1043 +     * And you wanted to find the state that best represented
140.1044 +     * ENABLED+PRESSED+FOCUSED and <code>lastState</code> was null (or an
140.1045 +     * empty array, or an array with a single int with index == -1), then
140.1046 +     * Enabled+Pressed would be returned. If you then call this method again but
140.1047 +     * pass the index of Enabled+Pressed as the "lastState", then
140.1048 +     * Enabled would be returned. If you call this method a third time and pass
140.1049 +     * the index of Enabled in as the <code>lastState</code>, then null would be
140.1050 +     * returned.</p>
140.1051 +     *
140.1052 +     * <p>The actual code path for determining the proper state is the same as
140.1053 +     * in Synth.</p>
140.1054 +     *
140.1055 +     * @param ctx
140.1056 +     * @param lastState a 1 element array, allowing me to do pass-by-reference.
140.1057 +     * @return
140.1058 +     */
140.1059 +    private RuntimeState getNextState(RuntimeState[] states,
140.1060 +                                      int[] lastState,
140.1061 +                                      int xstate) {
140.1062 +        // Use the StateInfo with the most bits that matches that of state.
140.1063 +        // If there are none, then fallback to
140.1064 +        // the StateInfo with a state of 0, indicating it'll match anything.
140.1065 +
140.1066 +        // Consider if we have 3 StateInfos a, b and c with states:
140.1067 +        // SELECTED, SELECTED | ENABLED, 0
140.1068 +        //
140.1069 +        // Input                          Return Value
140.1070 +        // -----                          ------------
140.1071 +        // SELECTED                       a
140.1072 +        // SELECTED | ENABLED             b
140.1073 +        // MOUSE_OVER                     c
140.1074 +        // SELECTED | ENABLED | FOCUSED   b
140.1075 +        // ENABLED                        c
140.1076 +
140.1077 +        if (states != null && states.length > 0) {
140.1078 +            int bestCount = 0;
140.1079 +            int bestIndex = -1;
140.1080 +            int wildIndex = -1;
140.1081 +
140.1082 +            //if xstate is 0, then search for the runtime state with component
140.1083 +            //state of 0. That is, find the exact match and return it.
140.1084 +            if (xstate == 0) {
140.1085 +                for (int counter = states.length - 1; counter >= 0; counter--) {
140.1086 +                    if (states[counter].state == 0) {
140.1087 +                        lastState[0] = counter;
140.1088 +                        return states[counter];
140.1089 +                    }
140.1090 +                }
140.1091 +                //an exact match couldn't be found, so there was no match.
140.1092 +                lastState[0] = -1;
140.1093 +                return null;
140.1094 +            }
140.1095 +
140.1096 +            //xstate is some value != 0
140.1097 +
140.1098 +            //determine from which index to start looking. If lastState[0] is -1
140.1099 +            //then we know to start from the end of the state array. Otherwise,
140.1100 +            //we start at the lastIndex - 1.
140.1101 +            int lastStateIndex = lastState == null || lastState[0] == -1 ?
140.1102 +                states.length : lastState[0];
140.1103 +
140.1104 +            for (int counter = lastStateIndex - 1; counter >= 0; counter--) {
140.1105 +                int oState = states[counter].state;
140.1106 +
140.1107 +                if (oState == 0) {
140.1108 +                    if (wildIndex == -1) {
140.1109 +                        wildIndex = counter;
140.1110 +                    }
140.1111 +                } else if ((xstate & oState) == oState) {
140.1112 +                    // This is key, we need to make sure all bits of the
140.1113 +                    // StateInfo match, otherwise a StateInfo with
140.1114 +                    // SELECTED | ENABLED would match ENABLED, which we
140.1115 +                    // don't want.
140.1116 +
140.1117 +                    // This comes from BigInteger.bitCnt
140.1118 +                    int bitCount = oState;
140.1119 +                    bitCount -= (0xaaaaaaaa & bitCount) >>> 1;
140.1120 +                    bitCount = (bitCount & 0x33333333) + ((bitCount >>> 2) &
140.1121 +                            0x33333333);
140.1122 +                    bitCount = bitCount + (bitCount >>> 4) & 0x0f0f0f0f;
140.1123 +                    bitCount += bitCount >>> 8;
140.1124 +                    bitCount += bitCount >>> 16;
140.1125 +                    bitCount = bitCount & 0xff;
140.1126 +                    if (bitCount > bestCount) {
140.1127 +                        bestIndex = counter;
140.1128 +                        bestCount = bitCount;
140.1129 +                    }
140.1130 +                }
140.1131 +            }
140.1132 +            if (bestIndex != -1) {
140.1133 +                lastState[0] = bestIndex;
140.1134 +                return states[bestIndex];
140.1135 +            }
140.1136 +            if (wildIndex != -1) {
140.1137 +                lastState[0] = wildIndex;
140.1138 +                return states[wildIndex];
140.1139 +            }
140.1140 +        }
140.1141 +        lastState[0] = -1;
140.1142 +        return null;
140.1143 +    }
140.1144 +
140.1145 +    /**
140.1146 +     * Contains values such as the UIDefaults and painters asssociated with
140.1147 +     * a state. Whereas <code>State</code> represents a distinct state that a
140.1148 +     * component can be in (such as Enabled), this class represents the colors,
140.1149 +     * fonts, painters, etc associated with some state for this
140.1150 +     * style.
140.1151 +     */
140.1152 +    private final class RuntimeState implements Cloneable {
140.1153 +        int state;
140.1154 +        Painter backgroundPainter;
140.1155 +        Painter foregroundPainter;
140.1156 +        Painter borderPainter;
140.1157 +        String stateName;
140.1158 +        UIDefaults defaults = new UIDefaults(10, .7f);
140.1159 +
140.1160 +        private RuntimeState(int state, String stateName) {
140.1161 +            this.state = state;
140.1162 +            this.stateName = stateName;
140.1163 +        }
140.1164 +
140.1165 +        @Override
140.1166 +        public String toString() {
140.1167 +            return stateName;
140.1168 +        }
140.1169 +
140.1170 +        @Override
140.1171 +        public RuntimeState clone() {
140.1172 +            RuntimeState clone = new RuntimeState(state, stateName);
140.1173 +            clone.backgroundPainter = backgroundPainter;
140.1174 +            clone.foregroundPainter = foregroundPainter;
140.1175 +            clone.borderPainter = borderPainter;
140.1176 +            clone.defaults.putAll(defaults);
140.1177 +            return clone;
140.1178 +        }
140.1179 +    }
140.1180 +
140.1181 +    /**
140.1182 +     * Essentially a struct of data for a style. A default instance of this
140.1183 +     * class is used by NimbusStyle. Additional instances exist for each
140.1184 +     * component that has overrides.
140.1185 +     */
140.1186 +    private static final class Values {
140.1187 +        /**
140.1188 +         * The list of State types. A State represents a type of state, such
140.1189 +         * as Enabled, Default, WindowFocused, etc. These can be custom states.
140.1190 +         */
140.1191 +        State[] stateTypes = null;
140.1192 +        /**
140.1193 +         * The list of actual runtime state representations. These can represent things such
140.1194 +         * as Enabled + Focused. Thus, they differ from States in that they contain
140.1195 +         * several states together, and have associated properties, data, etc.
140.1196 +         */
140.1197 +        RuntimeState[] states = null;
140.1198 +        /**
140.1199 +         * The content margins for this region.
140.1200 +         */
140.1201 +        Insets contentMargins;
140.1202 +        /**
140.1203 +         * Defaults on the region/component level.
140.1204 +         */
140.1205 +        UIDefaults defaults = new UIDefaults(10, .7f);
140.1206 +        /**
140.1207 +         * Simple cache. After a value has been looked up, it is stored
140.1208 +         * in this cache for later retrieval. The key is a concatenation of
140.1209 +         * the property being looked up, two dollar signs, and the extended
140.1210 +         * state. So for example:
140.1211 +         *
140.1212 +         * foo.bar$$2353
140.1213 +         */
140.1214 +        Map<CacheKey,Object> cache = new HashMap<CacheKey,Object>();
140.1215 +    }
140.1216 +
140.1217 +    /**
140.1218 +     * This implementation presupposes that key is never null and that
140.1219 +     * the two keys being checked for equality are never null
140.1220 +     */
140.1221 +    private static final class CacheKey {
140.1222 +        private String key;
140.1223 +        private int xstate;
140.1224 +
140.1225 +        CacheKey(Object key, int xstate) {
140.1226 +            init(key, xstate);
140.1227 +        }
140.1228 +
140.1229 +        void init(Object key, int xstate) {
140.1230 +            this.key = key.toString();
140.1231 +            this.xstate = xstate;
140.1232 +        }
140.1233 +
140.1234 +        @Override
140.1235 +        public boolean equals(Object obj) {
140.1236 +            final CacheKey other = (CacheKey) obj;
140.1237 +            if (obj == null) return false;
140.1238 +            if (this.xstate != other.xstate) return false;
140.1239 +            if (!this.key.equals(other.key)) return false;
140.1240 +            return true;
140.1241 +        }
140.1242 +
140.1243 +        @Override
140.1244 +        public int hashCode() {
140.1245 +            int hash = 3;
140.1246 +            hash = 29 * hash + this.key.hashCode();
140.1247 +            hash = 29 * hash + this.xstate;
140.1248 +            return hash;
140.1249 +        }
140.1250 +    }
140.1251 +
140.1252 +    /**
140.1253 +     * This listener is used to listen to the UIDefaults tables and clear out
140.1254 +     * the cached-precompiled map of defaults in that case.
140.1255 +     */
140.1256 +    private static final class DefaultsListener implements PropertyChangeListener {
140.1257 +        @Override
140.1258 +        public void propertyChange(PropertyChangeEvent evt) {
140.1259 +            AppContext.getAppContext().put("NimbusStyle.defaults", null);
140.1260 +        }
140.1261 +    }
140.1262 +}
   141.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   141.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/OuterGlowEffect.java	Wed Apr 29 00:27:46 2009 -0700
   141.3 @@ -0,0 +1,39 @@
   141.4 +/*
   141.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
   141.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   141.7 + *
   141.8 + * This code is free software; you can redistribute it and/or modify it
   141.9 + * under the terms of the GNU General Public License version 2 only, as
  141.10 + * published by the Free Software Foundation.  Sun designates this
  141.11 + * particular file as subject to the "Classpath" exception as provided
  141.12 + * by Sun in the LICENSE file that accompanied this code.
  141.13 + *
  141.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  141.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  141.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  141.17 + * version 2 for more details (a copy is included in the LICENSE file that
  141.18 + * accompanied this code).
  141.19 + *
  141.20 + * You should have received a copy of the GNU General Public License version
  141.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  141.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  141.23 + *
  141.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  141.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  141.26 + * have any questions.
  141.27 + */
  141.28 +package javax.swing.plaf.nimbus;
  141.29 +
  141.30 +import java.awt.Color;
  141.31 +
  141.32 +/**
  141.33 + * InnerGlowEffect
  141.34 + *
  141.35 + * @author Created by Jasper Potts (Jun 21, 2007)
  141.36 + */
  141.37 +class OuterGlowEffect extends DropShadowEffect {
  141.38 +    OuterGlowEffect() {
  141.39 +        distance = 0;
  141.40 +        color = new Color(255, 255, 211);
  141.41 +    }
  141.42 +}
   142.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   142.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/PainterImpl.template	Wed Apr 29 00:27:46 2009 -0700
   142.3 @@ -0,0 +1,87 @@
   142.4 +/*
   142.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
   142.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   142.7 + *
   142.8 + * This code is free software; you can redistribute it and/or modify it
   142.9 + * under the terms of the GNU General Public License version 2 only, as
  142.10 + * published by the Free Software Foundation.  Sun designates this
  142.11 + * particular file as subject to the "Classpath" exception as provided
  142.12 + * by Sun in the LICENSE file that accompanied this code.
  142.13 + *
  142.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  142.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  142.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  142.17 + * version 2 for more details (a copy is included in the LICENSE file that
  142.18 + * accompanied this code).
  142.19 + *
  142.20 + * You should have received a copy of the GNU General Public License version
  142.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  142.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  142.23 + *
  142.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  142.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  142.26 + * have any questions.
  142.27 + */
  142.28 +package ${PACKAGE};
  142.29 +
  142.30 +import java.awt.*;
  142.31 +import java.awt.geom.*;
  142.32 +import java.awt.image.*;
  142.33 +import javax.swing.*;
  142.34 +import javax.swing.Painter;
  142.35 +
  142.36 +
  142.37 +public final class ${PAINTER_NAME} extends AbstractRegionPainter {
  142.38 +    //package private integers representing the available states that
  142.39 +    //this painter will paint. These are used when creating a new instance
  142.40 +    //of ${PAINTER_NAME} to determine which region/state is being painted
  142.41 +    //by that instance.
  142.42 +${STATIC_DECL}
  142.43 +
  142.44 +    private int state; //refers to one of the static final ints above
  142.45 +    private PaintContext ctx;
  142.46 +
  142.47 +    //the following 4 variables are reused during the painting code of the layers
  142.48 +    private Path2D path = new Path2D.Float();
  142.49 +    private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0);
  142.50 +    private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0);
  142.51 +    private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0);
  142.52 +
  142.53 +    //All Colors used for painting are stored here. Ideally, only those colors being used
  142.54 +    //by a particular instance of ${PAINTER_NAME} would be created. For the moment at least,
  142.55 +    //however, all are created for each instance.
  142.56 +${COLORS_DECL}
  142.57 +
  142.58 +    //Array of current component colors, updated in each paint call
  142.59 +    private Object[] componentColors;
  142.60 +
  142.61 +    public ${PAINTER_NAME}(PaintContext ctx, int state) {
  142.62 +        super();
  142.63 +        this.state = state;
  142.64 +        this.ctx = ctx;
  142.65 +    }
  142.66 +
  142.67 +    @Override
  142.68 +    protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) {
  142.69 +        //populate componentColors array with colors calculated in getExtendedCacheKeys call
  142.70 +        componentColors = extendedCacheKeys;
  142.71 +        //generate this entire method. Each state/bg/fg/border combo that has
  142.72 +        //been painted gets its own KEY and paint method.
  142.73 +        switch(state) {
  142.74 +${DO_PAINT_SWITCH_BODY}
  142.75 +        }
  142.76 +    }
  142.77 +        
  142.78 +${GET_EXTENDED_CACHE_KEYS}
  142.79 +
  142.80 +    @Override
  142.81 +    protected final PaintContext getPaintContext() {
  142.82 +        return ctx;
  142.83 +    }
  142.84 +
  142.85 +${PAINTING_DECL}
  142.86 +
  142.87 +${SHAPES_DECL}
  142.88 +
  142.89 +${GRADIENTS_DECL}
  142.90 +}
   143.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   143.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/ShadowEffect.java	Wed Apr 29 00:27:46 2009 -0700
   143.3 @@ -0,0 +1,103 @@
   143.4 +/*
   143.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
   143.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   143.7 + *
   143.8 + * This code is free software; you can redistribute it and/or modify it
   143.9 + * under the terms of the GNU General Public License version 2 only, as
  143.10 + * published by the Free Software Foundation.  Sun designates this
  143.11 + * particular file as subject to the "Classpath" exception as provided
  143.12 + * by Sun in the LICENSE file that accompanied this code.
  143.13 + *
  143.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  143.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  143.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  143.17 + * version 2 for more details (a copy is included in the LICENSE file that
  143.18 + * accompanied this code).
  143.19 + *
  143.20 + * You should have received a copy of the GNU General Public License version
  143.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  143.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  143.23 + *
  143.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  143.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  143.26 + * have any questions.
  143.27 + */
  143.28 +package javax.swing.plaf.nimbus;
  143.29 +
  143.30 +import java.awt.Color;
  143.31 +
  143.32 +/**
  143.33 + * ShadowEffect - base class with all the standard properties for shadow effects
  143.34 + *
  143.35 + * @author Created by Jasper Potts (Jun 18, 2007)
  143.36 + */
  143.37 +abstract class ShadowEffect extends Effect {
  143.38 +    protected Color color = Color.BLACK;
  143.39 +    /** Opacity a float 0-1 for percentage */
  143.40 +    protected float opacity = 0.75f;
  143.41 +    /** Angle in degrees between 0-360 */
  143.42 +    protected int angle = 135;
  143.43 +    /** Distance in pixels */
  143.44 +    protected int distance = 5;
  143.45 +    /** The shadow spread between 0-100 % */
  143.46 +    protected int spread = 0;
  143.47 +    /** Size in pixels */
  143.48 +    protected int size = 5;
  143.49 +
  143.50 +    // =================================================================================================================
  143.51 +    // Bean methods
  143.52 +
  143.53 +    Color getColor() {
  143.54 +        return color;
  143.55 +    }
  143.56 +
  143.57 +    void setColor(Color color) {
  143.58 +        Color old = getColor();
  143.59 +        this.color = color;
  143.60 +    }
  143.61 +
  143.62 +    float getOpacity() {
  143.63 +        return opacity;
  143.64 +    }
  143.65 +
  143.66 +    void setOpacity(float opacity) {
  143.67 +        float old = getOpacity();
  143.68 +        this.opacity = opacity;
  143.69 +    }
  143.70 +
  143.71 +    int getAngle() {
  143.72 +        return angle;
  143.73 +    }
  143.74 +
  143.75 +    void setAngle(int angle) {
  143.76 +        int old = getAngle();
  143.77 +        this.angle = angle;
  143.78 +    }
  143.79 +
  143.80 +    int getDistance() {
  143.81 +        return distance;
  143.82 +    }
  143.83 +
  143.84 +    void setDistance(int distance) {
  143.85 +        int old = getDistance();
  143.86 +        this.distance = distance;
  143.87 +    }
  143.88 +
  143.89 +    int getSpread() {
  143.90 +        return spread;
  143.91 +    }
  143.92 +
  143.93 +    void setSpread(int spread) {
  143.94 +        int old = getSpread();
  143.95 +        this.spread = spread;
  143.96 +    }
  143.97 +
  143.98 +    int getSize() {
  143.99 +        return size;
 143.100 +    }
 143.101 +
 143.102 +    void setSize(int size) {
 143.103 +        int old = getSize();
 143.104 +        this.size = size;
 143.105 +    }
 143.106 +}
   144.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   144.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/State.java	Wed Apr 29 00:27:46 2009 -0700
   144.3 @@ -0,0 +1,213 @@
   144.4 +/*
   144.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
   144.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   144.7 + *
   144.8 + * This code is free software; you can redistribute it and/or modify it
   144.9 + * under the terms of the GNU General Public License version 2 only, as
  144.10 + * published by the Free Software Foundation.  Sun designates this
  144.11 + * particular file as subject to the "Classpath" exception as provided
  144.12 + * by Sun in the LICENSE file that accompanied this code.
  144.13 + *
  144.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  144.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  144.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  144.17 + * version 2 for more details (a copy is included in the LICENSE file that
  144.18 + * accompanied this code).
  144.19 + *
  144.20 + * You should have received a copy of the GNU General Public License version
  144.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  144.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  144.23 + *
  144.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  144.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  144.26 + * have any questions.
  144.27 + */
  144.28 +package javax.swing.plaf.nimbus;
  144.29 +
  144.30 +import java.util.HashMap;
  144.31 +import java.util.Map;
  144.32 +import javax.swing.JComponent;
  144.33 +import javax.swing.plaf.synth.SynthConstants;
  144.34 +
  144.35 +/**
  144.36 + * <p>Represents a built in, or custom, state in Nimbus.</p>
  144.37 + *
  144.38 + * <p>Synth provides several built in states, which are:
  144.39 + * <ul>
  144.40 + *  <li>Enabled</li>
  144.41 + *  <li>Mouse Over</li>
  144.42 + *  <li>Pressed</li>
  144.43 + *  <li>Disabled</li>
  144.44 + *  <li>Focused</li>
  144.45 + *  <li>Selected</li>
  144.46 + *  <li>Default</li>
  144.47 + * </ul>
  144.48 + *
  144.49 + * <p>However, there are many more states that could be described in a LookAndFeel, and it
  144.50 + * would be nice to style components differently based on these different states.
  144.51 + * For example, a progress bar could be "indeterminate". It would be very convenient
  144.52 + * to allow this to be defined as a "state".</p>
  144.53 + *
  144.54 + * <p>This class, State, is intended to be used for such situations.
  144.55 + * Simply implement the abstract #isInState method. It returns true if the given
  144.56 + * JComponent is "in this state", false otherwise. This method will be called
  144.57 + * <em>many</em> times in <em>performance sensitive loops</em>. It must execute
  144.58 + * very quickly.</p>
  144.59 + *
  144.60 + * <p>For example, the following might be an implementation of a custom
  144.61 + * "Indeterminate" state for JProgressBars:</p>
  144.62 + *
  144.63 + * <pre><code>
  144.64 + *     public final class IndeterminateState extends State&lt;JProgressBar&gt; {
  144.65 + *         public IndeterminateState() {
  144.66 + *             super("Indeterminate");
  144.67 + *         }
  144.68 + *
  144.69 + *         &#64;Override
  144.70 + *         protected boolean isInState(JProgressBar c) {
  144.71 + *             return c.isIndeterminate();
  144.72 + *         }
  144.73 + *     }
  144.74 + * </code></pre>
  144.75 + */
  144.76 +public abstract class State<T extends JComponent>{
  144.77 +    static final Map<String, StandardState> standardStates = new HashMap<String, StandardState>(7);
  144.78 +    static final State Enabled = new StandardState(SynthConstants.ENABLED);
  144.79 +    static final State MouseOver = new StandardState(SynthConstants.MOUSE_OVER);
  144.80 +    static final State Pressed = new StandardState(SynthConstants.PRESSED);
  144.81 +    static final State Disabled = new StandardState(SynthConstants.DISABLED);
  144.82 +    static final State Focused = new StandardState(SynthConstants.FOCUSED);
  144.83 +    static final State Selected = new StandardState(SynthConstants.SELECTED);
  144.84 +    static final State Default = new StandardState(SynthConstants.DEFAULT);
  144.85 +
  144.86 +    private String name;
  144.87 +
  144.88 +    /**
  144.89 +     * <p>Create a new custom State. Specify the name for the state. The name should
  144.90 +     * be unique within the states set for any one particular component.
  144.91 +     * The name of the state should coincide with the name used in UIDefaults.</p>
  144.92 +     *
  144.93 +     * <p>For example, the following would be correct:</p>
  144.94 +     * <pre><code>
  144.95 +     *     defaults.put("Button.States", "Enabled, Foo, Disabled");
  144.96 +     *     defaults.put("Button.Foo", new FooState("Foo"));
  144.97 +     * </code></pre>
  144.98 +     *
  144.99 +     * @param name a simple user friendly name for the state, such as "Indeterminate"
 144.100 +     *        or "EmbeddedPanel" or "Blurred". It is customary to use camel case,
 144.101 +     *        with the first letter capitalized.
 144.102 +     */
 144.103 +    protected State(String name) {
 144.104 +        this.name = name;
 144.105 +    }
 144.106 +
 144.107 +    @Override public String toString() { return name; }
 144.108 +
 144.109 +    /**
 144.110 +     * <p>This is the main entry point, called by NimbusStyle.</p>
 144.111 +     *
 144.112 +     * <p>There are both custom states and standard states. Standard states
 144.113 +     * correlate to the states defined in SynthConstants. When a UI delegate
 144.114 +     * constructs a SynthContext, it specifies the state that the component is
 144.115 +     * in according to the states defined in SynthConstants. Our NimbusStyle
 144.116 +     * will then take this state, and query each State instance in the style
 144.117 +     * asking whether isInState(c, s).</p>
 144.118 +     *
 144.119 +     * <p>Now, only the standard states care about the "s" param. So we have
 144.120 +     * this odd arrangement:</p>
 144.121 +     * <ul>
 144.122 +     *     <li>NimbusStyle calls State.isInState(c, s)</li>
 144.123 +     *     <li>State.isInState(c, s) simply delegates to State.isInState(c)</li>
 144.124 +     *     <li><em>EXCEPT</em>, StandardState overrides State.isInState(c, s) and
 144.125 +     *         returns directly from that method after checking its state, and
 144.126 +     *         does not call isInState(c) (since it is not needed for standard states).</li>
 144.127 +     * </ul>
 144.128 +     */
 144.129 +    boolean isInState(T c, int s) {
 144.130 +        return isInState(c);
 144.131 +    }
 144.132 +
 144.133 +    /**
 144.134 +     * <p>Gets whether the specified JComponent is in the custom state represented
 144.135 +     * by this class. <em>This is an extremely performance sensitive loop.</em>
 144.136 +     * Please take proper precautions to ensure that it executes quickly.</p>
 144.137 +     *
 144.138 +     * <p>Nimbus uses this method to help determine what state a JComponent is
 144.139 +     * in. For example, a custom State could exist for JProgressBar such that
 144.140 +     * it would return <code>true</code> when the progress bar is indeterminate.
 144.141 +     * Such an implementation of this method would simply be:</p>
 144.142 +     *
 144.143 +     * <pre><code> return c.isIndeterminate();</code></pre>
 144.144 +     *
 144.145 +     * @param c the JComponent to test. This will never be null.
 144.146 +     * @return true if <code>c</code> is in the custom state represented by
 144.147 +     *         this <code>State</code> instance
 144.148 +     */
 144.149 +    protected abstract boolean isInState(T c);
 144.150 +
 144.151 +    String getName() { return name; }
 144.152 +
 144.153 +    static boolean isStandardStateName(String name) {
 144.154 +        return standardStates.containsKey(name);
 144.155 +    }
 144.156 +
 144.157 +    static StandardState getStandardState(String name) {
 144.158 +        return standardStates.get(name);
 144.159 +    }
 144.160 +
 144.161 +    static final class StandardState extends State<JComponent> {
 144.162 +        private int state;
 144.163 +
 144.164 +        private StandardState(int state) {
 144.165 +            super(toString(state));
 144.166 +            this.state = state;
 144.167 +            standardStates.put(getName(), this);
 144.168 +        }
 144.169 +
 144.170 +        public int getState() {
 144.171 +            return state;
 144.172 +        }
 144.173 +
 144.174 +        @Override
 144.175 +        boolean isInState(JComponent c, int s) {
 144.176 +            return (s & state) == state;
 144.177 +        }
 144.178 +
 144.179 +        @Override
 144.180 +        protected boolean isInState(JComponent c) {
 144.181 +            throw new AssertionError("This method should never be called");
 144.182 +        }
 144.183 +
 144.184 +        private static String toString(int state) {
 144.185 +            StringBuffer buffer = new StringBuffer();
 144.186 +            if ((state & SynthConstants.DEFAULT) == SynthConstants.DEFAULT) {
 144.187 +                buffer.append("Default");
 144.188 +            }
 144.189 +            if ((state & SynthConstants.DISABLED) == SynthConstants.DISABLED) {
 144.190 +                if (buffer.length() > 0) buffer.append("+");
 144.191 +                buffer.append("Disabled");
 144.192 +            }
 144.193 +            if ((state & SynthConstants.ENABLED) == SynthConstants.ENABLED) {
 144.194 +                if (buffer.length() > 0) buffer.append("+");
 144.195 +                buffer.append("Enabled");
 144.196 +            }
 144.197 +            if ((state & SynthConstants.FOCUSED) == SynthConstants.FOCUSED) {
 144.198 +                if (buffer.length() > 0) buffer.append("+");
 144.199 +                buffer.append("Focused");
 144.200 +            }
 144.201 +            if ((state & SynthConstants.MOUSE_OVER) == SynthConstants.MOUSE_OVER) {
 144.202 +                if (buffer.length() > 0) buffer.append("+");
 144.203 +                buffer.append("MouseOver");
 144.204 +            }
 144.205 +            if ((state & SynthConstants.PRESSED) == SynthConstants.PRESSED) {
 144.206 +                if (buffer.length() > 0) buffer.append("+");
 144.207 +                buffer.append("Pressed");
 144.208 +            }
 144.209 +            if ((state & SynthConstants.SELECTED) == SynthConstants.SELECTED) {
 144.210 +                if (buffer.length() > 0) buffer.append("+");
 144.211 +                buffer.append("Selected");
 144.212 +            }
 144.213 +            return buffer.toString();
 144.214 +        }
 144.215 +    }
 144.216 +}
   145.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   145.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/StateImpl.template	Wed Apr 29 00:27:46 2009 -0700
   145.3 @@ -0,0 +1,40 @@
   145.4 +/*
   145.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
   145.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   145.7 + *
   145.8 + * This code is free software; you can redistribute it and/or modify it
   145.9 + * under the terms of the GNU General Public License version 2 only, as
  145.10 + * published by the Free Software Foundation.  Sun designates this
  145.11 + * particular file as subject to the "Classpath" exception as provided
  145.12 + * by Sun in the LICENSE file that accompanied this code.
  145.13 + *
  145.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  145.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  145.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  145.17 + * version 2 for more details (a copy is included in the LICENSE file that
  145.18 + * accompanied this code).
  145.19 + *
  145.20 + * You should have received a copy of the GNU General Public License version
  145.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  145.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  145.23 + *
  145.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  145.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  145.26 + * have any questions.
  145.27 + */
  145.28 +package ${PACKAGE};
  145.29 +
  145.30 +import java.awt.*;
  145.31 +import javax.swing.*;
  145.32 +
  145.33 +
  145.34 +class ${STATE_NAME} extends State {
  145.35 +    ${STATE_NAME}() {
  145.36 +        super("${STATE_KEY}");
  145.37 +    }
  145.38 +
  145.39 +    @Override protected boolean isInState(JComponent c) {
  145.40 +${BODY}
  145.41 +    }
  145.42 +}
  145.43 +
   146.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   146.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/SynthPainterImpl.java	Wed Apr 29 00:27:46 2009 -0700
   146.3 @@ -0,0 +1,2802 @@
   146.4 +/*
   146.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
   146.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   146.7 + *
   146.8 + * This code is free software; you can redistribute it and/or modify it
   146.9 + * under the terms of the GNU General Public License version 2 only, as
  146.10 + * published by the Free Software Foundation.  Sun designates this
  146.11 + * particular file as subject to the "Classpath" exception as provided
  146.12 + * by Sun in the LICENSE file that accompanied this code.
  146.13 + *
  146.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  146.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  146.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  146.17 + * version 2 for more details (a copy is included in the LICENSE file that
  146.18 + * accompanied this code).
  146.19 + *
  146.20 + * You should have received a copy of the GNU General Public License version
  146.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  146.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  146.23 + *
  146.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  146.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  146.26 + * have any questions.
  146.27 + */
  146.28 +package javax.swing.plaf.nimbus;
  146.29 +
  146.30 +import java.awt.*;
  146.31 +import java.awt.geom.AffineTransform;
  146.32 +import java.awt.geom.NoninvertibleTransformException;
  146.33 +import java.awt.image.BufferedImage;
  146.34 +import java.util.*;
  146.35 +import javax.swing.*;
  146.36 +import javax.swing.plaf.synth.SynthContext;
  146.37 +import javax.swing.plaf.synth.SynthPainter;
  146.38 +import javax.swing.plaf.synth.SynthConstants;
  146.39 +
  146.40 +import javax.swing.Painter;
  146.41 +
  146.42 +
  146.43 +class SynthPainterImpl extends SynthPainter {
  146.44 +    private NimbusStyle style;
  146.45 +
  146.46 +    SynthPainterImpl(NimbusStyle style) {
  146.47 +        this.style = style;
  146.48 +    }
  146.49 +
  146.50 +    /**
  146.51 +     * Paint the provided painter using the provided transform at the specified
  146.52 +     * position and size. Handles if g is a non 2D Graphics by painting via a
  146.53 +     * BufferedImage.
  146.54 +     */
  146.55 +    private void paint(Painter p, SynthContext ctx, Graphics g, int x, int y,
  146.56 +                       int w, int h, AffineTransform transform) {
  146.57 +        if (p != null) {
  146.58 +            if (g instanceof Graphics2D){
  146.59 +                Graphics2D gfx = (Graphics2D)g;
  146.60 +                if (transform!=null){
  146.61 +                    gfx.transform(transform);
  146.62 +                }
  146.63 +                gfx.translate(x, y);
  146.64 +                p.paint(gfx, ctx.getComponent(), w, h);
  146.65 +                gfx.translate(-x, -y);
  146.66 +                if (transform!=null){
  146.67 +                    try {
  146.68 +                        gfx.transform(transform.createInverse());
  146.69 +                    } catch (NoninvertibleTransformException e) {
  146.70 +                        // this should never happen as we are in control of all
  146.71 +                        // calls into this method and only ever pass in simple
  146.72 +                        // transforms of rotate, flip and translates
  146.73 +                        e.printStackTrace();
  146.74 +                    }
  146.75 +                }
  146.76 +            } else {
  146.77 +                // use image if we are printing to a Java 1.1 PrintGraphics as
  146.78 +                // it is not a instance of Graphics2D
  146.79 +                BufferedImage img = new BufferedImage(w,h,
  146.80 +                        BufferedImage.TYPE_INT_ARGB);
  146.81 +                Graphics2D gfx = img.createGraphics();
  146.82 +                if (transform!=null){
  146.83 +                    gfx.transform(transform);
  146.84 +                }
  146.85 +                p.paint(gfx, ctx.getComponent(), w, h);
  146.86 +                gfx.dispose();
  146.87 +                g.drawImage(img,x,y,null);
  146.88 +                img = null;
  146.89 +            }
  146.90 +        }
  146.91 +    }
  146.92 +
  146.93 +    private void paintBackground(SynthContext ctx, Graphics g, int x, int y,
  146.94 +                                 int w, int h, AffineTransform transform) {
  146.95 +        // if the background color of the component is 100% transparent
  146.96 +        // then we should not paint any background graphics. This is a solution
  146.97 +        // for there being no way of turning off Nimbus background painting as
  146.98 +        // basic components are all non-opaque by default.
  146.99 +        Component c = ctx.getComponent();
 146.100 +        Color bg = (c != null) ? c.getBackground() : null;
 146.101 +        if (bg == null || bg.getAlpha() > 0){
 146.102 +            Painter backgroundPainter = style.getBackgroundPainter(ctx);
 146.103 +            if (backgroundPainter != null) {
 146.104 +                paint(backgroundPainter, ctx, g, x, y, w, h,transform);
 146.105 +            }
 146.106 +        }
 146.107 +    }
 146.108 +
 146.109 +    private void paintForeground(SynthContext ctx, Graphics g, int x, int y,
 146.110 +                                 int w, int h, AffineTransform transform) {
 146.111 +        Painter foregroundPainter = style.getForegroundPainter(ctx);
 146.112 +        if (foregroundPainter != null) {
 146.113 +            paint(foregroundPainter, ctx, g, x, y, w, h,transform);
 146.114 +        }
 146.115 +    }
 146.116 +
 146.117 +    private void paintBorder(SynthContext ctx, Graphics g, int x, int y, int w,
 146.118 +                             int h, AffineTransform transform) {
 146.119 +        Painter borderPainter = style.getBorderPainter(ctx);
 146.120 +        if (borderPainter != null) {
 146.121 +            paint(borderPainter, ctx, g, x, y, w, h,transform);
 146.122 +        }
 146.123 +    }
 146.124 +
 146.125 +    private void paintBackground(SynthContext ctx, Graphics g, int x, int y, int w, int h, int orientation) {
 146.126 +        Component c = ctx.getComponent();
 146.127 +        boolean ltr = c.getComponentOrientation().isLeftToRight();
 146.128 +        // Don't RTL flip JSpliders as they handle it internaly
 146.129 +        if (ctx.getComponent() instanceof JSlider) ltr = true;
 146.130 +
 146.131 +        if (orientation == SwingConstants.VERTICAL && ltr) {
 146.132 +            AffineTransform transform = new AffineTransform();
 146.133 +            transform.scale(-1, 1);
 146.134 +            transform.rotate(Math.toRadians(90));
 146.135 +            paintBackground(ctx, g, y, x, h, w, transform);
 146.136 +        } else if (orientation == SwingConstants.VERTICAL) {
 146.137 +            AffineTransform transform = new AffineTransform();
 146.138 +            transform.rotate(Math.toRadians(90));
 146.139 +            transform.translate(0,-(x+w));
 146.140 +            paintBackground(ctx, g, y, x, h, w, transform);
 146.141 +        } else if (orientation == SwingConstants.HORIZONTAL && ltr) {
 146.142 +            paintBackground(ctx, g, x, y, w, h, null);
 146.143 +        } else {
 146.144 +            //horizontal and right-to-left orientation
 146.145 +            AffineTransform transform = new AffineTransform();
 146.146 +            transform.translate(x,y);
 146.147 +            transform.scale(-1, 1);
 146.148 +            transform.translate(-w,0);
 146.149 +            paintBackground(ctx, g, 0, 0, w, h, transform);
 146.150 +        }
 146.151 +    }
 146.152 +
 146.153 +    private void paintBorder(SynthContext ctx, Graphics g, int x, int y, int w, int h, int orientation) {
 146.154 +        Component c = ctx.getComponent();
 146.155 +        boolean ltr = c.getComponentOrientation().isLeftToRight();
 146.156 +        if (orientation == SwingConstants.VERTICAL && ltr) {
 146.157 +            AffineTransform transform = new AffineTransform();
 146.158 +            transform.scale(-1, 1);
 146.159 +            transform.rotate(Math.toRadians(90));
 146.160 +            paintBorder(ctx, g, y, x, h, w, transform);
 146.161 +        } else if (orientation == SwingConstants.VERTICAL) {
 146.162 +            AffineTransform transform = new AffineTransform();
 146.163 +            transform.rotate(Math.toRadians(90));
 146.164 +            transform.translate(0, -(x + w));
 146.165 +            paintBorder(ctx, g, y, 0, h, w, transform);
 146.166 +        } else if (orientation == SwingConstants.HORIZONTAL && ltr) {
 146.167 +            paintBorder(ctx, g, x, y, w, h, null);
 146.168 +        } else {
 146.169 +            //horizontal and right-to-left orientation
 146.170 +            paintBorder(ctx, g, x, y, w, h, null);
 146.171 +        }
 146.172 +    }
 146.173 +
 146.174 +    private void paintForeground(SynthContext ctx, Graphics g, int x, int y, int w, int h, int orientation) {
 146.175 +        Component c = ctx.getComponent();
 146.176 +        boolean ltr = c.getComponentOrientation().isLeftToRight();
 146.177 +        if (orientation == SwingConstants.VERTICAL && ltr) {
 146.178 +            AffineTransform transform = new AffineTransform();
 146.179 +            transform.scale(-1, 1);
 146.180 +            transform.rotate(Math.toRadians(90));
 146.181 +            paintForeground(ctx, g, y, x, h, w, transform);
 146.182 +        } else if (orientation == SwingConstants.VERTICAL) {
 146.183 +            AffineTransform transform = new AffineTransform();
 146.184 +            transform.rotate(Math.toRadians(90));
 146.185 +            transform.translate(0, -(x + w));
 146.186 +            paintForeground(ctx, g, y, 0, h, w, transform);
 146.187 +        } else if (orientation == SwingConstants.HORIZONTAL && ltr) {
 146.188 +            paintForeground(ctx, g, x, y, w, h, null);
 146.189 +        } else {
 146.190 +            //horizontal and right-to-left orientation
 146.191 +            paintForeground(ctx, g, x, y, w, h, null);
 146.192 +        }
 146.193 +    }
 146.194 +
 146.195 +    /**
 146.196 +     * Paints the background of an arrow button. Arrow buttons are created by
 146.197 +     * some components, such as <code>JScrollBar</code>.
 146.198 +     *
 146.199 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.200 +     *        <code>Region</code> to paint to
 146.201 +     * @param g <code>Graphics</code> to paint to
 146.202 +     * @param x X coordinate of the area to paint to
 146.203 +     * @param y Y coordinate of the area to paint to
 146.204 +     * @param w Width of the area to paint to
 146.205 +     * @param h Height of the area to paint to
 146.206 +     */
 146.207 +    public void paintArrowButtonBackground(SynthContext context,
 146.208 +                                           Graphics g, int x, int y,
 146.209 +                                           int w, int h) {
 146.210 +        if (context.getComponent().getComponentOrientation().isLeftToRight()){
 146.211 +            paintBackground(context, g, x, y, w, h, null);
 146.212 +        } else {
 146.213 +            AffineTransform transform = new AffineTransform();
 146.214 +            transform.translate(x,y);
 146.215 +            transform.scale(-1, 1);
 146.216 +            transform.translate(-w,0);
 146.217 +            paintBackground(context, g, 0, 0, w, h, transform);
 146.218 +        }
 146.219 +    }
 146.220 +
 146.221 +    /**
 146.222 +     * Paints the border of an arrow button. Arrow buttons are created by
 146.223 +     * some components, such as <code>JScrollBar</code>.
 146.224 +     *
 146.225 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.226 +     *        <code>Region</code> to paint to
 146.227 +     * @param g <code>Graphics</code> to paint to
 146.228 +     * @param x X coordinate of the area to paint to
 146.229 +     * @param y Y coordinate of the area to paint to
 146.230 +     * @param w Width of the area to paint to
 146.231 +     * @param h Height of the area to paint to
 146.232 +     */
 146.233 +    public void paintArrowButtonBorder(SynthContext context,
 146.234 +                                       Graphics g, int x, int y,
 146.235 +                                       int w, int h) {
 146.236 +        paintBorder(context, g, x, y, w, h, null);
 146.237 +    }
 146.238 +
 146.239 +    /**
 146.240 +     * Paints the foreground of an arrow button. This method is responsible
 146.241 +     * for drawing a graphical representation of a direction, typically
 146.242 +     * an arrow. Arrow buttons are created by
 146.243 +     * some components, such as <code>JScrollBar</code>
 146.244 +     *
 146.245 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.246 +     *        <code>Region</code> to paint to
 146.247 +     * @param g <code>Graphics</code> to paint to
 146.248 +     * @param x X coordinate of the area to paint to
 146.249 +     * @param y Y coordinate of the area to paint to
 146.250 +     * @param w Width of the area to paint to
 146.251 +     * @param h Height of the area to paint to
 146.252 +     * @param direction One of SwingConstants.NORTH, SwingConstants.SOUTH
 146.253 +     *                  SwingConstants.EAST or SwingConstants.WEST
 146.254 +     */
 146.255 +    public void paintArrowButtonForeground(SynthContext context,
 146.256 +                                           Graphics g, int x, int y,
 146.257 +                                           int w, int h,
 146.258 +                                           int direction) {
 146.259 +        //assume that the painter is arranged with the arrow pointing... LEFT?
 146.260 +        String compName = context.getComponent().getName();
 146.261 +        boolean ltr = context.getComponent().
 146.262 +                getComponentOrientation().isLeftToRight();
 146.263 +        // The hard coding for spinners here needs to be replaced by a more
 146.264 +        // general method for disabling rotation
 146.265 +        if ("Spinner.nextButton".equals(compName) ||
 146.266 +                "Spinner.previousButton".equals(compName)) {
 146.267 +            if (ltr){
 146.268 +                paintForeground(context, g, x, y, w, h, null);
 146.269 +            } else {
 146.270 +                AffineTransform transform = new AffineTransform();
 146.271 +                transform.translate(w, 0);
 146.272 +                transform.scale(-1, 1);
 146.273 +                paintForeground(context, g, x, y, w, h, transform);
 146.274 +            }
 146.275 +        } else if (direction == SwingConstants.WEST) {
 146.276 +            paintForeground(context, g, x, y, w, h, null);
 146.277 +        } else if (direction == SwingConstants.NORTH) {
 146.278 +            if (ltr){
 146.279 +                AffineTransform transform = new AffineTransform();
 146.280 +                transform.scale(-1, 1);
 146.281 +                transform.rotate(Math.toRadians(90));
 146.282 +                paintForeground(context, g, y, 0, h, w, transform);
 146.283 +            } else {
 146.284 +                AffineTransform transform = new AffineTransform();
 146.285 +                transform.rotate(Math.toRadians(90));
 146.286 +                transform.translate(0, -(x + w));
 146.287 +                paintForeground(context, g, y, 0, h, w, transform);
 146.288 +            }
 146.289 +        } else if (direction == SwingConstants.EAST) {
 146.290 +            AffineTransform transform = new AffineTransform();
 146.291 +            transform.translate(w, 0);
 146.292 +            transform.scale(-1, 1);
 146.293 +            paintForeground(context, g, x, y, w, h, transform);
 146.294 +        } else if (direction == SwingConstants.SOUTH) {
 146.295 +            if (ltr){
 146.296 +                AffineTransform transform = new AffineTransform();
 146.297 +                transform.rotate(Math.toRadians(-90));
 146.298 +                transform.translate(-h, 0);
 146.299 +                paintForeground(context, g, y, x, h, w, transform);
 146.300 +            } else {
 146.301 +                AffineTransform transform = new AffineTransform();
 146.302 +                transform.scale(-1, 1);
 146.303 +                transform.rotate(Math.toRadians(-90));
 146.304 +                transform.translate(-(h+y), -(w+x));
 146.305 +                paintForeground(context, g, y, x, h, w, transform);
 146.306 +            }
 146.307 +        }
 146.308 +    }
 146.309 +
 146.310 +    /**
 146.311 +     * Paints the background of a button.
 146.312 +     *
 146.313 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.314 +     *        <code>Region</code> to paint to
 146.315 +     * @param g <code>Graphics</code> to paint to
 146.316 +     * @param x X coordinate of the area to paint to
 146.317 +     * @param y Y coordinate of the area to paint to
 146.318 +     * @param w Width of the area to paint to
 146.319 +     * @param h Height of the area to paint to
 146.320 +     */
 146.321 +    public void paintButtonBackground(SynthContext context,
 146.322 +                                      Graphics g, int x, int y,
 146.323 +                                      int w, int h) {
 146.324 +        paintBackground(context, g, x, y, w, h, null);
 146.325 +    }
 146.326 +
 146.327 +    /**
 146.328 +     * Paints the border of a button.
 146.329 +     *
 146.330 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.331 +     *        <code>Region</code> to paint to
 146.332 +     * @param g <code>Graphics</code> to paint to
 146.333 +     * @param x X coordinate of the area to paint to
 146.334 +     * @param y Y coordinate of the area to paint to
 146.335 +     * @param w Width of the area to paint to
 146.336 +     * @param h Height of the area to paint to
 146.337 +     */
 146.338 +    public void paintButtonBorder(SynthContext context,
 146.339 +                                  Graphics g, int x, int y,
 146.340 +                                  int w, int h) {
 146.341 +        paintBorder(context, g, x, y, w, h, null);
 146.342 +    }
 146.343 +
 146.344 +    /**
 146.345 +     * Paints the background of a check box menu item.
 146.346 +     *
 146.347 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.348 +     *        <code>Region</code> to paint to
 146.349 +     * @param g <code>Graphics</code> to paint to
 146.350 +     * @param x X coordinate of the area to paint to
 146.351 +     * @param y Y coordinate of the area to paint to
 146.352 +     * @param w Width of the area to paint to
 146.353 +     * @param h Height of the area to paint to
 146.354 +     */
 146.355 +    public void paintCheckBoxMenuItemBackground(SynthContext context,
 146.356 +                                                Graphics g, int x, int y,
 146.357 +                                                int w, int h) {
 146.358 +        paintBackground(context, g, x, y, w, h, null);
 146.359 +    }
 146.360 +
 146.361 +    /**
 146.362 +     * Paints the border of a check box menu item.
 146.363 +     *
 146.364 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.365 +     *        <code>Region</code> to paint to
 146.366 +     * @param g <code>Graphics</code> to paint to
 146.367 +     * @param x X coordinate of the area to paint to
 146.368 +     * @param y Y coordinate of the area to paint to
 146.369 +     * @param w Width of the area to paint to
 146.370 +     * @param h Height of the area to paint to
 146.371 +     */
 146.372 +    public void paintCheckBoxMenuItemBorder(SynthContext context,
 146.373 +                                            Graphics g, int x, int y,
 146.374 +                                            int w, int h) {
 146.375 +        paintBorder(context, g, x, y, w, h, null);
 146.376 +    }
 146.377 +
 146.378 +    /**
 146.379 +     * Paints the background of a check box.
 146.380 +     *
 146.381 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.382 +     *        <code>Region</code> to paint to
 146.383 +     * @param g <code>Graphics</code> to paint to
 146.384 +     * @param x X coordinate of the area to paint to
 146.385 +     * @param y Y coordinate of the area to paint to
 146.386 +     * @param w Width of the area to paint to
 146.387 +     * @param h Height of the area to paint to
 146.388 +     */
 146.389 +    public void paintCheckBoxBackground(SynthContext context,
 146.390 +                                        Graphics g, int x, int y,
 146.391 +                                        int w, int h) {
 146.392 +        paintBackground(context, g, x, y, w, h, null);
 146.393 +    }
 146.394 +
 146.395 +    /**
 146.396 +     * Paints the border of a check box.
 146.397 +     *
 146.398 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.399 +     *        <code>Region</code> to paint to
 146.400 +     * @param g <code>Graphics</code> to paint to
 146.401 +     * @param x X coordinate of the area to paint to
 146.402 +     * @param y Y coordinate of the area to paint to
 146.403 +     * @param w Width of the area to paint to
 146.404 +     * @param h Height of the area to paint to
 146.405 +     */
 146.406 +    public void paintCheckBoxBorder(SynthContext context,
 146.407 +                                    Graphics g, int x, int y,
 146.408 +                                    int w, int h) {
 146.409 +        paintBorder(context, g, x, y, w, h, null);
 146.410 +    }
 146.411 +
 146.412 +    /**
 146.413 +     * Paints the background of a color chooser.
 146.414 +     *
 146.415 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.416 +     *        <code>Region</code> to paint to
 146.417 +     * @param g <code>Graphics</code> to paint to
 146.418 +     * @param x X coordinate of the area to paint to
 146.419 +     * @param y Y coordinate of the area to paint to
 146.420 +     * @param w Width of the area to paint to
 146.421 +     * @param h Height of the area to paint to
 146.422 +     */
 146.423 +    public void paintColorChooserBackground(SynthContext context,
 146.424 +                                            Graphics g, int x, int y,
 146.425 +                                            int w, int h) {
 146.426 +        paintBackground(context, g, x, y, w, h, null);
 146.427 +    }
 146.428 +
 146.429 +    /**
 146.430 +     * Paints the border of a color chooser.
 146.431 +     *
 146.432 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.433 +     *        <code>Region</code> to paint to
 146.434 +     * @param g <code>Graphics</code> to paint to
 146.435 +     * @param x X coordinate of the area to paint to
 146.436 +     * @param y Y coordinate of the area to paint to
 146.437 +     * @param w Width of the area to paint to
 146.438 +     * @param h Height of the area to paint to
 146.439 +     */
 146.440 +    public void paintColorChooserBorder(SynthContext context,
 146.441 +                                        Graphics g, int x, int y,
 146.442 +                                        int w, int h) {
 146.443 +        paintBorder(context, g, x, y, w, h, null);
 146.444 +    }
 146.445 +
 146.446 +    /**
 146.447 +     * Paints the background of a combo box.
 146.448 +     *
 146.449 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.450 +     *        <code>Region</code> to paint to
 146.451 +     * @param g <code>Graphics</code> to paint to
 146.452 +     * @param x X coordinate of the area to paint to
 146.453 +     * @param y Y coordinate of the area to paint to
 146.454 +     * @param w Width of the area to paint to
 146.455 +     * @param h Height of the area to paint to
 146.456 +     */
 146.457 +    public void paintComboBoxBackground(SynthContext context,
 146.458 +                                        Graphics g, int x, int y,
 146.459 +                                        int w, int h) {
 146.460 +        if (context.getComponent().getComponentOrientation().isLeftToRight()){
 146.461 +            paintBackground(context, g, x, y, w, h, null);
 146.462 +        } else {
 146.463 +            AffineTransform transform = new AffineTransform();
 146.464 +            transform.translate(x,y);
 146.465 +            transform.scale(-1, 1);
 146.466 +            transform.translate(-w,0);
 146.467 +            paintBackground(context, g, 0, 0, w, h, transform);
 146.468 +        }
 146.469 +    }
 146.470 +
 146.471 +    /**
 146.472 +     * Paints the border of a combo box.
 146.473 +     *
 146.474 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.475 +     *        <code>Region</code> to paint to
 146.476 +     * @param g <code>Graphics</code> to paint to
 146.477 +     * @param x X coordinate of the area to paint to
 146.478 +     * @param y Y coordinate of the area to paint to
 146.479 +     * @param w Width of the area to paint to
 146.480 +     * @param h Height of the area to paint to
 146.481 +     */
 146.482 +    public void paintComboBoxBorder(SynthContext context,
 146.483 +                                        Graphics g, int x, int y,
 146.484 +                                        int w, int h) {
 146.485 +        paintBorder(context, g, x, y, w, h, null);
 146.486 +    }
 146.487 +
 146.488 +    /**
 146.489 +     * Paints the background of a desktop icon.
 146.490 +     *
 146.491 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.492 +     *        <code>Region</code> to paint to
 146.493 +     * @param g <code>Graphics</code> to paint to
 146.494 +     * @param x X coordinate of the area to paint to
 146.495 +     * @param y Y coordinate of the area to paint to
 146.496 +     * @param w Width of the area to paint to
 146.497 +     * @param h Height of the area to paint to
 146.498 +     */
 146.499 +    public void paintDesktopIconBackground(SynthContext context,
 146.500 +                                        Graphics g, int x, int y,
 146.501 +                                        int w, int h) {
 146.502 +        paintBackground(context, g, x, y, w, h, null);
 146.503 +    }
 146.504 +
 146.505 +    /**
 146.506 +     * Paints the border of a desktop icon.
 146.507 +     *
 146.508 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.509 +     *        <code>Region</code> to paint to
 146.510 +     * @param g <code>Graphics</code> to paint to
 146.511 +     * @param x X coordinate of the area to paint to
 146.512 +     * @param y Y coordinate of the area to paint to
 146.513 +     * @param w Width of the area to paint to
 146.514 +     * @param h Height of the area to paint to
 146.515 +     */
 146.516 +    public void paintDesktopIconBorder(SynthContext context,
 146.517 +                                           Graphics g, int x, int y,
 146.518 +                                           int w, int h) {
 146.519 +        paintBorder(context, g, x, y, w, h, null);
 146.520 +    }
 146.521 +
 146.522 +    /**
 146.523 +     * Paints the background of a desktop pane.
 146.524 +     *
 146.525 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.526 +     *        <code>Region</code> to paint to
 146.527 +     * @param g <code>Graphics</code> to paint to
 146.528 +     * @param x X coordinate of the area to paint to
 146.529 +     * @param y Y coordinate of the area to paint to
 146.530 +     * @param w Width of the area to paint to
 146.531 +     * @param h Height of the area to paint to
 146.532 +     */
 146.533 +    public void paintDesktopPaneBackground(SynthContext context,
 146.534 +                                           Graphics g, int x, int y,
 146.535 +                                           int w, int h) {
 146.536 +        paintBackground(context, g, x, y, w, h, null);
 146.537 +    }
 146.538 +
 146.539 +    /**
 146.540 +     * Paints the background of a desktop pane.
 146.541 +     *
 146.542 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.543 +     *        <code>Region</code> to paint to
 146.544 +     * @param g <code>Graphics</code> to paint to
 146.545 +     * @param x X coordinate of the area to paint to
 146.546 +     * @param y Y coordinate of the area to paint to
 146.547 +     * @param w Width of the area to paint to
 146.548 +     * @param h Height of the area to paint to
 146.549 +     */
 146.550 +    public void paintDesktopPaneBorder(SynthContext context,
 146.551 +                                       Graphics g, int x, int y,
 146.552 +                                       int w, int h) {
 146.553 +        paintBorder(context, g, x, y, w, h, null);
 146.554 +    }
 146.555 +
 146.556 +    /**
 146.557 +     * Paints the background of an editor pane.
 146.558 +     *
 146.559 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.560 +     *        <code>Region</code> to paint to
 146.561 +     * @param g <code>Graphics</code> to paint to
 146.562 +     * @param x X coordinate of the area to paint to
 146.563 +     * @param y Y coordinate of the area to paint to
 146.564 +     * @param w Width of the area to paint to
 146.565 +     * @param h Height of the area to paint to
 146.566 +     */
 146.567 +    public void paintEditorPaneBackground(SynthContext context,
 146.568 +                                          Graphics g, int x, int y,
 146.569 +                                          int w, int h) {
 146.570 +        paintBackground(context, g, x, y, w, h, null);
 146.571 +    }
 146.572 +
 146.573 +    /**
 146.574 +     * Paints the border of an editor pane.
 146.575 +     *
 146.576 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.577 +     *        <code>Region</code> to paint to
 146.578 +     * @param g <code>Graphics</code> to paint to
 146.579 +     * @param x X coordinate of the area to paint to
 146.580 +     * @param y Y coordinate of the area to paint to
 146.581 +     * @param w Width of the area to paint to
 146.582 +     * @param h Height of the area to paint to
 146.583 +     */
 146.584 +    public void paintEditorPaneBorder(SynthContext context,
 146.585 +                                      Graphics g, int x, int y,
 146.586 +                                      int w, int h) {
 146.587 +        paintBorder(context, g, x, y, w, h, null);
 146.588 +    }
 146.589 +
 146.590 +    /**
 146.591 +     * Paints the background of a file chooser.
 146.592 +     *
 146.593 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.594 +     *        <code>Region</code> to paint to
 146.595 +     * @param g <code>Graphics</code> to paint to
 146.596 +     * @param x X coordinate of the area to paint to
 146.597 +     * @param y Y coordinate of the area to paint to
 146.598 +     * @param w Width of the area to paint to
 146.599 +     * @param h Height of the area to paint to
 146.600 +     */
 146.601 +    public void paintFileChooserBackground(SynthContext context,
 146.602 +                                          Graphics g, int x, int y,
 146.603 +                                          int w, int h) {
 146.604 +        paintBackground(context, g, x, y, w, h, null);
 146.605 +    }
 146.606 +
 146.607 +    /**
 146.608 +     * Paints the border of a file chooser.
 146.609 +     *
 146.610 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.611 +     *        <code>Region</code> to paint to
 146.612 +     * @param g <code>Graphics</code> to paint to
 146.613 +     * @param x X coordinate of the area to paint to
 146.614 +     * @param y Y coordinate of the area to paint to
 146.615 +     * @param w Width of the area to paint to
 146.616 +     * @param h Height of the area to paint to
 146.617 +     */
 146.618 +    public void paintFileChooserBorder(SynthContext context,
 146.619 +                                      Graphics g, int x, int y,
 146.620 +                                      int w, int h) {
 146.621 +        paintBorder(context, g, x, y, w, h, null);
 146.622 +    }
 146.623 +
 146.624 +    /**
 146.625 +     * Paints the background of a formatted text field.
 146.626 +     *
 146.627 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.628 +     *        <code>Region</code> to paint to
 146.629 +     * @param g <code>Graphics</code> to paint to
 146.630 +     * @param x X coordinate of the area to paint to
 146.631 +     * @param y Y coordinate of the area to paint to
 146.632 +     * @param w Width of the area to paint to
 146.633 +     * @param h Height of the area to paint to
 146.634 +     */
 146.635 +    public void paintFormattedTextFieldBackground(SynthContext context,
 146.636 +                                          Graphics g, int x, int y,
 146.637 +                                          int w, int h) {
 146.638 +        if (context.getComponent().getComponentOrientation().isLeftToRight()){
 146.639 +            paintBackground(context, g, x, y, w, h, null);
 146.640 +        } else {
 146.641 +            AffineTransform transform = new AffineTransform();
 146.642 +            transform.translate(x,y);
 146.643 +            transform.scale(-1, 1);
 146.644 +            transform.translate(-w,0);
 146.645 +            paintBackground(context, g, 0, 0, w, h, transform);
 146.646 +        }
 146.647 +    }
 146.648 +
 146.649 +    /**
 146.650 +     * Paints the border of a formatted text field.
 146.651 +     *
 146.652 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.653 +     *        <code>Region</code> to paint to
 146.654 +     * @param g <code>Graphics</code> to paint to
 146.655 +     * @param x X coordinate of the area to paint to
 146.656 +     * @param y Y coordinate of the area to paint to
 146.657 +     * @param w Width of the area to paint to
 146.658 +     * @param h Height of the area to paint to
 146.659 +     */
 146.660 +    public void paintFormattedTextFieldBorder(SynthContext context,
 146.661 +                                      Graphics g, int x, int y,
 146.662 +                                      int w, int h) {
 146.663 +        if (context.getComponent().getComponentOrientation().isLeftToRight()){
 146.664 +            paintBorder(context, g, x, y, w, h, null);
 146.665 +        } else {
 146.666 +            AffineTransform transform = new AffineTransform();
 146.667 +            transform.translate(x,y);
 146.668 +            transform.scale(-1, 1);
 146.669 +            transform.translate(-w,0);
 146.670 +            paintBorder(context, g, 0, 0, w, h, transform);
 146.671 +        }
 146.672 +    }
 146.673 +
 146.674 +    /**
 146.675 +     * Paints the background of an internal frame title pane.
 146.676 +     *
 146.677 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.678 +     *        <code>Region</code> to paint to
 146.679 +     * @param g <code>Graphics</code> to paint to
 146.680 +     * @param x X coordinate of the area to paint to
 146.681 +     * @param y Y coordinate of the area to paint to
 146.682 +     * @param w Width of the area to paint to
 146.683 +     * @param h Height of the area to paint to
 146.684 +     */
 146.685 +    public void paintInternalFrameTitlePaneBackground(SynthContext context,
 146.686 +                                          Graphics g, int x, int y,
 146.687 +                                          int w, int h) {
 146.688 +        paintBackground(context, g, x, y, w, h, null);
 146.689 +    }
 146.690 +
 146.691 +    /**
 146.692 +     * Paints the border of an internal frame title pane.
 146.693 +     *
 146.694 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.695 +     *        <code>Region</code> to paint to
 146.696 +     * @param g <code>Graphics</code> to paint to
 146.697 +     * @param x X coordinate of the area to paint to
 146.698 +     * @param y Y coordinate of the area to paint to
 146.699 +     * @param w Width of the area to paint to
 146.700 +     * @param h Height of the area to paint to
 146.701 +     */
 146.702 +    public void paintInternalFrameTitlePaneBorder(SynthContext context,
 146.703 +                                      Graphics g, int x, int y,
 146.704 +                                      int w, int h) {
 146.705 +        paintBorder(context, g, x, y, w, h, null);
 146.706 +    }
 146.707 +
 146.708 +    /**
 146.709 +     * Paints the background of an internal frame.
 146.710 +     *
 146.711 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.712 +     *        <code>Region</code> to paint to
 146.713 +     * @param g <code>Graphics</code> to paint to
 146.714 +     * @param x X coordinate of the area to paint to
 146.715 +     * @param y Y coordinate of the area to paint to
 146.716 +     * @param w Width of the area to paint to
 146.717 +     * @param h Height of the area to paint to
 146.718 +     */
 146.719 +    public void paintInternalFrameBackground(SynthContext context,
 146.720 +                                          Graphics g, int x, int y,
 146.721 +                                          int w, int h) {
 146.722 +        paintBackground(context, g, x, y, w, h, null);
 146.723 +    }
 146.724 +
 146.725 +    /**
 146.726 +     * Paints the border of an internal frame.
 146.727 +     *
 146.728 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.729 +     *        <code>Region</code> to paint to
 146.730 +     * @param g <code>Graphics</code> to paint to
 146.731 +     * @param x X coordinate of the area to paint to
 146.732 +     * @param y Y coordinate of the area to paint to
 146.733 +     * @param w Width of the area to paint to
 146.734 +     * @param h Height of the area to paint to
 146.735 +     */
 146.736 +    public void paintInternalFrameBorder(SynthContext context,
 146.737 +                                      Graphics g, int x, int y,
 146.738 +                                      int w, int h) {
 146.739 +        paintBorder(context, g, x, y, w, h, null);
 146.740 +    }
 146.741 +
 146.742 +    /**
 146.743 +     * Paints the background of a label.
 146.744 +     *
 146.745 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.746 +     *        <code>Region</code> to paint to
 146.747 +     * @param g <code>Graphics</code> to paint to
 146.748 +     * @param x X coordinate of the area to paint to
 146.749 +     * @param y Y coordinate of the area to paint to
 146.750 +     * @param w Width of the area to paint to
 146.751 +     * @param h Height of the area to paint to
 146.752 +     */
 146.753 +    public void paintLabelBackground(SynthContext context,
 146.754 +                                     Graphics g, int x, int y,
 146.755 +                                     int w, int h) {
 146.756 +        paintBackground(context, g, x, y, w, h, null);
 146.757 +    }
 146.758 +
 146.759 +    /**
 146.760 +     * Paints the border of a label.
 146.761 +     *
 146.762 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.763 +     *        <code>Region</code> to paint to
 146.764 +     * @param g <code>Graphics</code> to paint to
 146.765 +     * @param x X coordinate of the area to paint to
 146.766 +     * @param y Y coordinate of the area to paint to
 146.767 +     * @param w Width of the area to paint to
 146.768 +     * @param h Height of the area to paint to
 146.769 +     */
 146.770 +    public void paintLabelBorder(SynthContext context,
 146.771 +                                 Graphics g, int x, int y,
 146.772 +                                 int w, int h) {
 146.773 +        paintBorder(context, g, x, y, w, h, null);
 146.774 +    }
 146.775 +
 146.776 +    /**
 146.777 +     * Paints the background of a list.
 146.778 +     *
 146.779 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.780 +     *        <code>Region</code> to paint to
 146.781 +     * @param g <code>Graphics</code> to paint to
 146.782 +     * @param x X coordinate of the area to paint to
 146.783 +     * @param y Y coordinate of the area to paint to
 146.784 +     * @param w Width of the area to paint to
 146.785 +     * @param h Height of the area to paint to
 146.786 +     */
 146.787 +    public void paintListBackground(SynthContext context,
 146.788 +                                     Graphics g, int x, int y,
 146.789 +                                     int w, int h) {
 146.790 +        paintBackground(context, g, x, y, w, h, null);
 146.791 +    }
 146.792 +
 146.793 +    /**
 146.794 +     * Paints the border of a list.
 146.795 +     *
 146.796 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.797 +     *        <code>Region</code> to paint to
 146.798 +     * @param g <code>Graphics</code> to paint to
 146.799 +     * @param x X coordinate of the area to paint to
 146.800 +     * @param y Y coordinate of the area to paint to
 146.801 +     * @param w Width of the area to paint to
 146.802 +     * @param h Height of the area to paint to
 146.803 +     */
 146.804 +    public void paintListBorder(SynthContext context,
 146.805 +                                 Graphics g, int x, int y,
 146.806 +                                 int w, int h) {
 146.807 +        paintBorder(context, g, x, y, w, h, null);
 146.808 +    }
 146.809 +
 146.810 +    /**
 146.811 +     * Paints the background of a menu bar.
 146.812 +     *
 146.813 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.814 +     *        <code>Region</code> to paint to
 146.815 +     * @param g <code>Graphics</code> to paint to
 146.816 +     * @param x X coordinate of the area to paint to
 146.817 +     * @param y Y coordinate of the area to paint to
 146.818 +     * @param w Width of the area to paint to
 146.819 +     * @param h Height of the area to paint to
 146.820 +     */
 146.821 +    public void paintMenuBarBackground(SynthContext context,
 146.822 +                                     Graphics g, int x, int y,
 146.823 +                                     int w, int h) {
 146.824 +        paintBackground(context, g, x, y, w, h, null);
 146.825 +    }
 146.826 +
 146.827 +    /**
 146.828 +     * Paints the border of a menu bar.
 146.829 +     *
 146.830 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.831 +     *        <code>Region</code> to paint to
 146.832 +     * @param g <code>Graphics</code> to paint to
 146.833 +     * @param x X coordinate of the area to paint to
 146.834 +     * @param y Y coordinate of the area to paint to
 146.835 +     * @param w Width of the area to paint to
 146.836 +     * @param h Height of the area to paint to
 146.837 +     */
 146.838 +    public void paintMenuBarBorder(SynthContext context,
 146.839 +                                 Graphics g, int x, int y,
 146.840 +                                 int w, int h) {
 146.841 +        paintBorder(context, g, x, y, w, h, null);
 146.842 +    }
 146.843 +
 146.844 +    /**
 146.845 +     * Paints the background of a menu item.
 146.846 +     *
 146.847 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.848 +     *        <code>Region</code> to paint to
 146.849 +     * @param g <code>Graphics</code> to paint to
 146.850 +     * @param x X coordinate of the area to paint to
 146.851 +     * @param y Y coordinate of the area to paint to
 146.852 +     * @param w Width of the area to paint to
 146.853 +     * @param h Height of the area to paint to
 146.854 +     */
 146.855 +    public void paintMenuItemBackground(SynthContext context,
 146.856 +                                     Graphics g, int x, int y,
 146.857 +                                     int w, int h) {
 146.858 +        paintBackground(context, g, x, y, w, h, null);
 146.859 +    }
 146.860 +
 146.861 +    /**
 146.862 +     * Paints the border of a menu item.
 146.863 +     *
 146.864 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.865 +     *        <code>Region</code> to paint to
 146.866 +     * @param g <code>Graphics</code> to paint to
 146.867 +     * @param x X coordinate of the area to paint to
 146.868 +     * @param y Y coordinate of the area to paint to
 146.869 +     * @param w Width of the area to paint to
 146.870 +     * @param h Height of the area to paint to
 146.871 +     */
 146.872 +    public void paintMenuItemBorder(SynthContext context,
 146.873 +                                 Graphics g, int x, int y,
 146.874 +                                 int w, int h) {
 146.875 +        paintBorder(context, g, x, y, w, h, null);
 146.876 +    }
 146.877 +
 146.878 +    /**
 146.879 +     * Paints the background of a menu.
 146.880 +     *
 146.881 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.882 +     *        <code>Region</code> to paint to
 146.883 +     * @param g <code>Graphics</code> to paint to
 146.884 +     * @param x X coordinate of the area to paint to
 146.885 +     * @param y Y coordinate of the area to paint to
 146.886 +     * @param w Width of the area to paint to
 146.887 +     * @param h Height of the area to paint to
 146.888 +     */
 146.889 +    public void paintMenuBackground(SynthContext context,
 146.890 +                                     Graphics g, int x, int y,
 146.891 +                                     int w, int h) {
 146.892 +        paintBackground(context, g, x, y, w, h, null);
 146.893 +    }
 146.894 +
 146.895 +    /**
 146.896 +     * Paints the border of a menu.
 146.897 +     *
 146.898 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.899 +     *        <code>Region</code> to paint to
 146.900 +     * @param g <code>Graphics</code> to paint to
 146.901 +     * @param x X coordinate of the area to paint to
 146.902 +     * @param y Y coordinate of the area to paint to
 146.903 +     * @param w Width of the area to paint to
 146.904 +     * @param h Height of the area to paint to
 146.905 +     */
 146.906 +    public void paintMenuBorder(SynthContext context,
 146.907 +                                 Graphics g, int x, int y,
 146.908 +                                 int w, int h) {
 146.909 +        paintBorder(context, g, x, y, w, h, null);
 146.910 +    }
 146.911 +
 146.912 +    /**
 146.913 +     * Paints the background of an option pane.
 146.914 +     *
 146.915 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.916 +     *        <code>Region</code> to paint to
 146.917 +     * @param g <code>Graphics</code> to paint to
 146.918 +     * @param x X coordinate of the area to paint to
 146.919 +     * @param y Y coordinate of the area to paint to
 146.920 +     * @param w Width of the area to paint to
 146.921 +     * @param h Height of the area to paint to
 146.922 +     */
 146.923 +    public void paintOptionPaneBackground(SynthContext context,
 146.924 +                                     Graphics g, int x, int y,
 146.925 +                                     int w, int h) {
 146.926 +        paintBackground(context, g, x, y, w, h, null);
 146.927 +    }
 146.928 +
 146.929 +    /**
 146.930 +     * Paints the border of an option pane.
 146.931 +     *
 146.932 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.933 +     *        <code>Region</code> to paint to
 146.934 +     * @param g <code>Graphics</code> to paint to
 146.935 +     * @param x X coordinate of the area to paint to
 146.936 +     * @param y Y coordinate of the area to paint to
 146.937 +     * @param w Width of the area to paint to
 146.938 +     * @param h Height of the area to paint to
 146.939 +     */
 146.940 +    public void paintOptionPaneBorder(SynthContext context,
 146.941 +                                 Graphics g, int x, int y,
 146.942 +                                 int w, int h) {
 146.943 +        paintBorder(context, g, x, y, w, h, null);
 146.944 +    }
 146.945 +
 146.946 +    /**
 146.947 +     * Paints the background of a panel.
 146.948 +     *
 146.949 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.950 +     *        <code>Region</code> to paint to
 146.951 +     * @param g <code>Graphics</code> to paint to
 146.952 +     * @param x X coordinate of the area to paint to
 146.953 +     * @param y Y coordinate of the area to paint to
 146.954 +     * @param w Width of the area to paint to
 146.955 +     * @param h Height of the area to paint to
 146.956 +     */
 146.957 +    public void paintPanelBackground(SynthContext context,
 146.958 +                                     Graphics g, int x, int y,
 146.959 +                                     int w, int h) {
 146.960 +        paintBackground(context, g, x, y, w, h, null);
 146.961 +    }
 146.962 +
 146.963 +    /**
 146.964 +     * Paints the border of a panel.
 146.965 +     *
 146.966 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.967 +     *        <code>Region</code> to paint to
 146.968 +     * @param g <code>Graphics</code> to paint to
 146.969 +     * @param x X coordinate of the area to paint to
 146.970 +     * @param y Y coordinate of the area to paint to
 146.971 +     * @param w Width of the area to paint to
 146.972 +     * @param h Height of the area to paint to
 146.973 +     */
 146.974 +    public void paintPanelBorder(SynthContext context,
 146.975 +                                 Graphics g, int x, int y,
 146.976 +                                 int w, int h) {
 146.977 +        paintBorder(context, g, x, y, w, h, null);
 146.978 +    }
 146.979 +
 146.980 +    /**
 146.981 +     * Paints the background of a password field.
 146.982 +     *
 146.983 +     * @param context SynthContext identifying the <code>JComponent</code> and
 146.984 +     *        <code>Region</code> to paint to
 146.985 +     * @param g <code>Graphics</code> to paint to
 146.986 +     * @param x X coordinate of the area to paint to
 146.987 +     * @param y Y coordinate of the area to paint to
 146.988 +     * @param w Width of the area to paint to
 146.989 +     * @param h Height of the area to paint to
 146.990 +     */
 146.991 +    public void paintPasswordFieldBackground(SynthContext context,
 146.992 +                                     Graphics g, int x, int y,
 146.993 +                                     int w, int h) {
 146.994 +        paintBackground(context, g, x, y, w, h, null);
 146.995 +    }
 146.996 +
 146.997 +    /**
 146.998 +     * Paints the border of a password field.
 146.999 +     *
146.1000 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1001 +     *        <code>Region</code> to paint to
146.1002 +     * @param g <code>Graphics</code> to paint to
146.1003 +     * @param x X coordinate of the area to paint to
146.1004 +     * @param y Y coordinate of the area to paint to
146.1005 +     * @param w Width of the area to paint to
146.1006 +     * @param h Height of the area to paint to
146.1007 +     */
146.1008 +    public void paintPasswordFieldBorder(SynthContext context,
146.1009 +                                 Graphics g, int x, int y,
146.1010 +                                 int w, int h) {
146.1011 +        paintBorder(context, g, x, y, w, h, null);
146.1012 +    }
146.1013 +
146.1014 +    /**
146.1015 +     * Paints the background of a popup menu.
146.1016 +     *
146.1017 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1018 +     *        <code>Region</code> to paint to
146.1019 +     * @param g <code>Graphics</code> to paint to
146.1020 +     * @param x X coordinate of the area to paint to
146.1021 +     * @param y Y coordinate of the area to paint to
146.1022 +     * @param w Width of the area to paint to
146.1023 +     * @param h Height of the area to paint to
146.1024 +     */
146.1025 +    public void paintPopupMenuBackground(SynthContext context,
146.1026 +                                     Graphics g, int x, int y,
146.1027 +                                     int w, int h) {
146.1028 +        paintBackground(context, g, x, y, w, h, null);
146.1029 +    }
146.1030 +
146.1031 +    /**
146.1032 +     * Paints the border of a popup menu.
146.1033 +     *
146.1034 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1035 +     *        <code>Region</code> to paint to
146.1036 +     * @param g <code>Graphics</code> to paint to
146.1037 +     * @param x X coordinate of the area to paint to
146.1038 +     * @param y Y coordinate of the area to paint to
146.1039 +     * @param w Width of the area to paint to
146.1040 +     * @param h Height of the area to paint to
146.1041 +     */
146.1042 +    public void paintPopupMenuBorder(SynthContext context,
146.1043 +                                 Graphics g, int x, int y,
146.1044 +                                 int w, int h) {
146.1045 +        paintBorder(context, g, x, y, w, h, null);
146.1046 +    }
146.1047 +
146.1048 +    /**
146.1049 +     * Paints the background of a progress bar.
146.1050 +     *
146.1051 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1052 +     *        <code>Region</code> to paint to
146.1053 +     * @param g <code>Graphics</code> to paint to
146.1054 +     * @param x X coordinate of the area to paint to
146.1055 +     * @param y Y coordinate of the area to paint to
146.1056 +     * @param w Width of the area to paint to
146.1057 +     * @param h Height of the area to paint to
146.1058 +     */
146.1059 +    public void paintProgressBarBackground(SynthContext context,
146.1060 +                                     Graphics g, int x, int y,
146.1061 +                                     int w, int h) {
146.1062 +        paintBackground(context, g, x, y, w, h, null);
146.1063 +    }
146.1064 +
146.1065 +    /**
146.1066 +     * Paints the background of a progress bar. This implementation invokes the
146.1067 +     * method of the same name without the orientation.
146.1068 +     *
146.1069 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1070 +     *        <code>Region</code> to paint to
146.1071 +     * @param g <code>Graphics</code> to paint to
146.1072 +     * @param x X coordinate of the area to paint to
146.1073 +     * @param y Y coordinate of the area to paint to
146.1074 +     * @param w Width of the area to paint to
146.1075 +     * @param h Height of the area to paint to
146.1076 +     * @param orientation one of <code>JProgressBar.HORIZONTAL</code> or
146.1077 +     *                    <code>JProgressBar.VERTICAL</code>
146.1078 +     * @since 1.6
146.1079 +     */
146.1080 +    public void paintProgressBarBackground(SynthContext context,
146.1081 +                                     Graphics g, int x, int y,
146.1082 +                                     int w, int h, int orientation) {
146.1083 +        paintBackground(context, g, x, y, w, h, orientation);
146.1084 +    }
146.1085 +
146.1086 +    /**
146.1087 +     * Paints the border of a progress bar.
146.1088 +     *
146.1089 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1090 +     *        <code>Region</code> to paint to
146.1091 +     * @param g <code>Graphics</code> to paint to
146.1092 +     * @param x X coordinate of the area to paint to
146.1093 +     * @param y Y coordinate of the area to paint to
146.1094 +     * @param w Width of the area to paint to
146.1095 +     * @param h Height of the area to paint to
146.1096 +     */
146.1097 +    public void paintProgressBarBorder(SynthContext context,
146.1098 +                                 Graphics g, int x, int y,
146.1099 +                                 int w, int h) {
146.1100 +        paintBorder(context, g, x, y, w, h, null);
146.1101 +    }
146.1102 +
146.1103 +    /**
146.1104 +     * Paints the border of a progress bar. This implementation invokes the
146.1105 +     * method of the same name without the orientation.
146.1106 +     *
146.1107 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1108 +     *        <code>Region</code> to paint to
146.1109 +     * @param g <code>Graphics</code> to paint to
146.1110 +     * @param x X coordinate of the area to paint to
146.1111 +     * @param y Y coordinate of the area to paint to
146.1112 +     * @param w Width of the area to paint to
146.1113 +     * @param h Height of the area to paint to
146.1114 +     * @param orientation one of <code>JProgressBar.HORIZONTAL</code> or
146.1115 +     *                    <code>JProgressBar.VERTICAL</code>
146.1116 +     * @since 1.6
146.1117 +     */
146.1118 +    public void paintProgressBarBorder(SynthContext context,
146.1119 +                                 Graphics g, int x, int y,
146.1120 +                                 int w, int h, int orientation) {
146.1121 +        paintBorder(context, g, x, y, w, h, orientation);
146.1122 +    }
146.1123 +
146.1124 +    /**
146.1125 +     * Paints the foreground of a progress bar. is responsible for
146.1126 +     * providing an indication of the progress of the progress bar.
146.1127 +     *
146.1128 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1129 +     *        <code>Region</code> to paint to
146.1130 +     * @param g <code>Graphics</code> to paint to
146.1131 +     * @param x X coordinate of the area to paint to
146.1132 +     * @param y Y coordinate of the area to paint to
146.1133 +     * @param w Width of the area to paint to
146.1134 +     * @param h Height of the area to paint to
146.1135 +     * @param orientation one of <code>JProgressBar.HORIZONTAL</code> or
146.1136 +     *                    <code>JProgressBar.VERTICAL</code>
146.1137 +     */
146.1138 +    public void paintProgressBarForeground(SynthContext context,
146.1139 +                                 Graphics g, int x, int y,
146.1140 +                                 int w, int h, int orientation) {
146.1141 +        paintForeground(context, g, x, y, w, h, orientation);
146.1142 +    }
146.1143 +
146.1144 +    /**
146.1145 +     * Paints the background of a radio button menu item.
146.1146 +     *
146.1147 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1148 +     *        <code>Region</code> to paint to
146.1149 +     * @param g <code>Graphics</code> to paint to
146.1150 +     * @param x X coordinate of the area to paint to
146.1151 +     * @param y Y coordinate of the area to paint to
146.1152 +     * @param w Width of the area to paint to
146.1153 +     * @param h Height of the area to paint to
146.1154 +     */
146.1155 +    public void paintRadioButtonMenuItemBackground(SynthContext context,
146.1156 +                                     Graphics g, int x, int y,
146.1157 +                                     int w, int h) {
146.1158 +        paintBackground(context, g, x, y, w, h, null);
146.1159 +    }
146.1160 +
146.1161 +    /**
146.1162 +     * Paints the border of a radio button menu item.
146.1163 +     *
146.1164 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1165 +     *        <code>Region</code> to paint to
146.1166 +     * @param g <code>Graphics</code> to paint to
146.1167 +     * @param x X coordinate of the area to paint to
146.1168 +     * @param y Y coordinate of the area to paint to
146.1169 +     * @param w Width of the area to paint to
146.1170 +     * @param h Height of the area to paint to
146.1171 +     */
146.1172 +    public void paintRadioButtonMenuItemBorder(SynthContext context,
146.1173 +                                 Graphics g, int x, int y,
146.1174 +                                 int w, int h) {
146.1175 +        paintBorder(context, g, x, y, w, h, null);
146.1176 +    }
146.1177 +
146.1178 +    /**
146.1179 +     * Paints the background of a radio button.
146.1180 +     *
146.1181 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1182 +     *        <code>Region</code> to paint to
146.1183 +     * @param g <code>Graphics</code> to paint to
146.1184 +     * @param x X coordinate of the area to paint to
146.1185 +     * @param y Y coordinate of the area to paint to
146.1186 +     * @param w Width of the area to paint to
146.1187 +     * @param h Height of the area to paint to
146.1188 +     */
146.1189 +    public void paintRadioButtonBackground(SynthContext context,
146.1190 +                                     Graphics g, int x, int y,
146.1191 +                                     int w, int h) {
146.1192 +        paintBackground(context, g, x, y, w, h, null);
146.1193 +    }
146.1194 +
146.1195 +    /**
146.1196 +     * Paints the border of a radio button.
146.1197 +     *
146.1198 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1199 +     *        <code>Region</code> to paint to
146.1200 +     * @param g <code>Graphics</code> to paint to
146.1201 +     * @param x X coordinate of the area to paint to
146.1202 +     * @param y Y coordinate of the area to paint to
146.1203 +     * @param w Width of the area to paint to
146.1204 +     * @param h Height of the area to paint to
146.1205 +     */
146.1206 +    public void paintRadioButtonBorder(SynthContext context,
146.1207 +                                 Graphics g, int x, int y,
146.1208 +                                 int w, int h) {
146.1209 +        paintBorder(context, g, x, y, w, h, null);
146.1210 +    }
146.1211 +
146.1212 +    /**
146.1213 +     * Paints the background of a root pane.
146.1214 +     *
146.1215 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1216 +     *        <code>Region</code> to paint to
146.1217 +     * @param g <code>Graphics</code> to paint to
146.1218 +     * @param x X coordinate of the area to paint to
146.1219 +     * @param y Y coordinate of the area to paint to
146.1220 +     * @param w Width of the area to paint to
146.1221 +     * @param h Height of the area to paint to
146.1222 +     */
146.1223 +    public void paintRootPaneBackground(SynthContext context,
146.1224 +                                     Graphics g, int x, int y,
146.1225 +                                     int w, int h) {
146.1226 +        paintBackground(context, g, x, y, w, h, null);
146.1227 +    }
146.1228 +
146.1229 +    /**
146.1230 +     * Paints the border of a root pane.
146.1231 +     *
146.1232 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1233 +     *        <code>Region</code> to paint to
146.1234 +     * @param g <code>Graphics</code> to paint to
146.1235 +     * @param x X coordinate of the area to paint to
146.1236 +     * @param y Y coordinate of the area to paint to
146.1237 +     * @param w Width of the area to paint to
146.1238 +     * @param h Height of the area to paint to
146.1239 +     */
146.1240 +    public void paintRootPaneBorder(SynthContext context,
146.1241 +                                 Graphics g, int x, int y,
146.1242 +                                 int w, int h) {
146.1243 +        paintBorder(context, g, x, y, w, h, null);
146.1244 +    }
146.1245 +
146.1246 +    /**
146.1247 +     * Paints the background of a scrollbar.
146.1248 +     *
146.1249 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1250 +     *        <code>Region</code> to paint to
146.1251 +     * @param g <code>Graphics</code> to paint to
146.1252 +     * @param x X coordinate of the area to paint to
146.1253 +     * @param y Y coordinate of the area to paint to
146.1254 +     * @param w Width of the area to paint to
146.1255 +     * @param h Height of the area to paint to
146.1256 +     */
146.1257 +    public void paintScrollBarBackground(SynthContext context,
146.1258 +                                     Graphics g, int x, int y,
146.1259 +                                     int w, int h) {
146.1260 +        paintBackground(context, g, x, y, w, h, null);
146.1261 +    }
146.1262 +
146.1263 +    /**
146.1264 +     * Paints the background of a scrollbar. This implementation invokes the
146.1265 +     * method of the same name without the orientation.
146.1266 +     *
146.1267 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1268 +     *        <code>Region</code> to paint to
146.1269 +     * @param g <code>Graphics</code> to paint to
146.1270 +     * @param x X coordinate of the area to paint to
146.1271 +     * @param y Y coordinate of the area to paint to
146.1272 +     * @param w Width of the area to paint to
146.1273 +     * @param h Height of the area to paint to
146.1274 +     * @param orientation Orientation of the JScrollBar, one of
146.1275 +     *                    <code>JScrollBar.HORIZONTAL</code> or
146.1276 +     *                    <code>JScrollBar.VERTICAL</code>
146.1277 +     * @since 1.6
146.1278 +     */
146.1279 +    public void paintScrollBarBackground(SynthContext context,
146.1280 +                                     Graphics g, int x, int y,
146.1281 +                                     int w, int h, int orientation) {
146.1282 +        paintBackground(context, g, x, y, w, h, orientation);
146.1283 +    }
146.1284 +
146.1285 +    /**
146.1286 +     * Paints the border of a scrollbar.
146.1287 +     *
146.1288 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1289 +     *        <code>Region</code> to paint to
146.1290 +     * @param g <code>Graphics</code> to paint to
146.1291 +     * @param x X coordinate of the area to paint to
146.1292 +     * @param y Y coordinate of the area to paint to
146.1293 +     * @param w Width of the area to paint to
146.1294 +     * @param h Height of the area to paint to
146.1295 +     */
146.1296 +    public void paintScrollBarBorder(SynthContext context,
146.1297 +                                 Graphics g, int x, int y,
146.1298 +                                 int w, int h) {
146.1299 +        paintBorder(context, g, x, y, w, h, null);
146.1300 +    }
146.1301 +
146.1302 +    /**
146.1303 +     * Paints the border of a scrollbar. This implementation invokes the
146.1304 +     * method of the same name without the orientation.
146.1305 +     *
146.1306 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1307 +     *        <code>Region</code> to paint to
146.1308 +     * @param g <code>Graphics</code> to paint to
146.1309 +     * @param x X coordinate of the area to paint to
146.1310 +     * @param y Y coordinate of the area to paint to
146.1311 +     * @param w Width of the area to paint to
146.1312 +     * @param h Height of the area to paint to
146.1313 +     * @param orientation Orientation of the JScrollBar, one of
146.1314 +     *                    <code>JScrollBar.HORIZONTAL</code> or
146.1315 +     *                    <code>JScrollBar.VERTICAL</code>
146.1316 +     * @since 1.6
146.1317 +     */
146.1318 +    public void paintScrollBarBorder(SynthContext context,
146.1319 +                                 Graphics g, int x, int y,
146.1320 +                                 int w, int h, int orientation) {
146.1321 +        paintBorder(context, g, x, y, w, h, orientation);
146.1322 +    }
146.1323 +
146.1324 +    /**
146.1325 +     * Paints the background of the thumb of a scrollbar. The thumb provides
146.1326 +     * a graphical indication as to how much of the Component is visible in a
146.1327 +     * <code>JScrollPane</code>.
146.1328 +     *
146.1329 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1330 +     *        <code>Region</code> to paint to
146.1331 +     * @param g <code>Graphics</code> to paint to
146.1332 +     * @param x X coordinate of the area to paint to
146.1333 +     * @param y Y coordinate of the area to paint to
146.1334 +     * @param w Width of the area to paint to
146.1335 +     * @param h Height of the area to paint to
146.1336 +     * @param orientation Orientation of the JScrollBar, one of
146.1337 +     *                    <code>JScrollBar.HORIZONTAL</code> or
146.1338 +     *                    <code>JScrollBar.VERTICAL</code>
146.1339 +     */
146.1340 +    public void paintScrollBarThumbBackground(SynthContext context,
146.1341 +                                     Graphics g, int x, int y,
146.1342 +                                     int w, int h, int orientation) {
146.1343 +        paintBackground(context, g, x, y, w, h, orientation);
146.1344 +    }
146.1345 +
146.1346 +    /**
146.1347 +     * Paints the border of the thumb of a scrollbar. The thumb provides
146.1348 +     * a graphical indication as to how much of the Component is visible in a
146.1349 +     * <code>JScrollPane</code>.
146.1350 +     *
146.1351 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1352 +     *        <code>Region</code> to paint to
146.1353 +     * @param g <code>Graphics</code> to paint to
146.1354 +     * @param x X coordinate of the area to paint to
146.1355 +     * @param y Y coordinate of the area to paint to
146.1356 +     * @param w Width of the area to paint to
146.1357 +     * @param h Height of the area to paint to
146.1358 +     * @param orientation Orientation of the JScrollBar, one of
146.1359 +     *                    <code>JScrollBar.HORIZONTAL</code> or
146.1360 +     *                    <code>JScrollBar.VERTICAL</code>
146.1361 +     */
146.1362 +    public void paintScrollBarThumbBorder(SynthContext context,
146.1363 +                                 Graphics g, int x, int y,
146.1364 +                                 int w, int h, int orientation) {
146.1365 +        paintBorder(context, g, x, y, w, h, orientation);
146.1366 +    }
146.1367 +
146.1368 +    /**
146.1369 +     * Paints the background of the track of a scrollbar. The track contains
146.1370 +     * the thumb.
146.1371 +     *
146.1372 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1373 +     *        <code>Region</code> to paint to
146.1374 +     * @param g <code>Graphics</code> to paint to
146.1375 +     * @param x X coordinate of the area to paint to
146.1376 +     * @param y Y coordinate of the area to paint to
146.1377 +     * @param w Width of the area to paint to
146.1378 +     * @param h Height of the area to paint to
146.1379 +     */
146.1380 +    public void paintScrollBarTrackBackground(SynthContext context,
146.1381 +                                     Graphics g, int x, int y,
146.1382 +                                     int w, int h) {
146.1383 +        paintBackground(context, g, x, y, w, h, null);
146.1384 +    }
146.1385 +
146.1386 +    /**
146.1387 +     * Paints the background of the track of a scrollbar. The track contains
146.1388 +     * the thumb. This implementation invokes the method of the same name without
146.1389 +     * the orientation.
146.1390 +     *
146.1391 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1392 +     *        <code>Region</code> to paint to
146.1393 +     * @param g <code>Graphics</code> to paint to
146.1394 +     * @param x X coordinate of the area to paint to
146.1395 +     * @param y Y coordinate of the area to paint to
146.1396 +     * @param w Width of the area to paint to
146.1397 +     * @param h Height of the area to paint to
146.1398 +     * @param orientation Orientation of the JScrollBar, one of
146.1399 +     *                    <code>JScrollBar.HORIZONTAL</code> or
146.1400 +     *                    <code>JScrollBar.VERTICAL</code>
146.1401 +     * @since 1.6
146.1402 +     */
146.1403 +    public void paintScrollBarTrackBackground(SynthContext context,
146.1404 +                                     Graphics g, int x, int y,
146.1405 +                                     int w, int h, int orientation) {
146.1406 +        paintBackground(context, g, x, y, w, h, orientation);
146.1407 +    }
146.1408 +
146.1409 +    /**
146.1410 +     * Paints the border of the track of a scrollbar. The track contains
146.1411 +     * the thumb.
146.1412 +     *
146.1413 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1414 +     *        <code>Region</code> to paint to
146.1415 +     * @param g <code>Graphics</code> to paint to
146.1416 +     * @param x X coordinate of the area to paint to
146.1417 +     * @param y Y coordinate of the area to paint to
146.1418 +     * @param w Width of the area to paint to
146.1419 +     * @param h Height of the area to paint to
146.1420 +     */
146.1421 +    public void paintScrollBarTrackBorder(SynthContext context,
146.1422 +                                 Graphics g, int x, int y,
146.1423 +                                 int w, int h) {
146.1424 +        paintBorder(context, g, x, y, w, h, null);
146.1425 +    }
146.1426 +
146.1427 +    /**
146.1428 +     * Paints the border of the track of a scrollbar. The track contains
146.1429 +     * the thumb. This implementation invokes the method of the same name without
146.1430 +     * the orientation.
146.1431 +     *
146.1432 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1433 +     *        <code>Region</code> to paint to
146.1434 +     * @param g <code>Graphics</code> to paint to
146.1435 +     * @param x X coordinate of the area to paint to
146.1436 +     * @param y Y coordinate of the area to paint to
146.1437 +     * @param w Width of the area to paint to
146.1438 +     * @param h Height of the area to paint to
146.1439 +     * @param orientation Orientation of the JScrollBar, one of
146.1440 +     *                    <code>JScrollBar.HORIZONTAL</code> or
146.1441 +     *                    <code>JScrollBar.VERTICAL</code>
146.1442 +     * @since 1.6
146.1443 +     */
146.1444 +    public void paintScrollBarTrackBorder(SynthContext context,
146.1445 +                                 Graphics g, int x, int y,
146.1446 +                                 int w, int h, int orientation) {
146.1447 +        paintBorder(context, g, x, y, w, h, orientation);
146.1448 +    }
146.1449 +
146.1450 +    /**
146.1451 +     * Paints the background of a scroll pane.
146.1452 +     *
146.1453 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1454 +     *        <code>Region</code> to paint to
146.1455 +     * @param g <code>Graphics</code> to paint to
146.1456 +     * @param x X coordinate of the area to paint to
146.1457 +     * @param y Y coordinate of the area to paint to
146.1458 +     * @param w Width of the area to paint to
146.1459 +     * @param h Height of the area to paint to
146.1460 +     */
146.1461 +    public void paintScrollPaneBackground(SynthContext context,
146.1462 +                                     Graphics g, int x, int y,
146.1463 +                                     int w, int h) {
146.1464 +        paintBackground(context, g, x, y, w, h, null);
146.1465 +    }
146.1466 +
146.1467 +    /**
146.1468 +     * Paints the border of a scroll pane.
146.1469 +     *
146.1470 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1471 +     *        <code>Region</code> to paint to
146.1472 +     * @param g <code>Graphics</code> to paint to
146.1473 +     * @param x X coordinate of the area to paint to
146.1474 +     * @param y Y coordinate of the area to paint to
146.1475 +     * @param w Width of the area to paint to
146.1476 +     * @param h Height of the area to paint to
146.1477 +     */
146.1478 +    public void paintScrollPaneBorder(SynthContext context,
146.1479 +                                 Graphics g, int x, int y,
146.1480 +                                 int w, int h) {
146.1481 +        paintBorder(context, g, x, y, w, h, null);
146.1482 +    }
146.1483 +
146.1484 +    /**
146.1485 +     * Paints the background of a separator.
146.1486 +     *
146.1487 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1488 +     *        <code>Region</code> to paint to
146.1489 +     * @param g <code>Graphics</code> to paint to
146.1490 +     * @param x X coordinate of the area to paint to
146.1491 +     * @param y Y coordinate of the area to paint to
146.1492 +     * @param w Width of the area to paint to
146.1493 +     * @param h Height of the area to paint to
146.1494 +     */
146.1495 +    public void paintSeparatorBackground(SynthContext context,
146.1496 +                                     Graphics g, int x, int y,
146.1497 +                                     int w, int h) {
146.1498 +        paintBackground(context, g, x, y, w, h, null);
146.1499 +    }
146.1500 +
146.1501 +    /**
146.1502 +     * Paints the background of a separator. This implementation invokes the
146.1503 +     * method of the same name without the orientation.
146.1504 +     *
146.1505 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1506 +     *        <code>Region</code> to paint to
146.1507 +     * @param g <code>Graphics</code> to paint to
146.1508 +     * @param x X coordinate of the area to paint to
146.1509 +     * @param y Y coordinate of the area to paint to
146.1510 +     * @param w Width of the area to paint to
146.1511 +     * @param h Height of the area to paint to
146.1512 +     * @param orientation One of <code>JSeparator.HORIZONTAL</code> or
146.1513 +     *                           <code>JSeparator.VERTICAL</code>
146.1514 +     * @since 1.6
146.1515 +     */
146.1516 +    public void paintSeparatorBackground(SynthContext context,
146.1517 +                                     Graphics g, int x, int y,
146.1518 +                                     int w, int h, int orientation) {
146.1519 +        paintBackground(context, g, x, y, w, h, orientation);
146.1520 +    }
146.1521 +
146.1522 +    /**
146.1523 +     * Paints the border of a separator.
146.1524 +     *
146.1525 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1526 +     *        <code>Region</code> to paint to
146.1527 +     * @param g <code>Graphics</code> to paint to
146.1528 +     * @param x X coordinate of the area to paint to
146.1529 +     * @param y Y coordinate of the area to paint to
146.1530 +     * @param w Width of the area to paint to
146.1531 +     * @param h Height of the area to paint to
146.1532 +     */
146.1533 +    public void paintSeparatorBorder(SynthContext context,
146.1534 +                                 Graphics g, int x, int y,
146.1535 +                                 int w, int h) {
146.1536 +        paintBorder(context, g, x, y, w, h, null);
146.1537 +    }
146.1538 +
146.1539 +    /**
146.1540 +     * Paints the border of a separator. This implementation invokes the
146.1541 +     * method of the same name without the orientation.
146.1542 +     *
146.1543 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1544 +     *        <code>Region</code> to paint to
146.1545 +     * @param g <code>Graphics</code> to paint to
146.1546 +     * @param x X coordinate of the area to paint to
146.1547 +     * @param y Y coordinate of the area to paint to
146.1548 +     * @param w Width of the area to paint to
146.1549 +     * @param h Height of the area to paint to
146.1550 +     * @param orientation One of <code>JSeparator.HORIZONTAL</code> or
146.1551 +     *                           <code>JSeparator.VERTICAL</code>
146.1552 +     * @since 1.6
146.1553 +     */
146.1554 +    public void paintSeparatorBorder(SynthContext context,
146.1555 +                                 Graphics g, int x, int y,
146.1556 +                                 int w, int h, int orientation) {
146.1557 +        paintBorder(context, g, x, y, w, h, orientation);
146.1558 +    }
146.1559 +
146.1560 +    /**
146.1561 +     * Paints the foreground of a separator.
146.1562 +     *
146.1563 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1564 +     *        <code>Region</code> to paint to
146.1565 +     * @param g <code>Graphics</code> to paint to
146.1566 +     * @param x X coordinate of the area to paint to
146.1567 +     * @param y Y coordinate of the area to paint to
146.1568 +     * @param w Width of the area to paint to
146.1569 +     * @param h Height of the area to paint to
146.1570 +     * @param orientation One of <code>JSeparator.HORIZONTAL</code> or
146.1571 +     *                           <code>JSeparator.VERTICAL</code>
146.1572 +     */
146.1573 +    public void paintSeparatorForeground(SynthContext context,
146.1574 +                                 Graphics g, int x, int y,
146.1575 +                                 int w, int h, int orientation) {
146.1576 +        paintForeground(context, g, x, y, w, h, orientation);
146.1577 +    }
146.1578 +
146.1579 +    /**
146.1580 +     * Paints the background of a slider.
146.1581 +     *
146.1582 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1583 +     *        <code>Region</code> to paint to
146.1584 +     * @param g <code>Graphics</code> to paint to
146.1585 +     * @param x X coordinate of the area to paint to
146.1586 +     * @param y Y coordinate of the area to paint to
146.1587 +     * @param w Width of the area to paint to
146.1588 +     * @param h Height of the area to paint to
146.1589 +     */
146.1590 +    public void paintSliderBackground(SynthContext context,
146.1591 +                                     Graphics g, int x, int y,
146.1592 +                                     int w, int h) {
146.1593 +        paintBackground(context, g, x, y, w, h, null);
146.1594 +    }
146.1595 +
146.1596 +    /**
146.1597 +     * Paints the background of a slider. This implementation invokes the
146.1598 +     * method of the same name without the orientation.
146.1599 +     *
146.1600 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1601 +     *        <code>Region</code> to paint to
146.1602 +     * @param g <code>Graphics</code> to paint to
146.1603 +     * @param x X coordinate of the area to paint to
146.1604 +     * @param y Y coordinate of the area to paint to
146.1605 +     * @param w Width of the area to paint to
146.1606 +     * @param h Height of the area to paint to
146.1607 +     * @param orientation One of <code>JSlider.HORIZONTAL</code> or
146.1608 +     *                           <code>JSlider.VERTICAL</code>
146.1609 +     * @since 1.6
146.1610 +     */
146.1611 +    public void paintSliderBackground(SynthContext context,
146.1612 +                                     Graphics g, int x, int y,
146.1613 +                                     int w, int h, int orientation) {
146.1614 +        paintBackground(context, g, x, y, w, h, orientation);
146.1615 +    }
146.1616 +
146.1617 +    /**
146.1618 +     * Paints the border of a slider.
146.1619 +     *
146.1620 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1621 +     *        <code>Region</code> to paint to
146.1622 +     * @param g <code>Graphics</code> to paint to
146.1623 +     * @param x X coordinate of the area to paint to
146.1624 +     * @param y Y coordinate of the area to paint to
146.1625 +     * @param w Width of the area to paint to
146.1626 +     * @param h Height of the area to paint to
146.1627 +     */
146.1628 +    public void paintSliderBorder(SynthContext context,
146.1629 +                                 Graphics g, int x, int y,
146.1630 +                                 int w, int h) {
146.1631 +        paintBorder(context, g, x, y, w, h, null);
146.1632 +    }
146.1633 +
146.1634 +    /**
146.1635 +     * Paints the border of a slider. This implementation invokes the
146.1636 +     * method of the same name without the orientation.
146.1637 +     *
146.1638 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1639 +     *        <code>Region</code> to paint to
146.1640 +     * @param g <code>Graphics</code> to paint to
146.1641 +     * @param x X coordinate of the area to paint to
146.1642 +     * @param y Y coordinate of the area to paint to
146.1643 +     * @param w Width of the area to paint to
146.1644 +     * @param h Height of the area to paint to
146.1645 +     * @param orientation One of <code>JSlider.HORIZONTAL</code> or
146.1646 +     *                           <code>JSlider.VERTICAL</code>
146.1647 +     * @since 1.6
146.1648 +     */
146.1649 +    public void paintSliderBorder(SynthContext context,
146.1650 +                                 Graphics g, int x, int y,
146.1651 +                                 int w, int h, int orientation) {
146.1652 +        paintBorder(context, g, x, y, w, h, orientation);
146.1653 +    }
146.1654 +
146.1655 +    /**
146.1656 +     * Paints the background of the thumb of a slider.
146.1657 +     *
146.1658 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1659 +     *        <code>Region</code> to paint to
146.1660 +     * @param g <code>Graphics</code> to paint to
146.1661 +     * @param x X coordinate of the area to paint to
146.1662 +     * @param y Y coordinate of the area to paint to
146.1663 +     * @param w Width of the area to paint to
146.1664 +     * @param h Height of the area to paint to
146.1665 +     * @param orientation One of <code>JSlider.HORIZONTAL</code> or
146.1666 +     *                           <code>JSlider.VERTICAL</code>
146.1667 +     */
146.1668 +    public void paintSliderThumbBackground(SynthContext context,
146.1669 +                                     Graphics g, int x, int y,
146.1670 +                                     int w, int h, int orientation) {
146.1671 +        if (context.getComponent().getClientProperty(
146.1672 +                "Slider.paintThumbArrowShape") == Boolean.TRUE){
146.1673 +            if (orientation == JSlider.HORIZONTAL){
146.1674 +                orientation = JSlider.VERTICAL;
146.1675 +            } else {
146.1676 +                orientation = JSlider.HORIZONTAL;
146.1677 +            }
146.1678 +            paintBackground(context, g, x, y, w, h, orientation);
146.1679 +        } else {
146.1680 +            paintBackground(context, g, x, y, w, h, orientation);
146.1681 +        }
146.1682 +    }
146.1683 +
146.1684 +    /**
146.1685 +     * Paints the border of the thumb of a slider.
146.1686 +     *
146.1687 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1688 +     *        <code>Region</code> to paint to
146.1689 +     * @param g <code>Graphics</code> to paint to
146.1690 +     * @param x X coordinate of the area to paint to
146.1691 +     * @param y Y coordinate of the area to paint to
146.1692 +     * @param w Width of the area to paint to
146.1693 +     * @param h Height of the area to paint to
146.1694 +     * @param orientation One of <code>JSlider.HORIZONTAL</code> or
146.1695 +     *                           <code>JSlider.VERTICAL</code>
146.1696 +     */
146.1697 +    public void paintSliderThumbBorder(SynthContext context,
146.1698 +                                 Graphics g, int x, int y,
146.1699 +                                 int w, int h, int orientation) {
146.1700 +        paintBorder(context, g, x, y, w, h, orientation);
146.1701 +    }
146.1702 +
146.1703 +    /**
146.1704 +     * Paints the background of the track of a slider.
146.1705 +     *
146.1706 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1707 +     *        <code>Region</code> to paint to
146.1708 +     * @param g <code>Graphics</code> to paint to
146.1709 +     * @param x X coordinate of the area to paint to
146.1710 +     * @param y Y coordinate of the area to paint to
146.1711 +     * @param w Width of the area to paint to
146.1712 +     * @param h Height of the area to paint to
146.1713 +     */
146.1714 +    public void paintSliderTrackBackground(SynthContext context,
146.1715 +                                     Graphics g, int x, int y,
146.1716 +                                     int w, int h) {
146.1717 +        paintBackground(context, g, x, y, w, h, null);
146.1718 +    }
146.1719 +
146.1720 +    /**
146.1721 +     * Paints the background of the track of a slider. This implementation invokes
146.1722 +     * the method of the same name without the orientation.
146.1723 +     *
146.1724 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1725 +     *        <code>Region</code> to paint to
146.1726 +     * @param g <code>Graphics</code> to paint to
146.1727 +     * @param x X coordinate of the area to paint to
146.1728 +     * @param y Y coordinate of the area to paint to
146.1729 +     * @param w Width of the area to paint to
146.1730 +     * @param h Height of the area to paint to
146.1731 +     * @param orientation One of <code>JSlider.HORIZONTAL</code> or
146.1732 +     *                           <code>JSlider.VERTICAL</code>
146.1733 +     * @since 1.6
146.1734 +     */
146.1735 +    public void paintSliderTrackBackground(SynthContext context,
146.1736 +                                     Graphics g, int x, int y,
146.1737 +                                     int w, int h, int orientation) {
146.1738 +        paintBackground(context, g, x, y, w, h, orientation);
146.1739 +    }
146.1740 +
146.1741 +    /**
146.1742 +     * Paints the border of the track of a slider.
146.1743 +     *
146.1744 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1745 +     *        <code>Region</code> to paint to
146.1746 +     * @param g <code>Graphics</code> to paint to
146.1747 +     * @param x X coordinate of the area to paint to
146.1748 +     * @param y Y coordinate of the area to paint to
146.1749 +     * @param w Width of the area to paint to
146.1750 +     * @param h Height of the area to paint to
146.1751 +     */
146.1752 +    public void paintSliderTrackBorder(SynthContext context,
146.1753 +                                 Graphics g, int x, int y,
146.1754 +                                 int w, int h) {
146.1755 +        paintBorder(context, g, x, y, w, h, null);
146.1756 +    }
146.1757 +
146.1758 +    /**
146.1759 +     * Paints the border of the track of a slider. This implementation invokes the
146.1760 +     * method of the same name without the orientation.
146.1761 +     *
146.1762 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1763 +     *        <code>Region</code> to paint to
146.1764 +     * @param g <code>Graphics</code> to paint to
146.1765 +     * @param x X coordinate of the area to paint to
146.1766 +     * @param y Y coordinate of the area to paint to
146.1767 +     * @param w Width of the area to paint to
146.1768 +     * @param h Height of the area to paint to
146.1769 +     * @param orientation One of <code>JSlider.HORIZONTAL</code> or
146.1770 +     *                           <code>JSlider.VERTICAL</code>
146.1771 +     * @since 1.6
146.1772 +     */
146.1773 +    public void paintSliderTrackBorder(SynthContext context,
146.1774 +                                 Graphics g, int x, int y,
146.1775 +                                 int w, int h, int orientation) {
146.1776 +        paintBorder(context, g, x, y, w, h, orientation);
146.1777 +    }
146.1778 +
146.1779 +    /**
146.1780 +     * Paints the background of a spinner.
146.1781 +     *
146.1782 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1783 +     *        <code>Region</code> to paint to
146.1784 +     * @param g <code>Graphics</code> to paint to
146.1785 +     * @param x X coordinate of the area to paint to
146.1786 +     * @param y Y coordinate of the area to paint to
146.1787 +     * @param w Width of the area to paint to
146.1788 +     * @param h Height of the area to paint to
146.1789 +     */
146.1790 +    public void paintSpinnerBackground(SynthContext context,
146.1791 +                                     Graphics g, int x, int y,
146.1792 +                                     int w, int h) {
146.1793 +        paintBackground(context, g, x, y, w, h, null);
146.1794 +    }
146.1795 +
146.1796 +    /**
146.1797 +     * Paints the border of a spinner.
146.1798 +     *
146.1799 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1800 +     *        <code>Region</code> to paint to
146.1801 +     * @param g <code>Graphics</code> to paint to
146.1802 +     * @param x X coordinate of the area to paint to
146.1803 +     * @param y Y coordinate of the area to paint to
146.1804 +     * @param w Width of the area to paint to
146.1805 +     * @param h Height of the area to paint to
146.1806 +     */
146.1807 +    public void paintSpinnerBorder(SynthContext context,
146.1808 +                                 Graphics g, int x, int y,
146.1809 +                                 int w, int h) {
146.1810 +        paintBorder(context, g, x, y, w, h, null);
146.1811 +    }
146.1812 +
146.1813 +    /**
146.1814 +     * Paints the background of the divider of a split pane.
146.1815 +     *
146.1816 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1817 +     *        <code>Region</code> to paint to
146.1818 +     * @param g <code>Graphics</code> to paint to
146.1819 +     * @param x X coordinate of the area to paint to
146.1820 +     * @param y Y coordinate of the area to paint to
146.1821 +     * @param w Width of the area to paint to
146.1822 +     * @param h Height of the area to paint to
146.1823 +     */
146.1824 +    public void paintSplitPaneDividerBackground(SynthContext context,
146.1825 +                                     Graphics g, int x, int y,
146.1826 +                                     int w, int h) {
146.1827 +        paintBackground(context, g, x, y, w, h, null);
146.1828 +    }
146.1829 +
146.1830 +    /**
146.1831 +     * Paints the background of the divider of a split pane. This implementation
146.1832 +     * invokes the method of the same name without the orientation.
146.1833 +     *
146.1834 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1835 +     *        <code>Region</code> to paint to
146.1836 +     * @param g <code>Graphics</code> to paint to
146.1837 +     * @param x X coordinate of the area to paint to
146.1838 +     * @param y Y coordinate of the area to paint to
146.1839 +     * @param w Width of the area to paint to
146.1840 +     * @param h Height of the area to paint to
146.1841 +     * @param orientation One of <code>JSplitPane.HORIZONTAL_SPLIT</code> or
146.1842 +     *                           <code>JSplitPane.VERTICAL_SPLIT</code>
146.1843 +     * @since 1.6
146.1844 +     */
146.1845 +    public void paintSplitPaneDividerBackground(SynthContext context,
146.1846 +                                     Graphics g, int x, int y,
146.1847 +                                     int w, int h, int orientation) {
146.1848 +       if (orientation == JSplitPane.HORIZONTAL_SPLIT) {
146.1849 +            AffineTransform transform = new AffineTransform();
146.1850 +            transform.scale(-1, 1);
146.1851 +            transform.rotate(Math.toRadians(90));
146.1852 +            paintBackground(context, g, y, x, h, w, transform);
146.1853 +       } else {
146.1854 +            paintBackground(context, g, x, y, w, h, null);
146.1855 +        }
146.1856 +    }
146.1857 +
146.1858 +    /**
146.1859 +     * Paints the foreground of the divider of a split pane.
146.1860 +     *
146.1861 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1862 +     *        <code>Region</code> to paint to
146.1863 +     * @param g <code>Graphics</code> to paint to
146.1864 +     * @param x X coordinate of the area to paint to
146.1865 +     * @param y Y coordinate of the area to paint to
146.1866 +     * @param w Width of the area to paint to
146.1867 +     * @param h Height of the area to paint to
146.1868 +     * @param orientation One of <code>JSplitPane.HORIZONTAL_SPLIT</code> or
146.1869 +     *                           <code>JSplitPane.VERTICAL_SPLIT</code>
146.1870 +     */
146.1871 +    public void paintSplitPaneDividerForeground(SynthContext context,
146.1872 +                                     Graphics g, int x, int y,
146.1873 +                                     int w, int h, int orientation) {
146.1874 +        paintForeground(context, g, x, y, w, h, null);
146.1875 +    }
146.1876 +
146.1877 +    /**
146.1878 +     * Paints the divider, when the user is dragging the divider, of a
146.1879 +     * split pane.
146.1880 +     *
146.1881 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1882 +     *        <code>Region</code> to paint to
146.1883 +     * @param g <code>Graphics</code> to paint to
146.1884 +     * @param x X coordinate of the area to paint to
146.1885 +     * @param y Y coordinate of the area to paint to
146.1886 +     * @param w Width of the area to paint to
146.1887 +     * @param h Height of the area to paint to
146.1888 +     * @param orientation One of <code>JSplitPane.HORIZONTAL_SPLIT</code> or
146.1889 +     *                           <code>JSplitPane.VERTICAL_SPLIT</code>
146.1890 +     */
146.1891 +    public void paintSplitPaneDragDivider(SynthContext context,
146.1892 +                                     Graphics g, int x, int y,
146.1893 +                                     int w, int h, int orientation) {
146.1894 +        paintBackground(context, g, x, y, w, h, null);
146.1895 +    }
146.1896 +
146.1897 +    /**
146.1898 +     * Paints the background of a split pane.
146.1899 +     *
146.1900 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1901 +     *        <code>Region</code> to paint to
146.1902 +     * @param g <code>Graphics</code> to paint to
146.1903 +     * @param x X coordinate of the area to paint to
146.1904 +     * @param y Y coordinate of the area to paint to
146.1905 +     * @param w Width of the area to paint to
146.1906 +     * @param h Height of the area to paint to
146.1907 +     */
146.1908 +    public void paintSplitPaneBackground(SynthContext context,
146.1909 +                                     Graphics g, int x, int y,
146.1910 +                                     int w, int h) {
146.1911 +        paintBackground(context, g, x, y, w, h, null);
146.1912 +    }
146.1913 +
146.1914 +    /**
146.1915 +     * Paints the border of a split pane.
146.1916 +     *
146.1917 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1918 +     *        <code>Region</code> to paint to
146.1919 +     * @param g <code>Graphics</code> to paint to
146.1920 +     * @param x X coordinate of the area to paint to
146.1921 +     * @param y Y coordinate of the area to paint to
146.1922 +     * @param w Width of the area to paint to
146.1923 +     * @param h Height of the area to paint to
146.1924 +     */
146.1925 +    public void paintSplitPaneBorder(SynthContext context,
146.1926 +                                 Graphics g, int x, int y,
146.1927 +                                 int w, int h) {
146.1928 +        paintBorder(context, g, x, y, w, h, null);
146.1929 +    }
146.1930 +
146.1931 +    /**
146.1932 +     * Paints the background of a tabbed pane.
146.1933 +     *
146.1934 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1935 +     *        <code>Region</code> to paint to
146.1936 +     * @param g <code>Graphics</code> to paint to
146.1937 +     * @param x X coordinate of the area to paint to
146.1938 +     * @param y Y coordinate of the area to paint to
146.1939 +     * @param w Width of the area to paint to
146.1940 +     * @param h Height of the area to paint to
146.1941 +     */
146.1942 +    public void paintTabbedPaneBackground(SynthContext context,
146.1943 +                                     Graphics g, int x, int y,
146.1944 +                                     int w, int h) {
146.1945 +        paintBackground(context, g, x, y, w, h, null);
146.1946 +    }
146.1947 +
146.1948 +    /**
146.1949 +     * Paints the border of a tabbed pane.
146.1950 +     *
146.1951 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1952 +     *        <code>Region</code> to paint to
146.1953 +     * @param g <code>Graphics</code> to paint to
146.1954 +     * @param x X coordinate of the area to paint to
146.1955 +     * @param y Y coordinate of the area to paint to
146.1956 +     * @param w Width of the area to paint to
146.1957 +     * @param h Height of the area to paint to
146.1958 +     */
146.1959 +    public void paintTabbedPaneBorder(SynthContext context,
146.1960 +                                 Graphics g, int x, int y,
146.1961 +                                 int w, int h) {
146.1962 +        paintBorder(context, g, x, y, w, h, null);
146.1963 +    }
146.1964 +
146.1965 +    /**
146.1966 +     * Paints the background of the area behind the tabs of a tabbed pane.
146.1967 +     *
146.1968 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1969 +     *        <code>Region</code> to paint to
146.1970 +     * @param g <code>Graphics</code> to paint to
146.1971 +     * @param x X coordinate of the area to paint to
146.1972 +     * @param y Y coordinate of the area to paint to
146.1973 +     * @param w Width of the area to paint to
146.1974 +     * @param h Height of the area to paint to
146.1975 +     */
146.1976 +    public void paintTabbedPaneTabAreaBackground(SynthContext context,
146.1977 +                                     Graphics g, int x, int y,
146.1978 +                                     int w, int h) {
146.1979 +        paintBackground(context, g, x, y, w, h, null);
146.1980 +    }
146.1981 +
146.1982 +    /**
146.1983 +     * Paints the background of the area behind the tabs of a tabbed pane.
146.1984 +     * This implementation invokes the method of the same name without the
146.1985 +     * orientation.
146.1986 +     *
146.1987 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.1988 +     *        <code>Region</code> to paint to
146.1989 +     * @param g <code>Graphics</code> to paint to
146.1990 +     * @param x X coordinate of the area to paint to
146.1991 +     * @param y Y coordinate of the area to paint to
146.1992 +     * @param w Width of the area to paint to
146.1993 +     * @param h Height of the area to paint to
146.1994 +     * @param orientation One of <code>JTabbedPane.TOP</code>,
146.1995 +     *                    <code>JTabbedPane.LEFT</code>,
146.1996 +     *                    <code>JTabbedPane.BOTTOM</code>, or
146.1997 +     *                    <code>JTabbedPane.RIGHT</code>
146.1998 +     * @since 1.6
146.1999 +     */
146.2000 +    public void paintTabbedPaneTabAreaBackground(SynthContext context,
146.2001 +                                     Graphics g, int x, int y,
146.2002 +                                     int w, int h, int orientation) {
146.2003 +        if (orientation == JTabbedPane.LEFT) {
146.2004 +            AffineTransform transform = new AffineTransform();
146.2005 +            transform.scale(-1, 1);
146.2006 +            transform.rotate(Math.toRadians(90));
146.2007 +            paintBackground(context, g, y, x, h, w, transform);
146.2008 +        } else if (orientation == JTabbedPane.RIGHT) {
146.2009 +            AffineTransform transform = new AffineTransform();
146.2010 +            transform.rotate(Math.toRadians(90));
146.2011 +            transform.translate(0, -(x + w));
146.2012 +            paintBackground(context, g, y, 0, h, w, transform);
146.2013 +        } else if (orientation == JTabbedPane.BOTTOM) {
146.2014 +            AffineTransform transform = new AffineTransform();
146.2015 +            transform.translate(x,y);
146.2016 +            transform.scale(1, -1);
146.2017 +            transform.translate(0,-h);
146.2018 +            paintBackground(context, g, 0, 0, w, h, transform);
146.2019 +        } else {
146.2020 +            paintBackground(context, g, x, y, w, h, null);
146.2021 +        }
146.2022 +    }
146.2023 +
146.2024 +    /**
146.2025 +     * Paints the border of the area behind the tabs of a tabbed pane.
146.2026 +     *
146.2027 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2028 +     *        <code>Region</code> to paint to
146.2029 +     * @param g <code>Graphics</code> to paint to
146.2030 +     * @param x X coordinate of the area to paint to
146.2031 +     * @param y Y coordinate of the area to paint to
146.2032 +     * @param w Width of the area to paint to
146.2033 +     * @param h Height of the area to paint to
146.2034 +     */
146.2035 +    public void paintTabbedPaneTabAreaBorder(SynthContext context,
146.2036 +                                 Graphics g, int x, int y,
146.2037 +                                 int w, int h) {
146.2038 +        paintBorder(context, g, x, y, w, h, null);
146.2039 +    }
146.2040 +
146.2041 +    /**
146.2042 +     * Paints the border of the area behind the tabs of a tabbed pane. This
146.2043 +     * implementation invokes the method of the same name without the orientation.
146.2044 +     *
146.2045 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2046 +     *        <code>Region</code> to paint to
146.2047 +     * @param g <code>Graphics</code> to paint to
146.2048 +     * @param x X coordinate of the area to paint to
146.2049 +     * @param y Y coordinate of the area to paint to
146.2050 +     * @param w Width of the area to paint to
146.2051 +     * @param h Height of the area to paint to
146.2052 +     * @param orientation One of <code>JTabbedPane.TOP</code>,
146.2053 +     *                    <code>JTabbedPane.LEFT</code>,
146.2054 +     *                    <code>JTabbedPane.BOTTOM</code>, or
146.2055 +     *                    <code>JTabbedPane.RIGHT</code>
146.2056 +     * @since 1.6
146.2057 +     */
146.2058 +    public void paintTabbedPaneTabAreaBorder(SynthContext context,
146.2059 +                                 Graphics g, int x, int y,
146.2060 +                                 int w, int h, int orientation) {
146.2061 +        paintBorder(context, g, x, y, w, h, null);
146.2062 +    }
146.2063 +
146.2064 +    /**
146.2065 +     * Paints the background of a tab of a tabbed pane.
146.2066 +     *
146.2067 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2068 +     *        <code>Region</code> to paint to
146.2069 +     * @param g <code>Graphics</code> to paint to
146.2070 +     * @param x X coordinate of the area to paint to
146.2071 +     * @param y Y coordinate of the area to paint to
146.2072 +     * @param w Width of the area to paint to
146.2073 +     * @param h Height of the area to paint to
146.2074 +     * @param tabIndex Index of tab being painted.
146.2075 +     */
146.2076 +    public void paintTabbedPaneTabBackground(SynthContext context, Graphics g,
146.2077 +                                         int x, int y, int w, int h,
146.2078 +                                         int tabIndex) {
146.2079 +        paintBackground(context, g, x, y, w, h, null);
146.2080 +    }
146.2081 +
146.2082 +    /**
146.2083 +     * Paints the background of a tab of a tabbed pane. This implementation
146.2084 +     * invokes the method of the same name without the orientation.
146.2085 +     *
146.2086 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2087 +     *        <code>Region</code> to paint to
146.2088 +     * @param g <code>Graphics</code> to paint to
146.2089 +     * @param x X coordinate of the area to paint to
146.2090 +     * @param y Y coordinate of the area to paint to
146.2091 +     * @param w Width of the area to paint to
146.2092 +     * @param h Height of the area to paint to
146.2093 +     * @param tabIndex Index of tab being painted.
146.2094 +     * @param orientation One of <code>JTabbedPane.TOP</code>,
146.2095 +     *                    <code>JTabbedPane.LEFT</code>,
146.2096 +     *                    <code>JTabbedPane.BOTTOM</code>, or
146.2097 +     *                    <code>JTabbedPane.RIGHT</code>
146.2098 +     * @since 1.6
146.2099 +     */
146.2100 +    public void paintTabbedPaneTabBackground(SynthContext context, Graphics g,
146.2101 +                                         int x, int y, int w, int h,
146.2102 +                                         int tabIndex, int orientation) {
146.2103 +        if (orientation == JTabbedPane.LEFT) {
146.2104 +            AffineTransform transform = new AffineTransform();
146.2105 +            transform.scale(-1, 1);
146.2106 +            transform.rotate(Math.toRadians(90));
146.2107 +            paintBackground(context, g, y, x, h, w, transform);
146.2108 +        } else if (orientation == JTabbedPane.RIGHT) {
146.2109 +            AffineTransform transform = new AffineTransform();
146.2110 +            transform.rotate(Math.toRadians(90));
146.2111 +            transform.translate(0, -(x + w));
146.2112 +            paintBackground(context, g, y, 0, h, w, transform);
146.2113 +        } else if (orientation == JTabbedPane.BOTTOM) {
146.2114 +            AffineTransform transform = new AffineTransform();
146.2115 +            transform.translate(x,y);
146.2116 +            transform.scale(1, -1);
146.2117 +            transform.translate(0,-h);
146.2118 +            paintBackground(context, g, 0, 0, w, h, transform);
146.2119 +        } else {
146.2120 +            paintBackground(context, g, x, y, w, h, null);
146.2121 +        }
146.2122 +    }
146.2123 +
146.2124 +    /**
146.2125 +     * Paints the border of a tab of a tabbed pane.
146.2126 +     *
146.2127 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2128 +     *        <code>Region</code> to paint to
146.2129 +     * @param g <code>Graphics</code> to paint to
146.2130 +     * @param x X coordinate of the area to paint to
146.2131 +     * @param y Y coordinate of the area to paint to
146.2132 +     * @param w Width of the area to paint to
146.2133 +     * @param h Height of the area to paint to
146.2134 +     * @param tabIndex Index of tab being painted.
146.2135 +     */
146.2136 +    public void paintTabbedPaneTabBorder(SynthContext context, Graphics g,
146.2137 +                                         int x, int y, int w, int h,
146.2138 +                                         int tabIndex) {
146.2139 +        paintBorder(context, g, x, y, w, h, null);
146.2140 +    }
146.2141 +
146.2142 +    /**
146.2143 +     * Paints the border of a tab of a tabbed pane. This implementation invokes
146.2144 +     * the method of the same name without the orientation.
146.2145 +     *
146.2146 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2147 +     *        <code>Region</code> to paint to
146.2148 +     * @param g <code>Graphics</code> to paint to
146.2149 +     * @param x X coordinate of the area to paint to
146.2150 +     * @param y Y coordinate of the area to paint to
146.2151 +     * @param w Width of the area to paint to
146.2152 +     * @param h Height of the area to paint to
146.2153 +     * @param tabIndex Index of tab being painted.
146.2154 +     * @param orientation One of <code>JTabbedPane.TOP</code>,
146.2155 +     *                    <code>JTabbedPane.LEFT</code>,
146.2156 +     *                    <code>JTabbedPane.BOTTOM</code>, or
146.2157 +     *                    <code>JTabbedPane.RIGHT</code>
146.2158 +     * @since 1.6
146.2159 +     */
146.2160 +    public void paintTabbedPaneTabBorder(SynthContext context, Graphics g,
146.2161 +                                         int x, int y, int w, int h,
146.2162 +                                         int tabIndex, int orientation) {
146.2163 +        paintBorder(context, g, x, y, w, h, null);
146.2164 +    }
146.2165 +
146.2166 +    /**
146.2167 +     * Paints the background of the area that contains the content of the
146.2168 +     * selected tab of a tabbed pane.
146.2169 +     *
146.2170 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2171 +     *        <code>Region</code> to paint to
146.2172 +     * @param g <code>Graphics</code> to paint to
146.2173 +     * @param x X coordinate of the area to paint to
146.2174 +     * @param y Y coordinate of the area to paint to
146.2175 +     * @param w Width of the area to paint to
146.2176 +     * @param h Height of the area to paint to
146.2177 +     */
146.2178 +    public void paintTabbedPaneContentBackground(SynthContext context,
146.2179 +                                         Graphics g, int x, int y, int w,
146.2180 +                                         int h) {
146.2181 +        paintBackground(context, g, x, y, w, h, null);
146.2182 +    }
146.2183 +
146.2184 +    /**
146.2185 +     * Paints the border of the area that contains the content of the
146.2186 +     * selected tab of a tabbed pane.
146.2187 +     *
146.2188 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2189 +     *        <code>Region</code> to paint to
146.2190 +     * @param g <code>Graphics</code> to paint to
146.2191 +     * @param x X coordinate of the area to paint to
146.2192 +     * @param y Y coordinate of the area to paint to
146.2193 +     * @param w Width of the area to paint to
146.2194 +     * @param h Height of the area to paint to
146.2195 +     */
146.2196 +    public void paintTabbedPaneContentBorder(SynthContext context, Graphics g,
146.2197 +                                         int x, int y, int w, int h) {
146.2198 +        paintBorder(context, g, x, y, w, h, null);
146.2199 +    }
146.2200 +
146.2201 +    /**
146.2202 +     * Paints the background of the header of a table.
146.2203 +     *
146.2204 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2205 +     *        <code>Region</code> to paint to
146.2206 +     * @param g <code>Graphics</code> to paint to
146.2207 +     * @param x X coordinate of the area to paint to
146.2208 +     * @param y Y coordinate of the area to paint to
146.2209 +     * @param w Width of the area to paint to
146.2210 +     * @param h Height of the area to paint to
146.2211 +     */
146.2212 +    public void paintTableHeaderBackground(SynthContext context,
146.2213 +                                     Graphics g, int x, int y,
146.2214 +                                     int w, int h) {
146.2215 +        paintBackground(context, g, x, y, w, h, null);
146.2216 +    }
146.2217 +
146.2218 +    /**
146.2219 +     * Paints the border of the header of a table.
146.2220 +     *
146.2221 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2222 +     *        <code>Region</code> to paint to
146.2223 +     * @param g <code>Graphics</code> to paint to
146.2224 +     * @param x X coordinate of the area to paint to
146.2225 +     * @param y Y coordinate of the area to paint to
146.2226 +     * @param w Width of the area to paint to
146.2227 +     * @param h Height of the area to paint to
146.2228 +     */
146.2229 +    public void paintTableHeaderBorder(SynthContext context,
146.2230 +                                 Graphics g, int x, int y,
146.2231 +                                 int w, int h) {
146.2232 +        paintBorder(context, g, x, y, w, h, null);
146.2233 +    }
146.2234 +
146.2235 +    /**
146.2236 +     * Paints the background of a table.
146.2237 +     *
146.2238 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2239 +     *        <code>Region</code> to paint to
146.2240 +     * @param g <code>Graphics</code> to paint to
146.2241 +     * @param x X coordinate of the area to paint to
146.2242 +     * @param y Y coordinate of the area to paint to
146.2243 +     * @param w Width of the area to paint to
146.2244 +     * @param h Height of the area to paint to
146.2245 +     */
146.2246 +    public void paintTableBackground(SynthContext context,
146.2247 +                                     Graphics g, int x, int y,
146.2248 +                                     int w, int h) {
146.2249 +        paintBackground(context, g, x, y, w, h, null);
146.2250 +    }
146.2251 +
146.2252 +    /**
146.2253 +     * Paints the border of a table.
146.2254 +     *
146.2255 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2256 +     *        <code>Region</code> to paint to
146.2257 +     * @param g <code>Graphics</code> to paint to
146.2258 +     * @param x X coordinate of the area to paint to
146.2259 +     * @param y Y coordinate of the area to paint to
146.2260 +     * @param w Width of the area to paint to
146.2261 +     * @param h Height of the area to paint to
146.2262 +     */
146.2263 +    public void paintTableBorder(SynthContext context,
146.2264 +                                 Graphics g, int x, int y,
146.2265 +                                 int w, int h) {
146.2266 +        paintBorder(context, g, x, y, w, h, null);
146.2267 +    }
146.2268 +
146.2269 +    /**
146.2270 +     * Paints the background of a text area.
146.2271 +     *
146.2272 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2273 +     *        <code>Region</code> to paint to
146.2274 +     * @param g <code>Graphics</code> to paint to
146.2275 +     * @param x X coordinate of the area to paint to
146.2276 +     * @param y Y coordinate of the area to paint to
146.2277 +     * @param w Width of the area to paint to
146.2278 +     * @param h Height of the area to paint to
146.2279 +     */
146.2280 +    public void paintTextAreaBackground(SynthContext context,
146.2281 +                                     Graphics g, int x, int y,
146.2282 +                                     int w, int h) {
146.2283 +        paintBackground(context, g, x, y, w, h, null);
146.2284 +    }
146.2285 +
146.2286 +    /**
146.2287 +     * Paints the border of a text area.
146.2288 +     *
146.2289 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2290 +     *        <code>Region</code> to paint to
146.2291 +     * @param g <code>Graphics</code> to paint to
146.2292 +     * @param x X coordinate of the area to paint to
146.2293 +     * @param y Y coordinate of the area to paint to
146.2294 +     * @param w Width of the area to paint to
146.2295 +     * @param h Height of the area to paint to
146.2296 +     */
146.2297 +    public void paintTextAreaBorder(SynthContext context,
146.2298 +                                 Graphics g, int x, int y,
146.2299 +                                 int w, int h) {
146.2300 +        paintBorder(context, g, x, y, w, h, null);
146.2301 +    }
146.2302 +
146.2303 +    /**
146.2304 +     * Paints the background of a text pane.
146.2305 +     *
146.2306 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2307 +     *        <code>Region</code> to paint to
146.2308 +     * @param g <code>Graphics</code> to paint to
146.2309 +     * @param x X coordinate of the area to paint to
146.2310 +     * @param y Y coordinate of the area to paint to
146.2311 +     * @param w Width of the area to paint to
146.2312 +     * @param h Height of the area to paint to
146.2313 +     */
146.2314 +    public void paintTextPaneBackground(SynthContext context,
146.2315 +                                     Graphics g, int x, int y,
146.2316 +                                     int w, int h) {
146.2317 +        paintBackground(context, g, x, y, w, h, null);
146.2318 +    }
146.2319 +
146.2320 +    /**
146.2321 +     * Paints the border of a text pane.
146.2322 +     *
146.2323 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2324 +     *        <code>Region</code> to paint to
146.2325 +     * @param g <code>Graphics</code> to paint to
146.2326 +     * @param x X coordinate of the area to paint to
146.2327 +     * @param y Y coordinate of the area to paint to
146.2328 +     * @param w Width of the area to paint to
146.2329 +     * @param h Height of the area to paint to
146.2330 +     */
146.2331 +    public void paintTextPaneBorder(SynthContext context,
146.2332 +                                 Graphics g, int x, int y,
146.2333 +                                 int w, int h) {
146.2334 +        paintBorder(context, g, x, y, w, h, null);
146.2335 +    }
146.2336 +
146.2337 +    /**
146.2338 +     * Paints the background of a text field.
146.2339 +     *
146.2340 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2341 +     *        <code>Region</code> to paint to
146.2342 +     * @param g <code>Graphics</code> to paint to
146.2343 +     * @param x X coordinate of the area to paint to
146.2344 +     * @param y Y coordinate of the area to paint to
146.2345 +     * @param w Width of the area to paint to
146.2346 +     * @param h Height of the area to paint to
146.2347 +     */
146.2348 +    public void paintTextFieldBackground(SynthContext context,
146.2349 +                                          Graphics g, int x, int y,
146.2350 +                                          int w, int h) {
146.2351 +        if (context.getComponent().getComponentOrientation().isLeftToRight()){
146.2352 +            paintBackground(context, g, x, y, w, h, null);
146.2353 +        } else {
146.2354 +            AffineTransform transform = new AffineTransform();
146.2355 +            transform.translate(x,y);
146.2356 +            transform.scale(-1, 1);
146.2357 +            transform.translate(-w,0);
146.2358 +            paintBackground(context, g, 0, 0, w, h, transform);
146.2359 +        }
146.2360 +    }
146.2361 +
146.2362 +    /**
146.2363 +     * Paints the border of a text field.
146.2364 +     *
146.2365 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2366 +     *        <code>Region</code> to paint to
146.2367 +     * @param g <code>Graphics</code> to paint to
146.2368 +     * @param x X coordinate of the area to paint to
146.2369 +     * @param y Y coordinate of the area to paint to
146.2370 +     * @param w Width of the area to paint to
146.2371 +     * @param h Height of the area to paint to
146.2372 +     */
146.2373 +    public void paintTextFieldBorder(SynthContext context,
146.2374 +                                      Graphics g, int x, int y,
146.2375 +                                      int w, int h) {
146.2376 +        if (context.getComponent().getComponentOrientation().isLeftToRight()){
146.2377 +            paintBorder(context, g, x, y, w, h, null);
146.2378 +        } else {
146.2379 +            AffineTransform transform = new AffineTransform();
146.2380 +            transform.translate(x,y);
146.2381 +            transform.scale(-1, 1);
146.2382 +            transform.translate(-w,0);
146.2383 +            paintBorder(context, g, 0, 0, w, h, transform);
146.2384 +        }
146.2385 +    }
146.2386 +
146.2387 +    /**
146.2388 +     * Paints the background of a toggle button.
146.2389 +     *
146.2390 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2391 +     *        <code>Region</code> to paint to
146.2392 +     * @param g <code>Graphics</code> to paint to
146.2393 +     * @param x X coordinate of the area to paint to
146.2394 +     * @param y Y coordinate of the area to paint to
146.2395 +     * @param w Width of the area to paint to
146.2396 +     * @param h Height of the area to paint to
146.2397 +     */
146.2398 +    public void paintToggleButtonBackground(SynthContext context,
146.2399 +                                     Graphics g, int x, int y,
146.2400 +                                     int w, int h) {
146.2401 +        paintBackground(context, g, x, y, w, h, null);
146.2402 +    }
146.2403 +
146.2404 +    /**
146.2405 +     * Paints the border of a toggle button.
146.2406 +     *
146.2407 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2408 +     *        <code>Region</code> to paint to
146.2409 +     * @param g <code>Graphics</code> to paint to
146.2410 +     * @param x X coordinate of the area to paint to
146.2411 +     * @param y Y coordinate of the area to paint to
146.2412 +     * @param w Width of the area to paint to
146.2413 +     * @param h Height of the area to paint to
146.2414 +     */
146.2415 +    public void paintToggleButtonBorder(SynthContext context,
146.2416 +                                 Graphics g, int x, int y,
146.2417 +                                 int w, int h) {
146.2418 +        paintBorder(context, g, x, y, w, h, null);
146.2419 +    }
146.2420 +
146.2421 +    /**
146.2422 +     * Paints the background of a tool bar.
146.2423 +     *
146.2424 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2425 +     *        <code>Region</code> to paint to
146.2426 +     * @param g <code>Graphics</code> to paint to
146.2427 +     * @param x X coordinate of the area to paint to
146.2428 +     * @param y Y coordinate of the area to paint to
146.2429 +     * @param w Width of the area to paint to
146.2430 +     * @param h Height of the area to paint to
146.2431 +     */
146.2432 +    public void paintToolBarBackground(SynthContext context,
146.2433 +                                     Graphics g, int x, int y,
146.2434 +                                     int w, int h) {
146.2435 +        paintBackground(context, g, x, y, w, h, null);
146.2436 +    }
146.2437 +
146.2438 +    /**
146.2439 +     * Paints the background of a tool bar. This implementation invokes the
146.2440 +     * method of the same name without the orientation.
146.2441 +     *
146.2442 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2443 +     *        <code>Region</code> to paint to
146.2444 +     * @param g <code>Graphics</code> to paint to
146.2445 +     * @param x X coordinate of the area to paint to
146.2446 +     * @param y Y coordinate of the area to paint to
146.2447 +     * @param w Width of the area to paint to
146.2448 +     * @param h Height of the area to paint to
146.2449 +     * @param orientation One of <code>JToolBar.HORIZONTAL</code> or
146.2450 +     *                           <code>JToolBar.VERTICAL</code>
146.2451 +     * @since 1.6
146.2452 +     */
146.2453 +    public void paintToolBarBackground(SynthContext context,
146.2454 +                                     Graphics g, int x, int y,
146.2455 +                                     int w, int h, int orientation) {
146.2456 +        paintBackground(context, g, x, y, w, h, orientation);
146.2457 +    }
146.2458 +
146.2459 +    /**
146.2460 +     * Paints the border of a tool bar.
146.2461 +     *
146.2462 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2463 +     *        <code>Region</code> to paint to
146.2464 +     * @param g <code>Graphics</code> to paint to
146.2465 +     * @param x X coordinate of the area to paint to
146.2466 +     * @param y Y coordinate of the area to paint to
146.2467 +     * @param w Width of the area to paint to
146.2468 +     * @param h Height of the area to paint to
146.2469 +     */
146.2470 +    public void paintToolBarBorder(SynthContext context,
146.2471 +                                 Graphics g, int x, int y,
146.2472 +                                 int w, int h) {
146.2473 +        paintBorder(context, g, x, y, w, h, null);
146.2474 +    }
146.2475 +
146.2476 +    /**
146.2477 +     * Paints the border of a tool bar. This implementation invokes the
146.2478 +     * method of the same name without the orientation.
146.2479 +     *
146.2480 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2481 +     *        <code>Region</code> to paint to
146.2482 +     * @param g <code>Graphics</code> to paint to
146.2483 +     * @param x X coordinate of the area to paint to
146.2484 +     * @param y Y coordinate of the area to paint to
146.2485 +     * @param w Width of the area to paint to
146.2486 +     * @param h Height of the area to paint to
146.2487 +     * @param orientation One of <code>JToolBar.HORIZONTAL</code> or
146.2488 +     *                           <code>JToolBar.VERTICAL</code>
146.2489 +     * @since 1.6
146.2490 +     */
146.2491 +    public void paintToolBarBorder(SynthContext context,
146.2492 +                                 Graphics g, int x, int y,
146.2493 +                                 int w, int h, int orientation) {
146.2494 +        paintBorder(context, g, x, y, w, h, orientation);
146.2495 +    }
146.2496 +
146.2497 +    /**
146.2498 +     * Paints the background of the tool bar's content area.
146.2499 +     *
146.2500 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2501 +     *        <code>Region</code> to paint to
146.2502 +     * @param g <code>Graphics</code> to paint to
146.2503 +     * @param x X coordinate of the area to paint to
146.2504 +     * @param y Y coordinate of the area to paint to
146.2505 +     * @param w Width of the area to paint to
146.2506 +     * @param h Height of the area to paint to
146.2507 +     */
146.2508 +    public void paintToolBarContentBackground(SynthContext context,
146.2509 +                                     Graphics g, int x, int y,
146.2510 +                                     int w, int h) {
146.2511 +        paintBackground(context, g, x, y, w, h, null);
146.2512 +    }
146.2513 +
146.2514 +    /**
146.2515 +     * Paints the background of the tool bar's content area. This implementation
146.2516 +     * invokes the method of the same name without the orientation.
146.2517 +     *
146.2518 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2519 +     *        <code>Region</code> to paint to
146.2520 +     * @param g <code>Graphics</code> to paint to
146.2521 +     * @param x X coordinate of the area to paint to
146.2522 +     * @param y Y coordinate of the area to paint to
146.2523 +     * @param w Width of the area to paint to
146.2524 +     * @param h Height of the area to paint to
146.2525 +     * @param orientation One of <code>JToolBar.HORIZONTAL</code> or
146.2526 +     *                           <code>JToolBar.VERTICAL</code>
146.2527 +     * @since 1.6
146.2528 +     */
146.2529 +    public void paintToolBarContentBackground(SynthContext context,
146.2530 +                                     Graphics g, int x, int y,
146.2531 +                                     int w, int h, int orientation) {
146.2532 +        paintBackground(context, g, x, y, w, h, orientation);
146.2533 +    }
146.2534 +
146.2535 +    /**
146.2536 +     * Paints the border of the content area of a tool bar.
146.2537 +     *
146.2538 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2539 +     *        <code>Region</code> to paint to
146.2540 +     * @param g <code>Graphics</code> to paint to
146.2541 +     * @param x X coordinate of the area to paint to
146.2542 +     * @param y Y coordinate of the area to paint to
146.2543 +     * @param w Width of the area to paint to
146.2544 +     * @param h Height of the area to paint to
146.2545 +     */
146.2546 +    public void paintToolBarContentBorder(SynthContext context,
146.2547 +                                 Graphics g, int x, int y,
146.2548 +                                 int w, int h) {
146.2549 +        paintBorder(context, g, x, y, w, h, null);
146.2550 +    }
146.2551 +
146.2552 +    /**
146.2553 +     * Paints the border of the content area of a tool bar. This implementation
146.2554 +     * invokes the method of the same name without the orientation.
146.2555 +     *
146.2556 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2557 +     *        <code>Region</code> to paint to
146.2558 +     * @param g <code>Graphics</code> to paint to
146.2559 +     * @param x X coordinate of the area to paint to
146.2560 +     * @param y Y coordinate of the area to paint to
146.2561 +     * @param w Width of the area to paint to
146.2562 +     * @param h Height of the area to paint to
146.2563 +     * @param orientation One of <code>JToolBar.HORIZONTAL</code> or
146.2564 +     *                           <code>JToolBar.VERTICAL</code>
146.2565 +     * @since 1.6
146.2566 +     */
146.2567 +    public void paintToolBarContentBorder(SynthContext context,
146.2568 +                                 Graphics g, int x, int y,
146.2569 +                                 int w, int h, int orientation) {
146.2570 +        paintBorder(context, g, x, y, w, h, orientation);
146.2571 +    }
146.2572 +
146.2573 +    /**
146.2574 +     * Paints the background of the window containing the tool bar when it
146.2575 +     * has been detached from its primary frame.
146.2576 +     *
146.2577 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2578 +     *        <code>Region</code> to paint to
146.2579 +     * @param g <code>Graphics</code> to paint to
146.2580 +     * @param x X coordinate of the area to paint to
146.2581 +     * @param y Y coordinate of the area to paint to
146.2582 +     * @param w Width of the area to paint to
146.2583 +     * @param h Height of the area to paint to
146.2584 +     */
146.2585 +    public void paintToolBarDragWindowBackground(SynthContext context,
146.2586 +                                     Graphics g, int x, int y,
146.2587 +                                     int w, int h) {
146.2588 +        paintBackground(context, g, x, y, w, h, null);
146.2589 +    }
146.2590 +
146.2591 +    /**
146.2592 +     * Paints the background of the window containing the tool bar when it
146.2593 +     * has been detached from its primary frame. This implementation invokes the
146.2594 +     * method of the same name without the orientation.
146.2595 +     *
146.2596 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2597 +     *        <code>Region</code> to paint to
146.2598 +     * @param g <code>Graphics</code> to paint to
146.2599 +     * @param x X coordinate of the area to paint to
146.2600 +     * @param y Y coordinate of the area to paint to
146.2601 +     * @param w Width of the area to paint to
146.2602 +     * @param h Height of the area to paint to
146.2603 +     * @param orientation One of <code>JToolBar.HORIZONTAL</code> or
146.2604 +     *                           <code>JToolBar.VERTICAL</code>
146.2605 +     * @since 1.6
146.2606 +     */
146.2607 +    public void paintToolBarDragWindowBackground(SynthContext context,
146.2608 +                                     Graphics g, int x, int y,
146.2609 +                                     int w, int h, int orientation) {
146.2610 +        paintBackground(context, g, x, y, w, h, orientation);
146.2611 +    }
146.2612 +
146.2613 +    /**
146.2614 +     * Paints the border of the window containing the tool bar when it
146.2615 +     * has been detached from it's primary frame.
146.2616 +     *
146.2617 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2618 +     *        <code>Region</code> to paint to
146.2619 +     * @param g <code>Graphics</code> to paint to
146.2620 +     * @param x X coordinate of the area to paint to
146.2621 +     * @param y Y coordinate of the area to paint to
146.2622 +     * @param w Width of the area to paint to
146.2623 +     * @param h Height of the area to paint to
146.2624 +     */
146.2625 +    public void paintToolBarDragWindowBorder(SynthContext context,
146.2626 +                                 Graphics g, int x, int y,
146.2627 +                                 int w, int h) {
146.2628 +        paintBorder(context, g, x, y, w, h, null);
146.2629 +    }
146.2630 +
146.2631 +    /**
146.2632 +     * Paints the border of the window containing the tool bar when it
146.2633 +     * has been detached from it's primary frame. This implementation invokes the
146.2634 +     * method of the same name without the orientation.
146.2635 +     *
146.2636 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2637 +     *        <code>Region</code> to paint to
146.2638 +     * @param g <code>Graphics</code> to paint to
146.2639 +     * @param x X coordinate of the area to paint to
146.2640 +     * @param y Y coordinate of the area to paint to
146.2641 +     * @param w Width of the area to paint to
146.2642 +     * @param h Height of the area to paint to
146.2643 +     * @param orientation One of <code>JToolBar.HORIZONTAL</code> or
146.2644 +     *                           <code>JToolBar.VERTICAL</code>
146.2645 +     * @since 1.6
146.2646 +     */
146.2647 +    public void paintToolBarDragWindowBorder(SynthContext context,
146.2648 +                                 Graphics g, int x, int y,
146.2649 +                                 int w, int h, int orientation) {
146.2650 +        paintBorder(context, g, x, y, w, h, orientation);
146.2651 +    }
146.2652 +
146.2653 +    /**
146.2654 +     * Paints the background of a tool tip.
146.2655 +     *
146.2656 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2657 +     *        <code>Region</code> to paint to
146.2658 +     * @param g <code>Graphics</code> to paint to
146.2659 +     * @param x X coordinate of the area to paint to
146.2660 +     * @param y Y coordinate of the area to paint to
146.2661 +     * @param w Width of the area to paint to
146.2662 +     * @param h Height of the area to paint to
146.2663 +     */
146.2664 +    public void paintToolTipBackground(SynthContext context,
146.2665 +                                     Graphics g, int x, int y,
146.2666 +                                     int w, int h) {
146.2667 +        paintBackground(context, g, x, y, w, h, null);
146.2668 +    }
146.2669 +
146.2670 +    /**
146.2671 +     * Paints the border of a tool tip.
146.2672 +     *
146.2673 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2674 +     *        <code>Region</code> to paint to
146.2675 +     * @param g <code>Graphics</code> to paint to
146.2676 +     * @param x X coordinate of the area to paint to
146.2677 +     * @param y Y coordinate of the area to paint to
146.2678 +     * @param w Width of the area to paint to
146.2679 +     * @param h Height of the area to paint to
146.2680 +     */
146.2681 +    public void paintToolTipBorder(SynthContext context,
146.2682 +                                 Graphics g, int x, int y,
146.2683 +                                 int w, int h) {
146.2684 +        paintBorder(context, g, x, y, w, h, null);
146.2685 +    }
146.2686 +
146.2687 +    /**
146.2688 +     * Paints the background of a tree.
146.2689 +     *
146.2690 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2691 +     *        <code>Region</code> to paint to
146.2692 +     * @param g <code>Graphics</code> to paint to
146.2693 +     * @param x X coordinate of the area to paint to
146.2694 +     * @param y Y coordinate of the area to paint to
146.2695 +     * @param w Width of the area to paint to
146.2696 +     * @param h Height of the area to paint to
146.2697 +     */
146.2698 +    public void paintTreeBackground(SynthContext context,
146.2699 +                                     Graphics g, int x, int y,
146.2700 +                                     int w, int h) {
146.2701 +        paintBackground(context, g, x, y, w, h, null);
146.2702 +    }
146.2703 +
146.2704 +    /**
146.2705 +     * Paints the border of a tree.
146.2706 +     *
146.2707 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2708 +     *        <code>Region</code> to paint to
146.2709 +     * @param g <code>Graphics</code> to paint to
146.2710 +     * @param x X coordinate of the area to paint to
146.2711 +     * @param y Y coordinate of the area to paint to
146.2712 +     * @param w Width of the area to paint to
146.2713 +     * @param h Height of the area to paint to
146.2714 +     */
146.2715 +    public void paintTreeBorder(SynthContext context,
146.2716 +                                 Graphics g, int x, int y,
146.2717 +                                 int w, int h) {
146.2718 +        paintBorder(context, g, x, y, w, h, null);
146.2719 +    }
146.2720 +
146.2721 +    /**
146.2722 +     * Paints the background of the row containing a cell in a tree.
146.2723 +     *
146.2724 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2725 +     *        <code>Region</code> to paint to
146.2726 +     * @param g <code>Graphics</code> to paint to
146.2727 +     * @param x X coordinate of the area to paint to
146.2728 +     * @param y Y coordinate of the area to paint to
146.2729 +     * @param w Width of the area to paint to
146.2730 +     * @param h Height of the area to paint to
146.2731 +     */
146.2732 +    public void paintTreeCellBackground(SynthContext context,
146.2733 +                                     Graphics g, int x, int y,
146.2734 +                                     int w, int h) {
146.2735 +        paintBackground(context, g, x, y, w, h, null);
146.2736 +    }
146.2737 +
146.2738 +    /**
146.2739 +     * Paints the border of the row containing a cell in a tree.
146.2740 +     *
146.2741 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2742 +     *        <code>Region</code> to paint to
146.2743 +     * @param g <code>Graphics</code> to paint to
146.2744 +     * @param x X coordinate of the area to paint to
146.2745 +     * @param y Y coordinate of the area to paint to
146.2746 +     * @param w Width of the area to paint to
146.2747 +     * @param h Height of the area to paint to
146.2748 +     */
146.2749 +    public void paintTreeCellBorder(SynthContext context,
146.2750 +                                 Graphics g, int x, int y,
146.2751 +                                 int w, int h) {
146.2752 +        paintBorder(context, g, x, y, w, h, null);
146.2753 +    }
146.2754 +
146.2755 +    /**
146.2756 +     * Paints the focus indicator for a cell in a tree when it has focus.
146.2757 +     *
146.2758 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2759 +     *        <code>Region</code> to paint to
146.2760 +     * @param g <code>Graphics</code> to paint to
146.2761 +     * @param x X coordinate of the area to paint to
146.2762 +     * @param y Y coordinate of the area to paint to
146.2763 +     * @param w Width of the area to paint to
146.2764 +     * @param h Height of the area to paint to
146.2765 +     */
146.2766 +    public void paintTreeCellFocus(SynthContext context,
146.2767 +                                   Graphics g, int x, int y,
146.2768 +                                   int w, int h) {
146.2769 +        //TODO
146.2770 +    }
146.2771 +
146.2772 +    /**
146.2773 +     * Paints the background of the viewport.
146.2774 +     *
146.2775 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2776 +     *        <code>Region</code> to paint to
146.2777 +     * @param g <code>Graphics</code> to paint to
146.2778 +     * @param x X coordinate of the area to paint to
146.2779 +     * @param y Y coordinate of the area to paint to
146.2780 +     * @param w Width of the area to paint to
146.2781 +     * @param h Height of the area to paint to
146.2782 +     */
146.2783 +    public void paintViewportBackground(SynthContext context,
146.2784 +                                     Graphics g, int x, int y,
146.2785 +                                     int w, int h) {
146.2786 +        paintBackground(context, g, x, y, w, h, null);
146.2787 +    }
146.2788 +
146.2789 +    /**
146.2790 +     * Paints the border of a viewport.
146.2791 +     *
146.2792 +     * @param context SynthContext identifying the <code>JComponent</code> and
146.2793 +     *        <code>Region</code> to paint to
146.2794 +     * @param g <code>Graphics</code> to paint to
146.2795 +     * @param x X coordinate of the area to paint to
146.2796 +     * @param y Y coordinate of the area to paint to
146.2797 +     * @param w Width of the area to paint to
146.2798 +     * @param h Height of the area to paint to
146.2799 +     */
146.2800 +    public void paintViewportBorder(SynthContext context,
146.2801 +                                 Graphics g, int x, int y,
146.2802 +                                 int w, int h) {
146.2803 +        paintBorder(context, g, x, y, w, h, null);
146.2804 +    }
146.2805 +}
   147.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   147.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/TableScrollPaneCorner.java	Wed Apr 29 00:27:46 2009 -0700
   147.3 @@ -0,0 +1,68 @@
   147.4 +/*
   147.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
   147.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   147.7 + *
   147.8 + * This code is free software; you can redistribute it and/or modify it
   147.9 + * under the terms of the GNU General Public License version 2 only, as
  147.10 + * published by the Free Software Foundation.  Sun designates this
  147.11 + * particular file as subject to the "Classpath" exception as provided
  147.12 + * by Sun in the LICENSE file that accompanied this code.
  147.13 + *
  147.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  147.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  147.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  147.17 + * version 2 for more details (a copy is included in the LICENSE file that
  147.18 + * accompanied this code).
  147.19 + *
  147.20 + * You should have received a copy of the GNU General Public License version
  147.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  147.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  147.23 + *
  147.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  147.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  147.26 + * have any questions.
  147.27 + */
  147.28 +package javax.swing.plaf.nimbus;
  147.29 +
  147.30 +import javax.swing.Painter;
  147.31 +
  147.32 +import javax.swing.JComponent;
  147.33 +import javax.swing.UIManager;
  147.34 +import javax.swing.plaf.UIResource;
  147.35 +import java.awt.Graphics;
  147.36 +import java.awt.Graphics2D;
  147.37 +import java.awt.Color;
  147.38 +import java.awt.image.BufferedImage;
  147.39 +
  147.40 +/**
  147.41 + * TableScrollPaneCorner - A simple component that paints itself using the table
  147.42 + * header background painter. It is used to fill the top right corner of
  147.43 + * scrollpane.
  147.44 + *
  147.45 + * @author Created by Jasper Potts (Jan 28, 2008)
  147.46 + */
  147.47 +class TableScrollPaneCorner extends JComponent implements UIResource{
  147.48 +
  147.49 +    /**
  147.50 +     * Paint the component using the Nimbus Table Header Background Painter
  147.51 +     */
  147.52 +    @Override protected void paintComponent(Graphics g) {
  147.53 +        Painter painter = (Painter) UIManager.get(
  147.54 +            "TableHeader:\"TableHeader.renderer\"[Enabled].backgroundPainter");
  147.55 +        if (painter != null){
  147.56 +            if (g instanceof Graphics2D){
  147.57 +                painter.paint((Graphics2D)g,this,getWidth()+1,getHeight());
  147.58 +            } else {
  147.59 +                // paint using image to not Graphics2D to support
  147.60 +                // Java 1.1 printing API
  147.61 +                BufferedImage img =  new BufferedImage(getWidth(),getHeight(),
  147.62 +                        BufferedImage.TYPE_INT_ARGB);
  147.63 +                Graphics2D g2 = (Graphics2D)img.getGraphics();
  147.64 +                painter.paint(g2,this,getWidth()+1,getHeight());
  147.65 +                g2.dispose();
  147.66 +                g.drawImage(img,0,0,null);
  147.67 +                img = null;
  147.68 +            }
  147.69 +        }
  147.70 +    }
  147.71 +}
   148.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   148.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/ToolBarSeparatorPainter.java	Wed Apr 29 00:27:46 2009 -0700
   148.3 @@ -0,0 +1,71 @@
   148.4 +/*
   148.5 + * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
   148.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   148.7 + *
   148.8 + * This code is free software; you can redistribute it and/or modify it
   148.9 + * under the terms of the GNU General Public License version 2 only, as
  148.10 + * published by the Free Software Foundation.  Sun designates this
  148.11 + * particular file as subject to the "Classpath" exception as provided
  148.12 + * by Sun in the LICENSE file that accompanied this code.
  148.13 + *
  148.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  148.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  148.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  148.17 + * version 2 for more details (a copy is included in the LICENSE file that
  148.18 + * accompanied this code).
  148.19 + *
  148.20 + * You should have received a copy of the GNU General Public License version
  148.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  148.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  148.23 + *
  148.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  148.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  148.26 + * have any questions.
  148.27 + */
  148.28 +
  148.29 +package javax.swing.plaf.nimbus;
  148.30 +
  148.31 +import javax.swing.plaf.nimbus.AbstractRegionPainter.PaintContext.CacheMode;
  148.32 +import java.awt.Dimension;
  148.33 +import java.awt.Graphics2D;
  148.34 +import java.awt.Insets;
  148.35 +import javax.swing.JComponent;
  148.36 +
  148.37 +/**
  148.38 + * A special painter implementation for tool bar separators in Nimbus.
  148.39 + * The designer tool doesn't have support for painters which render
  148.40 + * repeated patterns, but that's exactly what the toolbar separator design
  148.41 + * is for Nimbus. This custom painter is designed to handle this situation.
  148.42 + * When support is added to the design tool / code generator to deal with
  148.43 + * repeated patterns, then we can remove this class.
  148.44 + * <p>
  148.45 + */
  148.46 +final class ToolBarSeparatorPainter extends AbstractRegionPainter {
  148.47 +    private static final int SPACE = 3;
  148.48 +    private static final int INSET = 2;
  148.49 +
  148.50 +    @Override
  148.51 +    protected PaintContext getPaintContext() {
  148.52 +        //the paint context returned will have a few dummy values. The
  148.53 +        //implementation of doPaint doesn't bother with the "decode" methods
  148.54 +        //but calculates where to paint the circles manually. As such, we
  148.55 +        //only need to indicate in our PaintContext that we don't want this
  148.56 +        //to ever be cached
  148.57 +        return new PaintContext(
  148.58 +                new Insets(1, 0, 1, 0),
  148.59 +                new Dimension(38, 7),
  148.60 +                false, CacheMode.NO_CACHING, 1, 1);
  148.61 +    }
  148.62 +
  148.63 +    @Override
  148.64 +    protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) {
  148.65 +        //it is assumed that in the normal orientation the separator renders
  148.66 +        //horizontally. Other code rotates it as necessary for a vertical
  148.67 +        //separator.
  148.68 +        g.setColor(c.getForeground());
  148.69 +        int y = height / 2;
  148.70 +        for (int i=INSET; i<=width-INSET; i+=SPACE) {
  148.71 +            g.fillRect(i, y, 1, 1);
  148.72 +        }
  148.73 +    }
  148.74 +}
   149.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   149.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/doc-files/properties.html	Wed Apr 29 00:27:46 2009 -0700
   149.3 @@ -0,0 +1,207 @@
   149.4 +<html>
   149.5 +<head>
   149.6 +<link href="style.css" rel="stylesheet" type="text/css" />
   149.7 +</head>
   149.8 +<body>
   149.9 +<h1 id="primaryColors">Primary Colors</h1>
  149.10 +<table>
  149.11 +<tr><th>Key</th><th>Value</th><th>Preview</th></tr>
  149.12 +<tr>
  149.13 +<td width="250"><code>control</code></td>
  149.14 +<td><pre>#d6d9df (214,217,223)</pre></td>
  149.15 +
  149.16 +<td width="100" bgcolor="#d6d9df">&nbsp;</td>
  149.17 +</tr>
  149.18 +<tr>
  149.19 +<td width="250"><code>info</code></td>
  149.20 +<td><pre>#f2f2bd (242,242,189)</pre></td>
  149.21 +<td width="100" bgcolor="#f2f2bd">&nbsp;</td>
  149.22 +</tr>
  149.23 +<tr>
  149.24 +<td width="250"><code>nimbusAlertYellow</code></td>
  149.25 +<td><pre>#ffdc23 (255,220,35)</pre></td>
  149.26 +<td width="100" bgcolor="#ffdc23">&nbsp;</td>
  149.27 +</tr>
  149.28 +<tr>
  149.29 +
  149.30 +<td width="250"><code>nimbusBase</code></td>
  149.31 +<td><pre>#33628c (51,98,140)</pre></td>
  149.32 +<td width="100" bgcolor="#33628c">&nbsp;</td>
  149.33 +</tr>
  149.34 +<tr>
  149.35 +<td width="250"><code>nimbusDisabledText</code></td>
  149.36 +<td><pre>#8e8f91 (142,143,145)</pre></td>
  149.37 +<td width="100" bgcolor="#8e8f91">&nbsp;</td>
  149.38 +</tr>
  149.39 +<tr>
  149.40 +<td width="250"><code>nimbusFocus</code></td>
  149.41 +<td><pre>#73a4d1 (115,164,209)</pre></td>
  149.42 +
  149.43 +<td width="100" bgcolor="#73a4d1">&nbsp;</td>
  149.44 +</tr>
  149.45 +<tr>
  149.46 +<td width="250"><code>nimbusGreen</code></td>
  149.47 +<td><pre>#b0b332 (176,179,50)</pre></td>
  149.48 +<td width="100" bgcolor="#b0b332">&nbsp;</td>
  149.49 +</tr>
  149.50 +<tr>
  149.51 +<td width="250"><code>nimbusInfoBlue</code></td>
  149.52 +<td><pre>#2f5cb4 (47,92,180)</pre></td>
  149.53 +<td width="100" bgcolor="#2f5cb4">&nbsp;</td>
  149.54 +</tr>
  149.55 +<tr>
  149.56 +
  149.57 +<td width="250"><code>nimbusLightBackground</code></td>
  149.58 +<td><pre>#ffffff (255,255,255)</pre></td>
  149.59 +<td width="100" bgcolor="#ffffff">&nbsp;</td>
  149.60 +</tr>
  149.61 +<tr>
  149.62 +<td width="250"><code>nimbusOrange</code></td>
  149.63 +<td><pre>#bf6204 (191,98,4)</pre></td>
  149.64 +<td width="100" bgcolor="#bf6204">&nbsp;</td>
  149.65 +</tr>
  149.66 +<tr>
  149.67 +<td width="250"><code>nimbusRed</code></td>
  149.68 +<td><pre>#a92e22 (169,46,34)</pre></td>
  149.69 +
  149.70 +<td width="100" bgcolor="#a92e22">&nbsp;</td>
  149.71 +</tr>
  149.72 +<tr>
  149.73 +<td width="250"><code>nimbusSelectedText</code></td>
  149.74 +<td><pre>#ffffff (255,255,255)</pre></td>
  149.75 +<td width="100" bgcolor="#ffffff">&nbsp;</td>
  149.76 +</tr>
  149.77 +<tr>
  149.78 +<td width="250"><code>nimbusSelectionBackground</code></td>
  149.79 +<td><pre>#39698a (57,105,138)</pre></td>
  149.80 +<td width="100" bgcolor="#39698a">&nbsp;</td>
  149.81 +</tr>
  149.82 +<tr>
  149.83 +
  149.84 +<td width="250"><code>text</code></td>
  149.85 +<td><pre>#000000 (0,0,0)</pre></td>
  149.86 +<td width="100" bgcolor="#000000">&nbsp;</td>
  149.87 +</tr>
  149.88 +</table>
  149.89 +
  149.90 +<h1 id="secondaryColors">Secondary Colors</h1>
  149.91 +<table>
  149.92 +<tr><th>Key</th><th>Value</th><th>Preview</th></tr>
  149.93 +<tr>
  149.94 +<td width="250"><code>activeCaption</code></td>
  149.95 +
  149.96 +<td><pre>#babec6 (186,190,198)</pre></td>
  149.97 +<td width="100" bgcolor="#babec6">&nbsp;</td>
  149.98 +</tr>
  149.99 +<tr>
 149.100 +<td width="250"><code>background</code></td>
 149.101 +<td><pre>#d6d9df (214,217,223)</pre></td>
 149.102 +<td width="100" bgcolor="#d6d9df">&nbsp;</td>
 149.103 +</tr>
 149.104 +<tr>
 149.105 +<td width="250"><code>controlDkShadow</code></td>
 149.106 +<td><pre>#a4abb8 (164,171,184)</pre></td>
 149.107 +<td width="100" bgcolor="#a4abb8">&nbsp;</td>
 149.108 +
 149.109 +</tr>
 149.110 +<tr>
 149.111 +<td width="250"><code>controlHighlight</code></td>
 149.112 +<td><pre>#e9ecf2 (233,236,242)</pre></td>
 149.113 +<td width="100" bgcolor="#e9ecf2">&nbsp;</td>
 149.114 +</tr>
 149.115 +<tr>
 149.116 +<td width="250"><code>controlLHighlight</code></td>
 149.117 +<td><pre>#f7f8fa (247,248,250)</pre></td>
 149.118 +<td width="100" bgcolor="#f7f8fa">&nbsp;</td>
 149.119 +</tr>
 149.120 +<tr>
 149.121 +<td width="250"><code>controlShadow</code></td>
 149.122 +
 149.123 +<td><pre>#ccd3e0 (204,211,224)</pre></td>
 149.124 +<td width="100" bgcolor="#ccd3e0">&nbsp;</td>
 149.125 +</tr>
 149.126 +<tr>
 149.127 +<td width="250"><code>controlText</code></td>
 149.128 +<td><pre>#000000 (0,0,0)</pre></td>
 149.129 +<td width="100" bgcolor="#000000">&nbsp;</td>
 149.130 +</tr>
 149.131 +<tr>
 149.132 +<td width="250"><code>desktop</code></td>
 149.133 +<td><pre>#3d6079 (61,96,121)</pre></td>
 149.134 +<td width="100" bgcolor="#3d6079">&nbsp;</td>
 149.135 +
 149.136 +</tr>
 149.137 +<tr>
 149.138 +<td width="250"><code>inactiveCaption</code></td>
 149.139 +<td><pre>#bdc1c8 (189,193,200)</pre></td>
 149.140 +<td width="100" bgcolor="#bdc1c8">&nbsp;</td>
 149.141 +</tr>
 149.142 +<tr>
 149.143 +<td width="250"><code>infoText</code></td>
 149.144 +<td><pre>#000000 (0,0,0)</pre></td>
 149.145 +<td width="100" bgcolor="#000000">&nbsp;</td>
 149.146 +</tr>
 149.147 +<tr>
 149.148 +<td width="250"><code>menu</code></td>
 149.149 +
 149.150 +<td><pre>#edeff2 (237,239,242)</pre></td>
 149.151 +<td width="100" bgcolor="#edeff2">&nbsp;</td>
 149.152 +</tr>
 149.153 +<tr>
 149.154 +<td width="250"><code>menuText</code></td>
 149.155 +<td><pre>#000000 (0,0,0)</pre></td>
 149.156 +<td width="100" bgcolor="#000000">&nbsp;</td>
 149.157 +</tr>
 149.158 +<tr>
 149.159 +<td width="250"><code>nimbusBlueGrey</code></td>
 149.160 +<td><pre>#a9b0be (169,176,190)</pre></td>
 149.161 +<td width="100" bgcolor="#a9b0be">&nbsp;</td>
 149.162 +
 149.163 +</tr>
 149.164 +<tr>
 149.165 +<td width="250"><code>nimbusBorder</code></td>
 149.166 +<td><pre>#9297a1 (146,151,161)</pre></td>
 149.167 +<td width="100" bgcolor="#9297a1">&nbsp;</td>
 149.168 +</tr>
 149.169 +<tr>
 149.170 +<td width="250"><code>nimbusSelection</code></td>
 149.171 +<td><pre>#39698a (57,105,138)</pre></td>
 149.172 +<td width="100" bgcolor="#39698a">&nbsp;</td>
 149.173 +</tr>
 149.174 +<tr>
 149.175 +<td width="250"><code>scrollbar</code></td>
 149.176 +
 149.177 +<td><pre>#cdd0d5 (205,208,213)</pre></td>
 149.178 +<td width="100" bgcolor="#cdd0d5">&nbsp;</td>
 149.179 +</tr>
 149.180 +<tr>
 149.181 +<td width="250"><code>textBackground</code></td>
 149.182 +<td><pre>#39698a (57,105,138)</pre></td>
 149.183 +<td width="100" bgcolor="#39698a">&nbsp;</td>
 149.184 +</tr>
 149.185 +<tr>
 149.186 +<td width="250"><code>textForeground</code></td>
 149.187 +<td><pre>#000000 (0,0,0)</pre></td>
 149.188 +<td width="100" bgcolor="#000000">&nbsp;</td>
 149.189 +
 149.190 +</tr>
 149.191 +<tr>
 149.192 +<td width="250"><code>textHighlight</code></td>
 149.193 +<td><pre>#39698a (57,105,138)</pre></td>
 149.194 +<td width="100" bgcolor="#39698a">&nbsp;</td>
 149.195 +</tr>
 149.196 +<tr>
 149.197 +<td width="250"><code>textHighlightText</code></td>
 149.198 +<td><pre>#ffffff (255,255,255)</pre></td>
 149.199 +<td width="100" bgcolor="#ffffff">&nbsp;</td>
 149.200 +</tr>
 149.201 +<tr>
 149.202 +<td width="250"><code>textInactiveText</code></td>
 149.203 +
 149.204 +<td><pre>#8e8f91 (142,143,145)</pre></td>
 149.205 +<td width="100" bgcolor="#8e8f91">&nbsp;</td>
 149.206 +</tr>
 149.207 +</table>
 149.208 +
 149.209 +</body>
 149.210 +</html>
   150.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   150.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/package.html	Wed Apr 29 00:27:46 2009 -0700
   150.3 @@ -0,0 +1,102 @@
   150.4 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
   150.5 +<html>
   150.6 +<head>
   150.7 +<!--
   150.8 +Copyright 1998-2001 Sun Microsystems, Inc.  All Rights Reserved.
   150.9 +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  150.10 +
  150.11 +This code is free software; you can redistribute it and/or modify it
  150.12 +under the terms of the GNU General Public License version 2 only, as
  150.13 +published by the Free Software Foundation.  Sun designates this
  150.14 +particular file as subject to the "Classpath" exception as provided
  150.15 +by Sun in the LICENSE file that accompanied this code.
  150.16 +
  150.17 +This code is distributed in the hope that it will be useful, but WITHOUT
  150.18 +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  150.19 +FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  150.20 +version 2 for more details (a copy is included in the LICENSE file that
  150.21 +accompanied this code).
  150.22 +
  150.23 +You should have received a copy of the GNU General Public License version
  150.24 +2 along with this work; if not, write to the Free Software Foundation,
  150.25 +Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  150.26 +
  150.27 +Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  150.28 +CA 95054 USA or visit www.sun.com if you need additional information or
  150.29 +have any questions.
  150.30 +-->
  150.31 +
  150.32 +</head>
  150.33 +<body bgcolor="white">
  150.34 +
  150.35 +Provides user interface objects built according to the cross-platform
  150.36 +Nimbus look and feel.
  150.37 +
  150.38 +<p>Nimbus uses instances of the {@link javax.swing.Painter} interface to paint
  150.39 +components. With each Swing component it associates a foreground and a
  150.40 +background {@code Painter}, and there may be several painters for different
  150.41 +component states.
  150.42 +
  150.43 +<p>Nimbus allows customizing many of its properties, including painters, by
  150.44 +altering the {@link UIDefaults} table. Here's an example:
  150.45 +<code><pre>
  150.46 +    UIManager.put("ProgressBar.tileWidth", myTileWidth);
  150.47 +    UIManager.put("ProgressBar[Enabled].backgroundPainter", myBgPainter);
  150.48 +    UIManager.put("ProgressBar[Enabled].foregroundPainter", myFgPainter);
  150.49 +</pre></code>
  150.50 +
  150.51 +<p>Per-component customization is also possible. When rendering a component,
  150.52 +Nimbus checks its client property named "Nimbus.Overrides". The value of this
  150.53 +property should be an instance of {@code UIDefaults}. Settings from that table
  150.54 +override the UIManager settings, but for that particular component instance
  150.55 +only. An optional client property, "Nimbus.Overrides.InheritDefaults" of type
  150.56 +Boolean, specifies whether the overriding settings should be merged with
  150.57 +default ones ({@code true}), or replace them ({@code false}). By default they
  150.58 +are merged:
  150.59 +<code><pre>
  150.60 +    JProgressBar bar = new JProgressBar();
  150.61 +    UIDefaults overrides = new UIDefaults();
  150.62 +    overrides.put("ProgressBar.cycleTime", 330);
  150.63 +    ...
  150.64 +    bar.putClientProperty("Nimbus.Overrides", overrides);
  150.65 +    bar.putClientProperty("Nimbus.Overrides.InheritDefaults", false);
  150.66 +</pre></code>
  150.67 +
  150.68 +<p>Colors in Nimbus are derived from a core set of
  150.69 +<a href="doc-files/properties.html#primaryColors">primary colors</a>. There are also
  150.70 +<a href="doc-files/properties.html#secondaryColors">secondary colors</a>, which are
  150.71 +derived from primary ones, but serve themselves as base colors for other
  150.72 +derived colors. The derivation mechanism allows for runtime customization,
  150.73 +i.e. if a primary or secondary color is changed, all colors that are derived
  150.74 +from it are automatically updated. The method
  150.75 +{@link javax.swing.plaf.nimbus.NimbusLookAndFeel#getDerivedColor(java.lang.String, float, float, float, int, boolean)}
  150.76 +may be used to create a derived color.
  150.77 +
  150.78 +<p>These classes are designed to be used while the
  150.79 +corresponding <code>LookAndFeel</code> class has been
  150.80 +installed
  150.81 +(<code>UIManager.setLookAndFeel(new <i>XXX</i>LookAndFeel())</code>).
  150.82 +Using them while a different <code>LookAndFeel</code> is installed
  150.83 +may produce unexpected results, including exceptions.
  150.84 +Additionally, changing the <code>LookAndFeel</code>
  150.85 +maintained by the <code>UIManager</code> without updating the
  150.86 +corresponding <code>ComponentUI</code> of any
  150.87 +<code>JComponent</code>s may also produce unexpected results,
  150.88 +such as the wrong colors showing up, and is generally not
  150.89 +encouraged.
  150.90 +
  150.91 +<p><strong>Note:</strong>
  150.92 +Most of the Swing API is <em>not</em> thread safe.
  150.93 +For details, see
  150.94 +<a
  150.95 +href="http://java.sun.com/docs/books/tutorial/uiswing/overview/threads.html"
  150.96 +target="_top">Threads and Swing</a>,
  150.97 +a section in
  150.98 +<em><a href="http://java.sun.com/docs/books/tutorial/"
  150.99 +target="_top">The Java Tutorial</a></em>.
 150.100 +
 150.101 +@since 1.7
 150.102 +@serial exclude
 150.103 +
 150.104 +</body>
 150.105 +</html>
   151.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   151.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/skin.laf	Wed Apr 29 00:27:46 2009 -0700
   151.3 @@ -0,0 +1,28332 @@
   151.4 +<?xml version="1.0" encoding="UTF-8"?>
   151.5 +
   151.6 +<!--
   151.7 + Copyright 1998-2004 Sun Microsystems, Inc.  All Rights Reserved.
   151.8 + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   151.9 +
  151.10 + This code is free software; you can redistribute it and/or modify it
  151.11 + under the terms of the GNU General Public License version 2 only, as
  151.12 + published by the Free Software Foundation.  Sun designates this
  151.13 + particular file as subject to the "Classpath" exception as provided
  151.14 + by Sun in the LICENSE file that accompanied this code.
  151.15 +
  151.16 + This code is distributed in the hope that it will be useful, but WITHOUT
  151.17 + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  151.18 + FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  151.19 + version 2 for more details (a copy is included in the LICENSE file that
  151.20 + accompanied this code).
  151.21 +
  151.22 + You should have received a copy of the GNU General Public License version
  151.23 + 2 along with this work; if not, write to the Free Software Foundation,
  151.24 + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  151.25 +
  151.26 + Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  151.27 + CA 95054 USA or visit www.sun.com if you need additional information or
  151.28 + have any questions.
  151.29 +-->
  151.30 +
  151.31 +<synthModel>
  151.32 +   <insets>
  151.33 +      <uiInsets name="zeroInsets">
  151.34 +         <insets top="0" bottom="0" left="0" right="0"/>
  151.35 +      </uiInsets>
  151.36 +      <uiInsets name="twoInsets">
  151.37 +         <insets top="2" bottom="2" left="2" right="2"/>
  151.38 +      </uiInsets>
  151.39 +      <uiInsets name="threeInsets">
  151.40 +         <insets top="3" bottom="3" left="3" right="3"/>
  151.41 +      </uiInsets>
  151.42 +   </insets>
  151.43 +   <colors>
  151.44 +      <uiColor name="text">
  151.45 +         <matte red="0" green="0" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
  151.46 +      </uiColor>
  151.47 +      <uiColor name="control">
  151.48 +         <matte red="214" green="217" blue="223" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
  151.49 +      </uiColor>
  151.50 +      <uiColor name="nimbusBase">
  151.51 +         <matte red="51" green="98" blue="140" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
  151.52 +      </uiColor>
  151.53 +      <uiColor name="nimbusBlueGrey">
  151.54 +         <matte red="169" green="176" blue="190" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.52518797" brightnessOffset="0.19607842" alphaOffset="0"/>
  151.55 +      </uiColor>
  151.56 +      <uiColor name="nimbusOrange">
  151.57 +         <matte red="191" green="98" blue="4" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
  151.58 +      </uiColor>
  151.59 +      <uiColor name="nimbusGreen">
  151.60 +         <matte red="176" green="179" blue="50" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
  151.61 +      </uiColor>
  151.62 +      <uiColor name="nimbusRed">
  151.63 +         <matte red="169" green="46" blue="34" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
  151.64 +      </uiColor>
  151.65 +      <uiColor name="nimbusBorder">
  151.66 +         <matte red="146" green="151" blue="161" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.017358616" brightnessOffset="-0.11372548" alphaOffset="0"/>
  151.67 +      </uiColor>
  151.68 +      <uiColor name="nimbusSelection">
  151.69 +         <matte red="57" green="105" blue="138" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.010750473" saturationOffset="-0.04875779" brightnessOffset="-0.007843137" alphaOffset="0"/>
  151.70 +      </uiColor>
  151.71 +      <uiColor name="nimbusInfoBlue">
  151.72 +         <matte red="47" green="92" blue="180" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
  151.73 +      </uiColor>
  151.74 +      <uiColor name="nimbusAlertYellow">
  151.75 +         <matte red="255" green="220" blue="35" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
  151.76 +      </uiColor>
  151.77 +      <uiColor name="nimbusFocus">
  151.78 +         <matte red="115" green="164" blue="209" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
  151.79 +      </uiColor>
  151.80 +      <uiColor name="nimbusSelectedText">
  151.81 +         <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
  151.82 +      </uiColor>
  151.83 +      <uiColor name="nimbusSelectionBackground">
  151.84 +         <matte red="57" green="105" blue="138" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
  151.85 +      </uiColor>
  151.86 +      <uiColor name="nimbusDisabledText">
  151.87 +         <matte red="142" green="143" blue="145" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
  151.88 +      </uiColor>
  151.89 +      <uiColor name="nimbusLightBackground">
  151.90 +         <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
  151.91 +      </uiColor>
  151.92 +      <uiColor name="infoText">
  151.93 +         <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="text" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
  151.94 +      </uiColor>
  151.95 +      <uiColor name="info">
  151.96 +         <matte red="242" green="242" blue="189" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
  151.97 +      </uiColor>
  151.98 +      <uiColor name="menuText">
  151.99 +         <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="text" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
 151.100 +      </uiColor>
 151.101 +      <uiColor name="menu">
 151.102 +         <matte red="237" green="239" blue="242" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.6150531" brightnessOffset="0.39999998" alphaOffset="0"/>
 151.103 +      </uiColor>
 151.104 +      <uiColor name="scrollbar">
 151.105 +         <matte red="205" green="208" blue="213" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.006944418" saturationOffset="-0.07296763" brightnessOffset="0.09019607" alphaOffset="0"/>
 151.106 +      </uiColor>
 151.107 +      <uiColor name="controlText">
 151.108 +         <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="text" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
 151.109 +      </uiColor>
 151.110 +      <uiColor name="controlHighlight">
 151.111 +         <matte red="233" green="236" blue="242" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07333623" brightnessOffset="0.20392156" alphaOffset="0"/>
 151.112 +      </uiColor>
 151.113 +      <uiColor name="controlLHighlight">
 151.114 +         <matte red="247" green="248" blue="250" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.098526314" brightnessOffset="0.2352941" alphaOffset="0"/>
 151.115 +      </uiColor>
 151.116 +      <uiColor name="controlShadow">
 151.117 +         <matte red="204" green="211" blue="224" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0027777553" saturationOffset="-0.0212406" brightnessOffset="0.13333333" alphaOffset="0"/>
 151.118 +      </uiColor>
 151.119 +       <uiColor name="controlDkShadow">
 151.120 +         <matte red="164" green="171" blue="184" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0027777553" saturationOffset="-0.0018306673" brightnessOffset="-0.02352941" alphaOffset="0"/>
 151.121 +      </uiColor>
 151.122 +      <uiColor name="textHighlight">
 151.123 +         <matte red="57" green="105" blue="138" alpha="255" uiDefaultParentName="nimbusSelectionBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
 151.124 +      </uiColor>
 151.125 +      <uiColor name="textHighlightText">
 151.126 +         <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusSelectedText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
 151.127 +      </uiColor>
 151.128 +      <uiColor name="textInactiveText">
 151.129 +         <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
 151.130 +      </uiColor>
 151.131 +      <uiColor name="desktop">
 151.132 +         <matte red="61" green="96" blue="121" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.009207249" saturationOffset="-0.13984653" brightnessOffset="-0.07450983" alphaOffset="0"/>
 151.133 +      </uiColor>
 151.134 +      <uiColor name="activeCaption">
 151.135 +         <matte red="186" green="190" blue="198" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.049920253" brightnessOffset="0.031372547" alphaOffset="0"/>
 151.136 +      </uiColor>
 151.137 +      <uiColor name="inactiveCaption">
 151.138 +         <matte red="189" green="193" blue="200" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.00505054" saturationOffset="-0.055526316" brightnessOffset="0.039215684" alphaOffset="0"/>
 151.139 +      </uiColor>
 151.140 +   </colors>
 151.141 +   <fonts>
 151.142 +      <uiFont name="InternalFrame.titleFont">
 151.143 +        <typeface uiDefaultParentName="defaultFont" bold="On"/>
 151.144 +      </uiFont>
 151.145 +   </fonts>
 151.146 +   <style>
 151.147 +      <textForeground>
 151.148 +         <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="text" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
 151.149 +      </textForeground>
 151.150 +      <textBackground>
 151.151 +         <matte red="57" green="105" blue="138" alpha="255" uiDefaultParentName="nimbusSelectionBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
 151.152 +      </textBackground>
 151.153 +      <background>
 151.154 +         <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="control" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
 151.155 +      </background>
 151.156 +      <inherit-textForeground>false</inherit-textForeground>
 151.157 +      <inherit-textBackground>false</inherit-textBackground>
 151.158 +      <inherit-background>false</inherit-background>
 151.159 +      <cacheSettingsInherited>false</cacheSettingsInherited>
 151.160 +      <uiproperties>
 151.161 +          <uiProperty name="TitledBorder.position" type="STRING" value="ABOVE_TOP"/>
 151.162 +          <uiProperty name="FileView.fullRowSelection" type="BOOLEAN" value="TRUE"/>
 151.163 +      </uiproperties>
 151.164 +   </style>
 151.165 +   <components>
 151.166 +      <uiComponent opaque="false" type="javax.swing.plaf.synth.SynthArrowButton" name="ArrowButton" ui="SynthArrowButtonUI" subregion="true">
 151.167 +         <stateTypes/>
 151.168 +         <contentMargins top="0" bottom="0" left="0" right="0"/>
 151.169 +         <style>
 151.170 +            <textForeground/>
 151.171 +            <textBackground/>
 151.172 +            <background/>
 151.173 +            <cacheSettingsInherited>false</cacheSettingsInherited>
 151.174 +            <uiproperties>
 151.175 +               <uiProperty name="size" type="INT" value="16"/>
 151.176 +            </uiproperties>
 151.177 +         </style>
 151.178 +         <backgroundStates>
 151.179 +            <state stateKeys="Enabled">
 151.180 +               <style>
 151.181 +                  <textForeground/>
 151.182 +                  <textBackground/>
 151.183 +                  <background/>
 151.184 +                  <uiproperties/>
 151.185 +               </style>
 151.186 +               <canvas>
 151.187 +                  <size width="10" height="10"/>
 151.188 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
 151.189 +                  <stretchingInsets top="0" bottom="0" left="0" right="0"/>
 151.190 +                  <layer name="Layer 1">
 151.191 +                     <opacity>1.0</opacity>
 151.192 +                     <fillOpacity>1.0</fillOpacity>
 151.193 +                     <blendingMode>NORMAL</blendingMode>
 151.194 +                     <locked>false</locked>
 151.195 +                     <visible>true</visible>
 151.196 +                     <shapes>
 151.197 +                     </shapes>
 151.198 +                     <effects/>
 151.199 +                  </layer>
 151.200 +               </canvas>
 151.201 +            </state>
 151.202 +         </backgroundStates>
 151.203 +         <foregroundStates>
 151.204 +            <state stateKeys="Disabled">
 151.205 +               <style>
 151.206 +                  <textForeground/>
 151.207 +                  <textBackground/>
 151.208 +                  <background/>
 151.209 +                  <uiproperties/>
 151.210 +               </style>
 151.211 +               <canvas>
 151.212 +                  <size width="10" height="10"/>
 151.213 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
 151.214 +                  <stretchingInsets top="0" bottom="0" left="0" right="0"/>
 151.215 +                  <layer name="Layer 1">
 151.216 +                     <opacity>1.0</opacity>
 151.217 +                     <fillOpacity>1.0</fillOpacity>
 151.218 +                     <blendingMode>NORMAL</blendingMode>
 151.219 +                     <locked>false</locked>
 151.220 +                     <visible>true</visible>
 151.221 +                     <shapes>
 151.222 +                        <path>
 151.223 +                           <matte red="167" green="171" blue="178" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.027408898" saturationOffset="-0.57391655" brightnessOffset="0.1490196" alphaOffset="0"/>
 151.224 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
 151.225 +                           <points>
 151.226 +                              <point x="8.0" y="2.0" cp1x="8.0" cp1y="2.0" cp2x="8.0" cp2y="2.0"/>
 151.227 +                              <point x="2.0" y="5.0" cp1x="2.0" cp1y="5.0" cp2x="2.0" cp2y="5.0"/>
 151.228 +                              <point x="8.0" y="8.0" cp1x="8.0" cp1y="8.0" cp2x="8.0" cp2y="8.0"/>
 151.229 +                           </points>
 151.230 +                        </path>
 151.231 +                     </shapes>
 151.232 +                     <effects/>
 151.233 +                  </layer>
 151.234 +               </canvas>
 151.235 +            </state>
 151.236 +            <state stateKeys="Enabled">
 151.237 +               <style>
 151.238 +                  <textForeground/>
 151.239 +                  <textBackground/>
 151.240 +                  <background/>
 151.241 +                  <uiproperties/>
 151.242 +               </style>
 151.243 +               <canvas>
 151.244 +                  <size width="10" height="10"/>
 151.245 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
 151.246 +                  <stretchingInsets top="0" bottom="0" left="0" right="0"/>
 151.247 +                  <layer name="Layer 1">
 151.248 +                     <opacity>1.0</opacity>
 151.249 +                     <fillOpacity>1.0</fillOpacity>
 151.250 +                     <blendingMode>NORMAL</blendingMode>
 151.251 +                     <locked>false</locked>
 151.252 +                     <visible>true</visible>
 151.253 +                     <shapes>
 151.254 +                        <path>
 151.255 +                           <matte red="45" green="45" blue="45" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.37254906" alphaOffset="0"/>
 151.256 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
 151.257 +                           <points>
 151.258 +                              <point x="8.0" y="2.0" cp1x="8.0" cp1y="2.0" cp2x="8.0" cp2y="2.0"/>
 151.259 +                              <point x="2.0" y="5.0" cp1x="2.0" cp1y="5.0" cp2x="2.0" cp2y="5.0"/>
 151.260 +                              <point x="8.0" y="8.0" cp1x="8.0" cp1y="8.0" cp2x="8.0" cp2y="8.0"/>
 151.261 +                           </points>
 151.262 +                        </path>
 151.263 +                     </shapes>
 151.264 +                     <effects/>
 151.265 +                  </layer>
 151.266 +               </canvas>
 151.267 +            </state>
 151.268 +         </foregroundStates>
 151.269 +         <borderStates/>
 151.270 +         <regions/>
 151.271 +      </uiComponent>
 151.272 +      <uiComponent opaque="false" type="javax.swing.JButton" name="Button" ui="ButtonUI" subregion="false">
 151.273 +         <stateTypes/>
 151.274 +         <contentMargins top="6" bottom="6" left="14" right="14"/>
 151.275 +         <style>
 151.276 +            <textForeground/>
 151.277 +            <textBackground/>
 151.278 +            <background/>
 151.279 +            <cacheSettingsInherited>false</cacheSettingsInherited>
 151.280 +            <cacheMode>NINE_SQUARE_SCALE</cacheMode>
 151.281 +            <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
 151.282 +            <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
 151.283 +            <uiproperties>
 151.284 +               <uiProperty name="defaultButtonFollowsFocus" type="BOOLEAN" value="false"/>
 151.285 +            </uiproperties>
 151.286 +         </style>
 151.287 +         <backgroundStates>
 151.288 +            <state stateKeys="Default">
 151.289 +               <style>
 151.290 +                  <textForeground/>
 151.291 +                  <textBackground/>
 151.292 +                  <background/>
 151.293 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
 151.294 +                  <cacheMode>NINE_SQUARE_SCALE</cacheMode>
 151.295 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
 151.296 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
 151.297 +                  <uiproperties/>
 151.298 +               </style>
 151.299 +               <canvas>
 151.300 +                  <size width="104" height="33"/>
 151.301 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
 151.302 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
 151.303 +                  <layer name="Button Layer">
 151.304 +                     <opacity>1.0</opacity>
 151.305 +                     <fillOpacity>1.0</fillOpacity>
 151.306 +                     <blendingMode>NORMAL</blendingMode>
 151.307 +                     <locked>false</locked>
 151.308 +                     <visible>true</visible>
 151.309 +                     <shapes>
 151.310 +                        <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="7.0">
 151.311 +                           <gradient cycleMethod="NO_CYCLE">
 151.312 +                              <stop position="0.0" midpoint="0.4">
 151.313 +                                 <matte red="246" green="248" blue="250" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6197143" brightnessOffset="0.43137252" alphaOffset="0"/>
 151.314 +                              </stop>
 151.315 +                              <stop position="0.06" midpoint="0.4">
 151.316 +                                 <matte red="223" green="230" blue="237" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.5766426" brightnessOffset="0.38039213" alphaOffset="0"/>
 151.317 +                              </stop>
 151.318 +                              <stop position="0.6" midpoint="0.5">
 151.319 +                                 <matte red="163" green="184" blue="203" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.43866998" brightnessOffset="0.24705881" alphaOffset="0"/>
 151.320 +                              </stop>
 151.321 +                              <stop position="0.7" midpoint="0.6">
 151.322 +                                 <matte red="163" green="184" blue="203" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.43866998" brightnessOffset="0.24705881" alphaOffset="0"/>
 151.323 +                              </stop>
 151.324 +                              <stop position="0.96" midpoint="0.6">
 151.325 +                                 <matte red="193" green="214" blue="233" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.46404046" brightnessOffset="0.36470586" alphaOffset="0"/>
 151.326 +                              </stop>
 151.327 +                              <stop position="1.0" midpoint="0.5">
 151.328 +                                 <matte red="213" green="234" blue="253" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.47761154" brightnessOffset="0.44313723" alphaOffset="0"/>
 151.329 +                              </stop>
 151.330 +                           </gradient>
 151.331 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
 151.332 +                        </rectangle>
 151.333 +                        <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="9.0">
 151.334 +                           <gradient cycleMethod="NO_CYCLE">
 151.335 +                              <stop position="0.05" midpoint="0.5">
 151.336 +                                 <matte red="98" green="119" blue="138" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.34585923" brightnessOffset="-0.007843137" alphaOffset="0"/>
 151.337 +                              </stop>
 151.338 +                              <stop position="0.95" midpoint="0.5">
 151.339 +                                 <matte red="34" green="55" blue="74" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.095173776" brightnessOffset="-0.25882354" alphaOffset="0"/>
 151.340 +                              </stop>
 151.341 +                           </gradient>
 151.342 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
 151.343 +                        </rectangle>
 151.344 +                        <rectangle x1="2.0" x2="102.0" y1="3.0" y2="32.0" rounding="12.0">
 151.345 +                           <matte red="92" green="94" blue="96" alpha="65" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.06885965" brightnessOffset="-0.36862746" alphaOffset="-190"/>
 151.346 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
 151.347 +                        </rectangle>
 151.348 +                     </shapes>
 151.349 +                     <effects/>
 151.350 +                  </layer>
 151.351 +               </canvas>
 151.352 +            </state>
 151.353 +            <state stateKeys="Default+Focused">
 151.354 +               <style>
 151.355 +                  <textForeground/>
 151.356 +                  <textBackground/>
 151.357 +                  <background/>
 151.358 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
 151.359 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
 151.360 +                  <uiproperties/>
 151.361 +               </style>
 151.362 +               <canvas>
 151.363 +                  <size width="104" height="33"/>
 151.364 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
 151.365 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
 151.366 +                  <layer name="Button Layer">
 151.367 +                     <opacity>1.0</opacity>
 151.368 +                     <fillOpacity>1.0</fillOpacity>
 151.369 +                     <blendingMode>NORMAL</blendingMode>
 151.370 +                     <locked>false</locked>
 151.371 +                     <visible>true</visible>
 151.372 +                     <shapes>
 151.373 +                        <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="7.0">
 151.374 +                           <gradient cycleMethod="NO_CYCLE">
 151.375 +                              <stop position="0.0" midpoint="0.4">
 151.376 +                                 <matte red="246" green="248" blue="250" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6197143" brightnessOffset="0.43137252" alphaOffset="0"/>
 151.377 +                              </stop>
 151.378 +                              <stop position="0.06" midpoint="0.4">
 151.379 +                                 <matte red="223" green="230" blue="237" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.5766426" brightnessOffset="0.38039213" alphaOffset="0"/>
 151.380 +                              </stop>
 151.381 +                              <stop position="0.6" midpoint="0.5">
 151.382 +                                 <matte red="163" green="184" blue="203" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.43866998" brightnessOffset="0.24705881" alphaOffset="0"/>
 151.383 +                              </stop>
 151.384 +                              <stop position="0.7" midpoint="0.6">
 151.385 +                                 <matte red="163" green="184" blue="203" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.43866998" brightnessOffset="0.24705881" alphaOffset="0"/>
 151.386 +                              </stop>
 151.387 +                              <stop position="0.96" midpoint="0.6">
 151.388 +                                 <matte red="193" green="214" blue="233" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.46404046" brightnessOffset="0.36470586" alphaOffset="0"/>
 151.389 +                              </stop>
 151.390 +                              <stop position="1.0" midpoint="0.5">
 151.391 +                                 <matte red="213" green="234" blue="253" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.47761154" brightnessOffset="0.44313723" alphaOffset="0"/>
 151.392 +                              </stop>
 151.393 +                           </gradient>
 151.394 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
 151.395 +                        </rectangle>
 151.396 +                        <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="9.0">
 151.397 +                           <gradient cycleMethod="NO_CYCLE">
 151.398 +                              <stop position="0.05" midpoint="0.5">
 151.399 +                                 <matte red="98" green="119" blue="138" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.34585923" brightnessOffset="-0.007843137" alphaOffset="0"/>
 151.400 +                              </stop>
 151.401 +                              <stop position="0.95" midpoint="0.5">
 151.402 +                                 <matte red="34" green="55" blue="74" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.095173776" brightnessOffset="-0.25882354" alphaOffset="0"/>
 151.403 +                              </stop>
 151.404 +                           </gradient>
 151.405 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
 151.406 +                        </rectangle>
 151.407 +                        <rectangle x1="0.6" x2="103.4" y1="0.6" y2="32.4" rounding="11.0">
 151.408 +                           <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
 151.409 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
 151.410 +                        </rectangle>
 151.411 +                     </shapes>
 151.412 +                     <effects/>
 151.413 +                  </layer>
 151.414 +               </canvas>
 151.415 +            </state>
 151.416 +            <state stateKeys="MouseOver+Default">
 151.417 +               <style>
 151.418 +                  <textForeground/>
 151.419 +                  <textBackground/>
 151.420 +                  <background/>
 151.421 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
 151.422 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
 151.423 +                  <uiproperties/>
 151.424 +               </style>
 151.425 +               <canvas>
 151.426 +                  <size width="104" height="33"/>
 151.427 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
 151.428 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
 151.429 +                  <layer name="Button Layer">
 151.430 +                     <opacity>1.0</opacity>
 151.431 +                     <fillOpacity>1.0</fillOpacity>
 151.432 +                     <blendingMode>NORMAL</blendingMode>
 151.433 +                     <locked>false</locked>
 151.434 +                     <visible>true</visible>
 151.435 +                     <shapes>
 151.436 +                        <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="7.0">
 151.437 +                           <gradient cycleMethod="NO_CYCLE">
 151.438 +                              <stop position="0.0" midpoint="0.4">
 151.439 +                                 <matte red="248" green="250" blue="252" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6198413" brightnessOffset="0.43921566" alphaOffset="0"/>
 151.440 +                              </stop>
 151.441 +                              <stop position="0.06" midpoint="0.4">
 151.442 +                                 <matte red="230" green="237" blue="243" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="-0.0017285943" saturationOffset="-0.5822163" brightnessOffset="0.40392154" alphaOffset="0"/>
 151.443 +                              </stop>
 151.444 +                              <stop position="0.6" midpoint="0.5">
 151.445 +                                 <matte red="182" green="203" blue="222" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4555341" brightnessOffset="0.3215686" alphaOffset="0"/>
 151.446 +                              </stop>
 151.447 +                              <stop position="0.7" midpoint="0.6">
 151.448 +                                 <matte red="182" green="203" blue="222" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4555341" brightnessOffset="0.3215686" alphaOffset="0"/>
 151.449 +                              </stop>
 151.450 +                              <stop position="0.96" midpoint="0.6">
 151.451 +                                 <matte red="212" green="233" blue="252" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.47698414" brightnessOffset="0.43921566" alphaOffset="0"/>
 151.452 +                              </stop>
 151.453 +                              <stop position="1.0" midpoint="0.5">
 151.454 +                                 <matte red="232" green="253" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="-0.06415892" saturationOffset="-0.5455182" brightnessOffset="0.45098037" alphaOffset="0"/>
 151.455 +                              </stop>
 151.456 +                           </gradient>
 151.457 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
 151.458 +                        </rectangle>
 151.459 +                        <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="9.0">
 151.460 +                           <gradient cycleMethod="NO_CYCLE">
 151.461 +                              <stop position="0.05" midpoint="0.5">
 151.462 +                                 <matte red="59" green="85" blue="109" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0013483167" saturationOffset="-0.1769987" brightnessOffset="-0.12156865" alphaOffset="0"/>
 151.463 +                              </stop>
 151.464 +                              <stop position="0.95" midpoint="0.5">
 151.465 +                                 <matte red="0" green="5" blue="29" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.059279382" saturationOffset="0.3642857" brightnessOffset="-0.43529415" alphaOffset="0"/>
 151.466 +                              </stop>
 151.467 +                           </gradient>
 151.468 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
 151.469 +                        </rectangle>
 151.470 +                        <rectangle x1="2.0" x2="102.0" y1="3.0" y2="32.0" rounding="9.0">
 151.471 +                           <matte red="92" green="94" blue="96" alpha="65" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.06885965" brightnessOffset="-0.36862746" alphaOffset="-190"/>
 151.472 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
 151.473 +                        </rectangle>
 151.474 +                     </shapes>
 151.475 +                     <effects/>
 151.476 +                  </layer>
 151.477 +               </canvas>
 151.478 +            </state>
 151.479 +            <state stateKeys="MouseOver+Default+Focused">
 151.480 +               <style>
 151.481 +                  <textForeground/>
 151.482 +                  <textBackground/>
 151.483 +                  <background/>
 151.484 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
 151.485 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
 151.486 +                  <uiproperties/>
 151.487 +               </style>
 151.488 +               <canvas>
 151.489 +                  <size width="104" height="33"/>
 151.490 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
 151.491 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
 151.492 +                  <layer name="Button Layer">
 151.493 +                     <opacity>1.0</opacity>
 151.494 +                     <fillOpacity>1.0</fillOpacity>
 151.495 +                     <blendingMode>NORMAL</blendingMode>
 151.496 +                     <locked>false</locked>
 151.497 +                     <visible>true</visible>
 151.498 +                     <shapes>
 151.499 +                        <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="7.0">
 151.500 +                           <gradient cycleMethod="NO_CYCLE">
 151.501 +                              <stop position="0.0" midpoint="0.4">
 151.502 +                                 <matte red="248" green="250" blue="252" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6198413" brightnessOffset="0.43921566" alphaOffset="0"/>
 151.503 +                              </stop>
 151.504 +                              <stop position="0.06" midpoint="0.4">
 151.505 +                                 <matte red="230" green="237" blue="243" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="-0.0017285943" saturationOffset="-0.5822163" brightnessOffset="0.40392154" alphaOffset="0"/>
 151.506 +                              </stop>
 151.507 +                              <stop position="0.6" midpoint="0.5">
 151.508 +                                 <matte red="182" green="203" blue="222" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4555341" brightnessOffset="0.3215686" alphaOffset="0"/>
 151.509 +                              </stop>
 151.510 +                              <stop position="0.7" midpoint="0.6">
 151.511 +                                 <matte red="182" green="203" blue="222" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4555341" brightnessOffset="0.3215686" alphaOffset="0"/>
 151.512 +                              </stop>
 151.513 +                              <stop position="0.96" midpoint="0.6">
 151.514 +                                 <matte red="212" green="233" blue="252" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.47698414" brightnessOffset="0.43921566" alphaOffset="0"/>
 151.515 +                              </stop>
 151.516 +                              <stop position="1.0" midpoint="0.5">
 151.517 +                                 <matte red="232" green="253" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="-0.06415892" saturationOffset="-0.5455182" brightnessOffset="0.45098037" alphaOffset="0"/>
 151.518 +                              </stop>
 151.519 +                           </gradient>
 151.520 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
 151.521 +                        </rectangle>
 151.522 +                        <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="9.0">
 151.523 +                           <gradient cycleMethod="NO_CYCLE">
 151.524 +                              <stop position="0.05" midpoint="0.5">
 151.525 +                                 <matte red="59" green="85" blue="109" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0013483167" saturationOffset="-0.1769987" brightnessOffset="-0.12156865" alphaOffset="0"/>
 151.526 +                              </stop>
 151.527 +                              <stop position="0.95" midpoint="0.5">
 151.528 +                                 <matte red="0" green="5" blue="29" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.059279382" saturationOffset="0.3642857" brightnessOffset="-0.43529415" alphaOffset="0"/>
 151.529 +                              </stop>
 151.530 +                           </gradient>
 151.531 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
 151.532 +                        </rectangle>
 151.533 +                        <rectangle x1="0.6" x2="103.4" y1="0.6" y2="32.4" rounding="11.0">
 151.534 +                           <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
 151.535 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
 151.536 +                        </rectangle>
 151.537 +                     </shapes>
 151.538 +                     <effects/>
 151.539 +                  </layer>
 151.540 +               </canvas>
 151.541 +            </state>
 151.542 +            <state stateKeys="Pressed+Default">
 151.543 +               <style>
 151.544 +                  <textForeground>
 151.545 +                      <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusSelectedText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
 151.546 +                  </textForeground>
 151.547 +                  <textBackground/>
 151.548 +                  <background/>
 151.549 +                  <inherit-textForeground>false</inherit-textForeground>
 151.550 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
 151.551 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
 151.552 +                  <uiproperties/>
 151.553 +               </style>
 151.554 +               <canvas>
 151.555 +                  <size width="104" height="33"/>
 151.556 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
 151.557 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
 151.558 +                  <layer name="Button Layer">
 151.559 +                     <opacity>1.0</opacity>
 151.560 +                     <fillOpacity>1.0</fillOpacity>
 151.561 +                     <blendingMode>NORMAL</blendingMode>
 151.562 +                     <locked>false</locked>
 151.563 +                     <visible>true</visible>
 151.564 +                     <shapes>
 151.565 +                        <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="7.0">
 151.566 +                           <gradient cycleMethod="NO_CYCLE">
 151.567 +                              <stop position="0.0" midpoint="0.4">
 151.568 +                                 <matte red="143" green="169" blue="192" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="-4.2033195E-4" saturationOffset="-0.38050595" brightnessOffset="0.20392156" alphaOffset="0"/>
 151.569 +                              </stop>
 151.570 +                              <stop position="0.06" midpoint="0.4">
 151.571 +                                 <matte red="118" green="149" blue="178" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.001903832" saturationOffset="-0.29863563" brightnessOffset="0.1490196" alphaOffset="0"/>
 151.572 +                              </stop>
 151.573 +                              <stop position="0.6" midpoint="0.5">
 151.574 +                                 <matte red="51" green="98" blue="140" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
 151.575 +                              </stop>
 151.576 +                              <stop position="0.7" midpoint="0.6">
 151.577 +                                 <matte red="51" green="98" blue="140" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
 151.578 +                              </stop>
 151.579 +                              <stop position="0.96" midpoint="0.6">
 151.580 +                                 <matte red="91" green="137" blue="180" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.0018727183" saturationOffset="-0.14126986" brightnessOffset="0.15686274" alphaOffset="0"/>
 151.581 +                              </stop>
 151.582 +                              <stop position="1.0" midpoint="0.5">
 151.583 +                                 <matte red="118" green="164" blue="206" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="8.9377165E-4" saturationOffset="-0.20852983" brightnessOffset="0.2588235" alphaOffset="0"/>
 151.584 +                              </stop>
 151.585 +                           </gradient>
 151.586 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
 151.587 +                        </rectangle>
 151.588 +                        <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="9.0">
 151.589 +                           <gradient cycleMethod="NO_CYCLE">
 151.590 +                              <stop position="0.05" midpoint="0.5">
 151.591 +                                 <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
 151.592 +                              </stop>
 151.593 +                              <stop position="0.95" midpoint="0.5">
 151.594 +                                 <matte red="28" green="56" blue="81" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-3.528595E-5" saturationOffset="0.018606722" brightnessOffset="-0.23137257" alphaOffset="0"/>
 151.595 +                              </stop>
 151.596 +                           </gradient>
 151.597 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
 151.598 +                        </rectangle>
 151.599 +                        <rectangle x1="2.0" x2="102.0" y1="3.0" y2="32.0" rounding="12.0">
 151.600 +                           <matte red="255" green="255" blue="255" alpha="160" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-95"/>
 151.601 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
 151.602 +                        </rectangle>
 151.603 +                     </shapes>
 151.604 +                     <effects/>
 151.605 +                  </layer>
 151.606 +               </canvas>
 151.607 +            </state>
 151.608 +            <state stateKeys="Pressed+Default+Focused">
 151.609 +               <style>
 151.610 +                  <textForeground/>
 151.611 +                  <textBackground/>
 151.612 +                  <background/>
 151.613 +                  <uiproperties/>
 151.614 +               </style>
 151.615 +               <canvas>
 151.616 +                  <size width="104" height="33"/>
 151.617 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
 151.618 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
 151.619 +                  <layer name="Button Layer">
 151.620 +                     <opacity>1.0</opacity>
 151.621 +                     <fillOpacity>1.0</fillOpacity>
 151.622 +                     <blendingMode>NORMAL</blendingMode>
 151.623 +                     <locked>false</locked>
 151.624 +                     <visible>true</visible>
 151.625 +                     <shapes>
 151.626 +                        <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="7.0">
 151.627 +                           <gradient cycleMethod="NO_CYCLE">
 151.628 +                              <stop position="0.0" midpoint="0.4">
 151.629 +                                 <matte red="143" green="169" blue="192" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="-4.2033195E-4" saturationOffset="-0.38050595" brightnessOffset="0.20392156" alphaOffset="0"/>
 151.630 +                              </stop>
 151.631 +                              <stop position="0.06" midpoint="0.4">
 151.632 +                                 <matte red="118" green="149" blue="178" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.001903832" saturationOffset="-0.29863563" brightnessOffset="0.1490196" alphaOffset="0"/>
 151.633 +                              </stop>
 151.634 +                              <stop position="0.6" midpoint="0.5">
 151.635 +                                 <matte red="51" green="98" blue="140" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
 151.636 +                              </stop>
 151.637 +                              <stop position="0.7" midpoint="0.6">
 151.638 +                                 <matte red="51" green="98" blue="140" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
 151.639 +                              </stop>
 151.640 +                              <stop position="0.96" midpoint="0.6">
 151.641 +                                 <matte red="91" green="137" blue="180" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.0018727183" saturationOffset="-0.14126986" brightnessOffset="0.15686274" alphaOffset="0"/>
 151.642 +                              </stop>
 151.643 +                              <stop position="1.0" midpoint="0.5">
 151.644 +                                 <matte red="118" green="164" blue="206" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="8.9377165E-4" saturationOffset="-0.20852983" brightnessOffset="0.2588235" alphaOffset="0"/>
 151.645 +                              </stop>
 151.646 +                           </gradient>
 151.647 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
 151.648 +                        </rectangle>
 151.649 +                        <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="9.0">
 151.650 +                           <gradient cycleMethod="NO_CYCLE">
 151.651 +                              <stop position="0.05" midpoint="0.5">
 151.652 +                                 <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
 151.653 +                              </stop>
 151.654 +                              <stop position="0.95" midpoint="0.5">
 151.655 +                                 <matte red="28" green="56" blue="81" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-3.528595E-5" saturationOffset="0.018606722" brightnessOffset="-0.23137257" alphaOffset="0"/>
 151.656 +                              </stop>
 151.657 +                           </gradient>
 151.658 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
 151.659 +                        </rectangle>
 151.660 +                        <rectangle x1="0.6" x2="103.4" y1="0.6" y2="32.4" rounding="11.0">
 151.661 +                           <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
 151.662 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
 151.663 +                        </rectangle>
 151.664 +                     </shapes>
 151.665 +                     <effects/>
 151.666 +                  </layer>
 151.667 +               </canvas>
 151.668 +            </state>
 151.669 +            <state stateKeys="Disabled">
 151.670 +               <style>
 151.671 +                  <textForeground>
 151.672 +                     <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
 151.673 +                  </textForeground>
 151.674 +                  <textBackground/>
 151.675 +                  <background/>
 151.676 +                  <inherit-textForeground>false</inherit-textForeground>
 151.677 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
 151.678 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
 151.679 +                  <uiproperties/>
 151.680 +               </style>
 151.681 +               <canvas>
 151.682 +                  <size width="104" height="33"/>
 151.683 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
 151.684 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
 151.685 +                  <layer name="Button Layer">
 151.686 +                     <opacity>1.0</opacity>
 151.687 +                     <fillOpacity>1.0</fillOpacity>
 151.688 +                     <blendingMode>NORMAL</blendingMode>
 151.689 +                     <locked>false</locked>
 151.690 +                     <visible>true</visible>
 151.691 +                     <shapes>
 151.692 +                        <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="7.0">
 151.693 +                           <gradient cycleMethod="NO_CYCLE">
 151.694 +                              <stop position="0.0" midpoint="0.5">
 151.695 +                                 <matte red="227" green="229" blue="233" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.08477524" brightnessOffset="0.16862744" alphaOffset="0"/>
 151.696 +                              </stop>
 151.697 +                              <stop position="0.06" midpoint="0.5">
 151.698 +                                 <matte red="223" green="226" blue="230" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.015872955" saturationOffset="-0.080091536" brightnessOffset="0.15686274" alphaOffset="0"/>
 151.699 +                              </stop>
 151.700 +                              <stop position="0.6" midpoint="0.5">
 151.701 +                                 <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
 151.702 +                              </stop>
 151.703 +                              <stop position="0.7" midpoint="0.5">
 151.704 +                                 <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
 151.705 +                              </stop>
 151.706 +                              <stop position="0.95" midpoint="0.5">
 151.707 +                                 <matte red="216" green="219" blue="225" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07052632" brightnessOffset="0.1372549" alphaOffset="0"/>
 151.708 +                              </stop>
 151.709 +                              <stop position="1.0" midpoint="0.5">
 151.710 +                                 <matte red="218" green="221" blue="227" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.070878744" brightnessOffset="0.14509803" alphaOffset="0"/>
 151.711 +                              </stop>
 151.712 +                           </gradient>
 151.713 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
 151.714 +                        </rectangle>
 151.715 +                        <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="9.0">
 151.716 +                           <gradient cycleMethod="NO_CYCLE">
 151.717 +                              <stop position="0.09" midpoint="0.5">
 151.718 +                                 <matte red="201" green="204" blue="210" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06766917" brightnessOffset="0.07843137" alphaOffset="0"/>
 151.719 +                              </stop>
 151.720 +                              <stop position="0.95" midpoint="0.5">
 151.721 +                                 <matte red="188" green="191" blue="197" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06484103" brightnessOffset="0.027450979" alphaOffset="0"/>
 151.722 +                              </stop>
 151.723 +                           </gradient>
 151.724 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
 151.725 +                        </rectangle>
 151.726 +                        <rectangle x1="2.0" x2="102.0" y1="3.0" y2="32.0" rounding="12.0">
 151.727 +                           <matte red="92" green="94" blue="96" alpha="23" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.06885965" brightnessOffset="-0.36862746" alphaOffset="-232"/>
 151.728 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
 151.729 +                        </rectangle>
 151.730 +                     </shapes>
 151.731 +                     <effects/>
 151.732 +                  </layer>
 151.733 +               </canvas>
 151.734 +            </state>
 151.735 +            <state stateKeys="Enabled">
 151.736 +               <style>
 151.737 +                  <textForeground/>
 151.738 +                  <textBackground/>
 151.739 +                  <background/>
 151.740 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
 151.741 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
 151.742 +                  <uiproperties/>
 151.743 +               </style>
 151.744 +               <canvas>
 151.745 +                  <size width="104" height="33"/>
 151.746 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
 151.747 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
 151.748 +                  <layer name="Button Layer">
 151.749 +                     <opacity>1.0</opacity>
 151.750 +                     <fillOpacity>1.0</fillOpacity>
 151.751 +                     <blendingMode>NORMAL</blendingMode>
 151.752 +                     <locked>false</locked>
 151.753 +                     <visible>true</visible>
 151.754 +                     <shapes>
 151.755 +                        <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="7.0">
 151.756 +                           <gradient cycleMethod="NO_CYCLE">
 151.757 +                              <stop position="0.0" midpoint="0.4">
 151.758 +                                 <matte red="251" green="251" blue="252" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10655806" brightnessOffset="0.24313724" alphaOffset="0"/>
 151.759 +                              </stop>
 151.760 +                              <stop position="0.06" midpoint="0.4">
 151.761 +                                 <matte red="241" green="242" blue="244" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.09823123" brightnessOffset="0.2117647" alphaOffset="0"/>
 151.762 +                              </stop>
 151.763 +                              <stop position="0.6" midpoint="0.5">
 151.764 +                                 <matte red="214" green="217" blue="223" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
 151.765 +                              </stop>
 151.766 +                              <stop position="0.7" midpoint="0.6">
 151.767 +                                 <matte red="214" green="217" blue="223" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
 151.768 +                              </stop>
 151.769 +                              <stop position="0.96" midpoint="0.6">
 151.770 +                                 <matte red="244" green="247" blue="253" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.0749532" brightnessOffset="0.24705881" alphaOffset="0"/>
 151.771 +                              </stop>
 151.772 +                              <stop position="1.0" midpoint="0.6">
 151.773 +                                 <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
 151.774 +                              </stop>
 151.775 +                           </gradient>
 151.776 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
 151.777 +                        </rectangle>
 151.778 +                        <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="9.0">
 151.779 +                           <gradient cycleMethod="NO_CYCLE">
 151.780 +                              <stop position="0.09" midpoint="0.5">
 151.781 +                                 <matte red="149" green="155" blue="158" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.055555522" saturationOffset="-0.05356429" brightnessOffset="-0.12549019" alphaOffset="0"/>
 151.782 +                              </stop>
 151.783 +                              <stop position="0.95" midpoint="0.5">
 151.784 +                                 <matte red="85" green="88" blue="94" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.0147816315" brightnessOffset="-0.3764706" alphaOffset="0"/>
 151.785 +                              </stop>
 151.786 +                           </gradient>
 151.787 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
 151.788 +                        </rectangle>
 151.789 +                        <rectangle x1="2.0" x2="102.0" y1="3.0" y2="32.0" rounding="12.0">
 151.790 +                           <matte red="92" green="94" blue="96" alpha="65" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.06885965" brightnessOffset="-0.36862746" alphaOffset="-190"/>
 151.791 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
 151.792 +                        </rectangle>
 151.793 +                     </shapes>
 151.794 +                     <effects/>
 151.795 +                  </layer>
 151.796 +               </canvas>
 151.797 +            </state>
 151.798 +            <state stateKeys="Focused">
 151.799 +               <style>
 151.800 +                  <textForeground/>
 151.801 +                  <textBackground/>
 151.802 +                  <background/>
 151.803 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
 151.804 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
 151.805 +                  <uiproperties/>
 151.806 +               </style>
 151.807 +               <canvas>
 151.808 +                  <size width="104" height="33"/>
 151.809 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
 151.810 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
 151.811 +                  <layer name="Button Layer">
 151.812 +                     <opacity>1.0</opacity>
 151.813 +                     <fillOpacity>1.0</fillOpacity>
 151.814 +                     <blendingMode>NORMAL</blendingMode>
 151.815 +                     <locked>false</locked>
 151.816 +                     <visible>true</visible>
 151.817 +                     <shapes>
 151.818 +                        <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="7.0">
 151.819 +                           <gradient cycleMethod="NO_CYCLE">
 151.820 +                              <stop position="0.0" midpoint="0.5">
 151.821 +                                 <matte red="251" green="251" blue="252" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10655806" brightnessOffset="0.24313724" alphaOffset="0"/>
 151.822 +                              </stop>
 151.823 +                              <stop position="0.06" midpoint="0.5">
 151.824 +                                 <matte red="241" green="242" blue="244" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.09823123" brightnessOffset="0.2117647" alphaOffset="0"/>
 151.825 +                              </stop>
 151.826 +                              <stop position="0.6" midpoint="0.5">
 151.827 +                                 <matte red="214" green="217" blue="223" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
 151.828 +                              </stop>
 151.829 +                              <stop position="0.7" midpoint="0.5">
 151.830 +                                 <matte red="214" green="217" blue="223" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
 151.831 +                              </stop>
 151.832 +                              <stop position="0.95" midpoint="0.5">
 151.833 +                                 <matte red="244" green="247" blue="253" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.0749532" brightnessOffset="0.24705881" alphaOffset="0"/>
 151.834 +                              </stop>
 151.835 +                              <stop position="1.0" midpoint="0.5">
 151.836 +                                 <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
 151.837 +                              </stop>
 151.838 +                           </gradient>
 151.839 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
 151.840 +                        </rectangle>
 151.841 +                        <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="9.0">
 151.842 +                           <gradient cycleMethod="NO_CYCLE">
 151.843 +                              <stop position="0.09" midpoint="0.5">
 151.844 +                                 <matte red="149" green="155" blue="158" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.055555522" saturationOffset="-0.05356429" brightnessOffset="-0.12549019" alphaOffset="0"/>
 151.845 +                              </stop>
 151.846 +                              <stop position="0.95" midpoint="0.5">
 151.847 +                                 <matte red="85" green="88" blue="94" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.0147816315" brightnessOffset="-0.3764706" alphaOffset="0"/>
 151.848 +                              </stop>
 151.849 +                           </gradient>
 151.850 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
 151.851 +                        </rectangle>
 151.852 +                        <rectangle x1="0.6" x2="103.4" y1="0.6" y2="32.4" rounding="11.0">
 151.853 +                           <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
 151.854 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
 151.855 +                        </rectangle>
 151.856 +                     </shapes>
 151.857 +                     <effects/>
 151.858 +                  </layer>
 151.859 +               </canvas>
 151.860 +            </state>
 151.861 +            <state stateKeys="MouseOver">
 151.862 +               <style>
 151.863 +                  <textForeground/>
 151.864 +                  <textBackground/>
 151.865 +                  <background/>
 151.866 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
 151.867 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
 151.868 +                  <uiproperties/>
 151.869 +               </style>
 151.870 +               <canvas>
 151.871 +                  <size width="104" height="33"/>
 151.872 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
 151.873 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
 151.874 +                  <layer name="Button Layer">
 151.875 +                     <opacity>1.0</opacity>
 151.876 +                     <fillOpacity>1.0</fillOpacity>
 151.877 +                     <blendingMode>NORMAL</blendingMode>
 151.878 +                     <locked>false</locked>
 151.879 +                     <visible>true</visible>
 151.880 +                     <shapes>
 151.881 +                        <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="7.0">
 151.882 +                           <gradient cycleMethod="NO_CYCLE">
 151.883 +                              <stop position="0.0" midpoint="0.4">
 151.884 +                                 <matte red="253" green="253" blue="254" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10658931" brightnessOffset="0.25098038" alphaOffset="0"/>
 151.885 +                              </stop>
 151.886 +                              <stop position="0.06" midpoint="0.4">
 151.887 +                                 <matte red="247" green="248" blue="250" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.098526314" brightnessOffset="0.2352941" alphaOffset="0"/>
 151.888 +                              </stop>
 151.889 +                              <stop position="0.6" midpoint="0.5">
 151.890 +                                 <matte red="233" green="236" blue="242" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07333623" brightnessOffset="0.20392156" alphaOffset="0"/>
 151.891 +                              </stop>
 151.892 +                              <stop position="0.7" midpoint="0.6">
 151.893 +                                 <matte red="233" green="236" blue="242" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07333623" brightnessOffset="0.20392156" alphaOffset="0"/>
 151.894 +                              </stop>
 151.895 +                              <stop position="0.96" midpoint="0.5">
 151.896 +                                 <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background"  uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
 151.897 +                              </stop>
 151.898 +                              <stop position="1.0" midpoint="0.5">
 151.899 +                                 <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background"  uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
 151.900 +                              </stop>
 151.901 +                           </gradient>
 151.902 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
 151.903 +                        </rectangle>
 151.904 +                        <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="9.0">
 151.905 +                           <gradient cycleMethod="NO_CYCLE">
 151.906 +                              <stop position="0.09" midpoint="0.5">
 151.907 +                                 <matte red="122" green="126" blue="134" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.020974077" brightnessOffset="-0.21960783" alphaOffset="0"/>
 151.908 +                              </stop>
 151.909 +                              <stop position="0.95" midpoint="0.5">
 151.910 +                                 <matte red="42" green="46" blue="54" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.11169591" brightnessOffset="-0.53333336" alphaOffset="0"/>
 151.911 +                              </stop>
 151.912 +                           </gradient>
 151.913 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
 151.914 +                        </rectangle>
 151.915 +                        <rectangle x1="2.0" x2="102.0" y1="3.0" y2="32.0" rounding="12.0">
 151.916 +                           <matte red="92" green="94" blue="96" alpha="65" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.06885965" brightnessOffset="-0.36862746" alphaOffset="-190"/>
 151.917 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
 151.918 +                        </rectangle>
 151.919 +                     </shapes>
 151.920 +                     <effects/>
 151.921 +                  </layer>
 151.922 +               </canvas>
 151.923 +            </state>
 151.924 +            <state stateKeys="MouseOver+Focused">
 151.925 +               <style>
 151.926 +                  <textForeground/>
 151.927 +                  <textBackground/>
 151.928 +                  <background/>
 151.929 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
 151.930 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
 151.931 +                  <uiproperties/>
 151.932 +               </style>
 151.933 +               <canvas>
 151.934 +                  <size width="104" height="33"/>
 151.935 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
 151.936 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
 151.937 +                  <layer name="Button Layer">
 151.938 +                     <opacity>1.0</opacity>
 151.939 +                     <fillOpacity>1.0</fillOpacity>
 151.940 +                     <blendingMode>NORMAL</blendingMode>
 151.941 +                     <locked>false</locked>
 151.942 +                     <visible>true</visible>
 151.943 +                     <shapes>
 151.944 +                        <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="7.0">
 151.945 +                           <gradient cycleMethod="NO_CYCLE">
 151.946 +                              <stop position="0.0" midpoint="0.4">
 151.947 +                                 <matte red="253" green="253" blue="254" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10658931" brightnessOffset="0.25098038" alphaOffset="0"/>
 151.948 +                              </stop>
 151.949 +                              <stop position="0.06" midpoint="0.4">
 151.950 +                                 <matte red="247" green="248" blue="250" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.098526314" brightnessOffset="0.2352941" alphaOffset="0"/>
 151.951 +                              </stop>
 151.952 +                              <stop position="0.6" midpoint="0.5">
 151.953 +                                 <matte red="233" green="236" blue="242" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07333623" brightnessOffset="0.20392156" alphaOffset="0"/>
 151.954 +                              </stop>
 151.955 +                              <stop position="0.7" midpoint="0.6">
 151.956 +                                 <matte red="233" green="236" blue="242" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07333623" brightnessOffset="0.20392156" alphaOffset="0"/>
 151.957 +                              </stop>
 151.958 +                              <stop position="0.96" midpoint="0.5">
 151.959 +                                 <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
 151.960 +                              </stop>
 151.961 +                              <stop position="1.0" midpoint="0.5">
 151.962 +                                 <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
 151.963 +                              </stop>
 151.964 +                           </gradient>
 151.965 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
 151.966 +                        </rectangle>
 151.967 +                        <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="9.0">
 151.968 +                           <gradient cycleMethod="NO_CYCLE">
 151.969 +                              <stop position="0.09" midpoint="0.5">
 151.970 +                                 <matte red="122" green="126" blue="134" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.020974077" brightnessOffset="-0.21960783" alphaOffset="0"/>
 151.971 +                              </stop>
 151.972 +                              <stop position="0.95" midpoint="0.5">
 151.973 +                                 <matte red="42" green="46" blue="54" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.11169591" brightnessOffset="-0.53333336" alphaOffset="0"/>
 151.974 +                              </stop>
 151.975 +                           </gradient>
 151.976 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
 151.977 +                        </rectangle>
 151.978 +                        <rectangle x1="0.6" x2="103.4" y1="0.6" y2="32.4" rounding="11.0">
 151.979 +                           <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
 151.980 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
 151.981 +                        </rectangle>
 151.982 +                     </shapes>
 151.983 +                     <effects/>
 151.984 +                  </layer>
 151.985 +               </canvas>
 151.986 +            </state>
 151.987 +            <state stateKeys="Pressed">
 151.988 +               <style>
 151.989 +                  <textForeground/>
 151.990 +                  <textBackground/>
 151.991 +                  <background/>
 151.992 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
 151.993 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
 151.994 +                  <uiproperties/>
 151.995 +               </style>
 151.996 +               <canvas>
 151.997 +                  <size width="104" height="33"/>
 151.998 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
 151.999 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
151.1000 +                  <layer name="Button Layer">
151.1001 +                     <opacity>1.0</opacity>
151.1002 +                     <fillOpacity>1.0</fillOpacity>
151.1003 +                     <blendingMode>NORMAL</blendingMode>
151.1004 +                     <locked>false</locked>
151.1005 +                     <visible>true</visible>
151.1006 +                     <shapes>
151.1007 +                        <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="7.0">
151.1008 +                           <gradient cycleMethod="NO_CYCLE">
151.1009 +                              <stop position="0.0" midpoint="0.4">
151.1010 +                                 <matte red="205" green="209" blue="216" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.00505054" saturationOffset="-0.05960039" brightnessOffset="0.10196078" alphaOffset="0"/>
151.1011 +                              </stop>
151.1012 +                              <stop position="0.06" midpoint="0.4">
151.1013 +                                 <matte red="194" green="199" blue="207" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.008547008" saturationOffset="-0.04772438" brightnessOffset="0.06666666" alphaOffset="0"/>
151.1014 +                              </stop>
151.1015 +                              <stop position="0.6" midpoint="0.5">
151.1016 +                                 <matte red="164" green="171" blue="184" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0027777553" saturationOffset="-0.0018306673" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.1017 +                              </stop>
151.1018 +                              <stop position="0.7" midpoint="0.6">
151.1019 +                                 <matte red="164" green="171" blue="184" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0027777553" saturationOffset="-0.0018306673" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.1020 +                              </stop>
151.1021 +                              <stop position="0.96" midpoint="0.6">
151.1022 +                                 <matte red="204" green="211" blue="224" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0027777553" saturationOffset="-0.0212406" brightnessOffset="0.13333333" alphaOffset="0"/>
151.1023 +                              </stop>
151.1024 +                              <stop position="1.0" midpoint="0.5">
151.1025 +                                 <matte red="231" green="237" blue="251" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.030845039" brightnessOffset="0.23921567" alphaOffset="0"/>
151.1026 +                              </stop>
151.1027 +                           </gradient>
151.1028 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1029 +                        </rectangle>
151.1030 +                        <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="9.0">
151.1031 +                           <gradient cycleMethod="NO_CYCLE">
151.1032 +                              <stop position="0.05" midpoint="0.5">
151.1033 +                                 <matte red="0" green="0" blue="7" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="0.8894737" brightnessOffset="-0.7176471" alphaOffset="0"/>
151.1034 +                              </stop>
151.1035 +                              <stop position="0.95" midpoint="0.5">
151.1036 +                                 <matte red="96" green="100" blue="108" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="5.847961E-4" brightnessOffset="-0.32156864" alphaOffset="0"/>
151.1037 +                              </stop>
151.1038 +                           </gradient>
151.1039 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1040 +                        </rectangle>
151.1041 +                        <rectangle x1="2.0" x2="102.0" y1="3.0" y2="32.0" rounding="12.0">
151.1042 +                           <matte red="245" green="250" blue="255" alpha="160" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.1043 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.1044 +                        </rectangle>
151.1045 +                     </shapes>
151.1046 +                     <effects/>
151.1047 +                  </layer>
151.1048 +               </canvas>
151.1049 +            </state>
151.1050 +            <state stateKeys="Pressed+Focused">
151.1051 +               <style>
151.1052 +                  <textForeground/>
151.1053 +                  <textBackground/>
151.1054 +                  <background/>
151.1055 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.1056 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.1057 +                  <uiproperties/>
151.1058 +               </style>
151.1059 +               <canvas>
151.1060 +                  <size width="104" height="33"/>
151.1061 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.1062 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
151.1063 +                  <layer name="Button Layer">
151.1064 +                     <opacity>1.0</opacity>
151.1065 +                     <fillOpacity>1.0</fillOpacity>
151.1066 +                     <blendingMode>NORMAL</blendingMode>
151.1067 +                     <locked>false</locked>
151.1068 +                     <visible>true</visible>
151.1069 +                     <shapes>
151.1070 +                        <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="7.0">
151.1071 +                           <gradient cycleMethod="NO_CYCLE">
151.1072 +                              <stop position="0.0" midpoint="0.4">
151.1073 +                                 <matte red="205" green="209" blue="216" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.00505054" saturationOffset="-0.05960039" brightnessOffset="0.10196078" alphaOffset="0"/>
151.1074 +                              </stop>
151.1075 +                              <stop position="0.06" midpoint="0.4">
151.1076 +                                 <matte red="194" green="199" blue="207" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.008547008" saturationOffset="-0.04772438" brightnessOffset="0.06666666" alphaOffset="0"/>
151.1077 +                              </stop>
151.1078 +                              <stop position="0.6" midpoint="0.5">
151.1079 +                                 <matte red="164" green="171" blue="184" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0027777553" saturationOffset="-0.0018306673" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.1080 +                              </stop>
151.1081 +                              <stop position="0.7" midpoint="0.6">
151.1082 +                                 <matte red="164" green="171" blue="184" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0027777553" saturationOffset="-0.0018306673" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.1083 +                              </stop>
151.1084 +                              <stop position="0.96" midpoint="0.6">
151.1085 +                                 <matte red="204" green="211" blue="224" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0027777553" saturationOffset="-0.0212406" brightnessOffset="0.13333333" alphaOffset="0"/>
151.1086 +                              </stop>
151.1087 +                              <stop position="1.0" midpoint="0.5">
151.1088 +                                 <matte red="231" green="237" blue="251" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.030845039" brightnessOffset="0.23921567" alphaOffset="0"/>
151.1089 +                              </stop>
151.1090 +                           </gradient>
151.1091 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1092 +                        </rectangle>
151.1093 +                        <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="9.0">
151.1094 +                           <gradient cycleMethod="NO_CYCLE">
151.1095 +                              <stop position="0.05" midpoint="0.5">
151.1096 +                                 <matte red="0" green="0" blue="7" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="0.8894737" brightnessOffset="-0.7176471" alphaOffset="0"/>
151.1097 +                              </stop>
151.1098 +                              <stop position="0.95" midpoint="0.5">
151.1099 +                                 <matte red="96" green="100" blue="108" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="5.847961E-4" brightnessOffset="-0.32156864" alphaOffset="0"/>
151.1100 +                              </stop>
151.1101 +                           </gradient>
151.1102 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1103 +                        </rectangle>
151.1104 +                        <rectangle x1="0.6" x2="103.4" y1="0.6" y2="32.4" rounding="11.0">
151.1105 +                           <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.1106 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.1107 +                        </rectangle>
151.1108 +                     </shapes>
151.1109 +                     <effects/>
151.1110 +                  </layer>
151.1111 +               </canvas>
151.1112 +            </state>
151.1113 +         </backgroundStates>
151.1114 +         <foregroundStates/>
151.1115 +         <borderStates/>
151.1116 +         <regions/>
151.1117 +      </uiComponent>
151.1118 +      <uiComponent opaque="false" type="javax.swing.JToggleButton" name="ToggleButton" ui="ToggleButtonUI" subregion="false">
151.1119 +         <stateTypes/>
151.1120 +         <contentMargins top="6" bottom="6" left="14" right="14"/>
151.1121 +         <style>
151.1122 +            <textForeground/>
151.1123 +            <textBackground/>
151.1124 +            <background/>
151.1125 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.1126 +            <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.1127 +            <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.1128 +            <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.1129 +            <uiproperties/>
151.1130 +         </style>
151.1131 +         <backgroundStates>
151.1132 +            <state stateKeys="Disabled">
151.1133 +               <style>
151.1134 +                  <textForeground>
151.1135 +                     <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.1136 +                  </textForeground>
151.1137 +                  <textBackground/>
151.1138 +                  <background/>
151.1139 +                  <inherit-textForeground>false</inherit-textForeground>
151.1140 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.1141 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.1142 +                  <uiproperties/>
151.1143 +               </style>
151.1144 +               <canvas>
151.1145 +                  <size width="104" height="33"/>
151.1146 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.1147 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
151.1148 +                  <layer name="Button Layer">
151.1149 +                     <opacity>1.0</opacity>
151.1150 +                     <fillOpacity>1.0</fillOpacity>
151.1151 +                     <blendingMode>NORMAL</blendingMode>
151.1152 +                     <locked>false</locked>
151.1153 +                     <visible>true</visible>
151.1154 +                     <shapes>
151.1155 +                        <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="7.0">
151.1156 +                           <gradient cycleMethod="NO_CYCLE">
151.1157 +                              <stop position="0.0" midpoint="0.5">
151.1158 +                                 <matte red="227" green="229" blue="233" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.08477524" brightnessOffset="0.16862744" alphaOffset="0"/>
151.1159 +                              </stop>
151.1160 +                              <stop position="0.06" midpoint="0.5">
151.1161 +                                 <matte red="223" green="226" blue="230" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.015872955" saturationOffset="-0.080091536" brightnessOffset="0.15686274" alphaOffset="0"/>
151.1162 +                              </stop>
151.1163 +                              <stop position="0.6" midpoint="0.5">
151.1164 +                                 <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
151.1165 +                              </stop>
151.1166 +                              <stop position="0.7" midpoint="0.5">
151.1167 +                                 <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
151.1168 +                              </stop>
151.1169 +                              <stop position="0.95" midpoint="0.5">
151.1170 +                                 <matte red="216" green="219" blue="225" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07052632" brightnessOffset="0.1372549" alphaOffset="0"/>
151.1171 +                              </stop>
151.1172 +                              <stop position="1.0" midpoint="0.5">
151.1173 +                                 <matte red="218" green="221" blue="227" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.070878744" brightnessOffset="0.14509803" alphaOffset="0"/>
151.1174 +                              </stop>
151.1175 +                           </gradient>
151.1176 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1177 +                        </rectangle>
151.1178 +                        <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="9.0">
151.1179 +                           <gradient cycleMethod="NO_CYCLE">
151.1180 +                              <stop position="0.09" midpoint="0.5">
151.1181 +                                 <matte red="201" green="204" blue="210" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06766917" brightnessOffset="0.07843137" alphaOffset="0"/>
151.1182 +                              </stop>
151.1183 +                              <stop position="0.95" midpoint="0.5">
151.1184 +                                 <matte red="188" green="191" blue="197" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06484103" brightnessOffset="0.027450979" alphaOffset="0"/>
151.1185 +                              </stop>
151.1186 +                           </gradient>
151.1187 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1188 +                        </rectangle>
151.1189 +                        <rectangle x1="2.0" x2="102.0" y1="3.0" y2="32.0" rounding="12.0">
151.1190 +                           <matte red="92" green="94" blue="96" alpha="23" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.06885965" brightnessOffset="-0.36862746" alphaOffset="-232"/>
151.1191 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.1192 +                        </rectangle>
151.1193 +                     </shapes>
151.1194 +                     <effects/>
151.1195 +                  </layer>
151.1196 +               </canvas>
151.1197 +            </state>
151.1198 +            <state stateKeys="Enabled">
151.1199 +               <style>
151.1200 +                  <textForeground/>
151.1201 +                  <textBackground/>
151.1202 +                  <background/>
151.1203 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.1204 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.1205 +                  <uiproperties/>
151.1206 +               </style>
151.1207 +               <canvas>
151.1208 +                  <size width="104" height="33"/>
151.1209 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
151.1210 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
151.1211 +                  <layer name="Button Layer">
151.1212 +                     <opacity>1.0</opacity>
151.1213 +                     <fillOpacity>1.0</fillOpacity>
151.1214 +                     <blendingMode>NORMAL</blendingMode>
151.1215 +                     <locked>false</locked>
151.1216 +                     <visible>true</visible>
151.1217 +                     <shapes>
151.1218 +                        <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="7.0">
151.1219 +                           <gradient cycleMethod="NO_CYCLE">
151.1220 +                              <stop position="0.0" midpoint="0.4">
151.1221 +                                 <matte red="251" green="251" blue="252" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10655806" brightnessOffset="0.24313724" alphaOffset="0"/>
151.1222 +                              </stop>
151.1223 +                              <stop position="0.06" midpoint="0.4">
151.1224 +                                 <matte red="241" green="242" blue="244" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.09823123" brightnessOffset="0.2117647" alphaOffset="0"/>
151.1225 +                              </stop>
151.1226 +                              <stop position="0.6" midpoint="0.5">
151.1227 +                                 <matte red="214" green="217" blue="223" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
151.1228 +                              </stop>
151.1229 +                              <stop position="0.7" midpoint="0.6">
151.1230 +                                 <matte red="214" green="217" blue="223" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
151.1231 +                              </stop>
151.1232 +                              <stop position="0.96" midpoint="0.6">
151.1233 +                                 <matte red="244" green="247" blue="253" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.0749532" brightnessOffset="0.24705881" alphaOffset="0"/>
151.1234 +                              </stop>
151.1235 +                              <stop position="1.0" midpoint="0.6">
151.1236 +                                 <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.1237 +                              </stop>
151.1238 +                           </gradient>
151.1239 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1240 +                        </rectangle>
151.1241 +                        <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="9.0">
151.1242 +                           <gradient cycleMethod="NO_CYCLE">
151.1243 +                              <stop position="0.09" midpoint="0.5">
151.1244 +                                 <matte red="149" green="155" blue="158" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.055555522" saturationOffset="-0.05356429" brightnessOffset="-0.12549019" alphaOffset="0"/>
151.1245 +                              </stop>
151.1246 +                              <stop position="0.95" midpoint="0.5">
151.1247 +                                 <matte red="85" green="88" blue="94" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.0147816315" brightnessOffset="-0.3764706" alphaOffset="0"/>
151.1248 +                              </stop>
151.1249 +                           </gradient>
151.1250 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1251 +                        </rectangle>
151.1252 +                        <rectangle x1="2.0" x2="102.0" y1="3.0" y2="32.0" rounding="12.0">
151.1253 +                           <matte red="92" green="94" blue="96" alpha="65" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.06885965" brightnessOffset="-0.36862746" alphaOffset="-190"/>
151.1254 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.1255 +                        </rectangle>
151.1256 +                     </shapes>
151.1257 +                     <effects/>
151.1258 +                  </layer>
151.1259 +               </canvas>
151.1260 +            </state>
151.1261 +            <state stateKeys="Focused">
151.1262 +               <style>
151.1263 +                  <textForeground/>
151.1264 +                  <textBackground/>
151.1265 +                  <background/>
151.1266 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.1267 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.1268 +                  <uiproperties/>
151.1269 +               </style>
151.1270 +               <canvas>
151.1271 +                  <size width="104" height="33"/>
151.1272 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
151.1273 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
151.1274 +                  <layer name="Button Layer">
151.1275 +                     <opacity>1.0</opacity>
151.1276 +                     <fillOpacity>1.0</fillOpacity>
151.1277 +                     <blendingMode>NORMAL</blendingMode>
151.1278 +                     <locked>false</locked>
151.1279 +                     <visible>true</visible>
151.1280 +                     <shapes>
151.1281 +                        <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="7.0">
151.1282 +                           <gradient cycleMethod="NO_CYCLE">
151.1283 +                              <stop position="0.0" midpoint="0.5">
151.1284 +                                 <matte red="251" green="251" blue="252" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10655806" brightnessOffset="0.24313724" alphaOffset="0"/>
151.1285 +                              </stop>
151.1286 +                              <stop position="0.06" midpoint="0.5">
151.1287 +                                 <matte red="241" green="242" blue="244" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.09823123" brightnessOffset="0.2117647" alphaOffset="0"/>
151.1288 +                              </stop>
151.1289 +                              <stop position="0.6" midpoint="0.5">
151.1290 +                                 <matte red="214" green="217" blue="223" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
151.1291 +                              </stop>
151.1292 +                              <stop position="0.7" midpoint="0.5">
151.1293 +                                 <matte red="214" green="217" blue="223" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
151.1294 +                              </stop>
151.1295 +                              <stop position="0.95" midpoint="0.5">
151.1296 +                                 <matte red="244" green="247" blue="253" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.0749532" brightnessOffset="0.24705881" alphaOffset="0"/>
151.1297 +                              </stop>
151.1298 +                              <stop position="1.0" midpoint="0.5">
151.1299 +                                 <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.1300 +                              </stop>
151.1301 +                           </gradient>
151.1302 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1303 +                        </rectangle>
151.1304 +                        <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="9.0">
151.1305 +                           <gradient cycleMethod="NO_CYCLE">
151.1306 +                              <stop position="0.09" midpoint="0.5">
151.1307 +                                 <matte red="149" green="155" blue="158" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.055555522" saturationOffset="-0.05356429" brightnessOffset="-0.12549019" alphaOffset="0"/>
151.1308 +                              </stop>
151.1309 +                              <stop position="0.95" midpoint="0.5">
151.1310 +                                 <matte red="85" green="88" blue="94" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.0147816315" brightnessOffset="-0.3764706" alphaOffset="0"/>
151.1311 +                              </stop>
151.1312 +                           </gradient>
151.1313 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1314 +                        </rectangle>
151.1315 +                        <rectangle x1="0.6" x2="103.4" y1="0.6" y2="32.4" rounding="11.0">
151.1316 +                           <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.1317 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.1318 +                        </rectangle>
151.1319 +                     </shapes>
151.1320 +                     <effects/>
151.1321 +                  </layer>
151.1322 +               </canvas>
151.1323 +            </state>
151.1324 +            <state stateKeys="MouseOver">
151.1325 +               <style>
151.1326 +                  <textForeground/>
151.1327 +                  <textBackground/>
151.1328 +                  <background/>
151.1329 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.1330 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.1331 +                  <uiproperties/>
151.1332 +               </style>
151.1333 +               <canvas>
151.1334 +                  <size width="104" height="33"/>
151.1335 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.1336 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
151.1337 +                  <layer name="Button Layer">
151.1338 +                     <opacity>1.0</opacity>
151.1339 +                     <fillOpacity>1.0</fillOpacity>
151.1340 +                     <blendingMode>NORMAL</blendingMode>
151.1341 +                     <locked>false</locked>
151.1342 +                     <visible>true</visible>
151.1343 +                     <shapes>
151.1344 +                        <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="7.0">
151.1345 +                           <gradient cycleMethod="NO_CYCLE">
151.1346 +                              <stop position="0.0" midpoint="0.4">
151.1347 +                                 <matte red="253" green="253" blue="254" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10658931" brightnessOffset="0.25098038" alphaOffset="0"/>
151.1348 +                              </stop>
151.1349 +                              <stop position="0.06" midpoint="0.4">
151.1350 +                                 <matte red="247" green="248" blue="250" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.098526314" brightnessOffset="0.2352941" alphaOffset="0"/>
151.1351 +                              </stop>
151.1352 +                              <stop position="0.6" midpoint="0.5">
151.1353 +                                 <matte red="233" green="236" blue="242" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07333623" brightnessOffset="0.20392156" alphaOffset="0"/>
151.1354 +                              </stop>
151.1355 +                              <stop position="0.7" midpoint="0.6">
151.1356 +                                 <matte red="233" green="236" blue="242" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07333623" brightnessOffset="0.20392156" alphaOffset="0"/>
151.1357 +                              </stop>
151.1358 +                              <stop position="0.96" midpoint="0.5">
151.1359 +                                 <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.1360 +                              </stop>
151.1361 +                              <stop position="1.0" midpoint="0.5">
151.1362 +                                 <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.1363 +                              </stop>
151.1364 +                           </gradient>
151.1365 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1366 +                        </rectangle>
151.1367 +                        <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="9.0">
151.1368 +                           <gradient cycleMethod="NO_CYCLE">
151.1369 +                              <stop position="0.09" midpoint="0.5">
151.1370 +                                 <matte red="122" green="126" blue="134" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.020974077" brightnessOffset="-0.21960783" alphaOffset="0"/>
151.1371 +                              </stop>
151.1372 +                              <stop position="0.95" midpoint="0.5">
151.1373 +                                 <matte red="42" green="46" blue="54" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.11169591" brightnessOffset="-0.53333336" alphaOffset="0"/>
151.1374 +                              </stop>
151.1375 +                           </gradient>
151.1376 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1377 +                        </rectangle>
151.1378 +                        <rectangle x1="2.0" x2="102.0" y1="3.0" y2="32.0" rounding="12.0">
151.1379 +                           <matte red="92" green="94" blue="96" alpha="65" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.06885965" brightnessOffset="-0.36862746" alphaOffset="-190"/>
151.1380 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.1381 +                        </rectangle>
151.1382 +                     </shapes>
151.1383 +                     <effects/>
151.1384 +                  </layer>
151.1385 +               </canvas>
151.1386 +            </state>
151.1387 +            <state stateKeys="MouseOver+Focused">
151.1388 +               <style>
151.1389 +                  <textForeground/>
151.1390 +                  <textBackground/>
151.1391 +                  <background/>
151.1392 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.1393 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.1394 +                  <uiproperties/>
151.1395 +               </style>
151.1396 +               <canvas>
151.1397 +                  <size width="104" height="33"/>
151.1398 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.1399 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
151.1400 +                  <layer name="Button Layer">
151.1401 +                     <opacity>1.0</opacity>
151.1402 +                     <fillOpacity>1.0</fillOpacity>
151.1403 +                     <blendingMode>NORMAL</blendingMode>
151.1404 +                     <locked>false</locked>
151.1405 +                     <visible>true</visible>
151.1406 +                     <shapes>
151.1407 +                        <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="7.0">
151.1408 +                           <gradient cycleMethod="NO_CYCLE">
151.1409 +                              <stop position="0.0" midpoint="0.4">
151.1410 +                                 <matte red="253" green="253" blue="254" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10658931" brightnessOffset="0.25098038" alphaOffset="0"/>
151.1411 +                              </stop>
151.1412 +                              <stop position="0.06" midpoint="0.4">
151.1413 +                                 <matte red="247" green="248" blue="250" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.098526314" brightnessOffset="0.2352941" alphaOffset="0"/>
151.1414 +                              </stop>
151.1415 +                              <stop position="0.6" midpoint="0.5">
151.1416 +                                 <matte red="233" green="236" blue="242" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07333623" brightnessOffset="0.20392156" alphaOffset="0"/>
151.1417 +                              </stop>
151.1418 +                              <stop position="0.7" midpoint="0.6">
151.1419 +                                 <matte red="233" green="236" blue="242" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07333623" brightnessOffset="0.20392156" alphaOffset="0"/>
151.1420 +                              </stop>
151.1421 +                              <stop position="0.96" midpoint="0.5">
151.1422 +                                 <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.1423 +                              </stop>
151.1424 +                              <stop position="1.0" midpoint="0.5">
151.1425 +                                 <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.1426 +                              </stop>
151.1427 +                           </gradient>
151.1428 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1429 +                        </rectangle>
151.1430 +                        <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="9.0">
151.1431 +                           <gradient cycleMethod="NO_CYCLE">
151.1432 +                              <stop position="0.09" midpoint="0.5">
151.1433 +                                 <matte red="122" green="126" blue="134" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.020974077" brightnessOffset="-0.21960783" alphaOffset="0"/>
151.1434 +                              </stop>
151.1435 +                              <stop position="0.95" midpoint="0.5">
151.1436 +                                 <matte red="42" green="46" blue="54" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.11169591" brightnessOffset="-0.53333336" alphaOffset="0"/>
151.1437 +                              </stop>
151.1438 +                           </gradient>
151.1439 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1440 +                        </rectangle>
151.1441 +                        <rectangle x1="0.6" x2="103.4" y1="0.6" y2="32.4" rounding="11.0">
151.1442 +                           <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.1443 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.1444 +                        </rectangle>
151.1445 +                     </shapes>
151.1446 +                     <effects/>
151.1447 +                  </layer>
151.1448 +               </canvas>
151.1449 +            </state>
151.1450 +            <state stateKeys="Pressed">
151.1451 +               <style>
151.1452 +                  <textForeground/>
151.1453 +                  <textBackground/>
151.1454 +                  <background/>
151.1455 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.1456 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.1457 +                  <uiproperties/>
151.1458 +               </style>
151.1459 +               <canvas>
151.1460 +                  <size width="104" height="33"/>
151.1461 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.1462 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
151.1463 +                  <layer name="Button Layer">
151.1464 +                     <opacity>1.0</opacity>
151.1465 +                     <fillOpacity>1.0</fillOpacity>
151.1466 +                     <blendingMode>NORMAL</blendingMode>
151.1467 +                     <locked>false</locked>
151.1468 +                     <visible>true</visible>
151.1469 +                     <shapes>
151.1470 +                        <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="7.0">
151.1471 +                           <gradient cycleMethod="NO_CYCLE">
151.1472 +                              <stop position="0.0" midpoint="0.4">
151.1473 +                                 <matte red="205" green="209" blue="216" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.00505054" saturationOffset="-0.05960039" brightnessOffset="0.10196078" alphaOffset="0"/>
151.1474 +                              </stop>
151.1475 +                              <stop position="0.06" midpoint="0.4">
151.1476 +                                 <matte red="194" green="199" blue="207" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.008547008" saturationOffset="-0.04772438" brightnessOffset="0.06666666" alphaOffset="0"/>
151.1477 +                              </stop>
151.1478 +                              <stop position="0.6" midpoint="0.5">
151.1479 +                                 <matte red="164" green="171" blue="184" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0027777553" saturationOffset="-0.0018306673" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.1480 +                              </stop>
151.1481 +                              <stop position="0.7" midpoint="0.6">
151.1482 +                                 <matte red="164" green="171" blue="184" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0027777553" saturationOffset="-0.0018306673" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.1483 +                              </stop>
151.1484 +                              <stop position="0.96" midpoint="0.6">
151.1485 +                                 <matte red="204" green="211" blue="224" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0027777553" saturationOffset="-0.0212406" brightnessOffset="0.13333333" alphaOffset="0"/>
151.1486 +                              </stop>
151.1487 +                              <stop position="1.0" midpoint="0.5">
151.1488 +                                 <matte red="231" green="237" blue="251" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.030845039" brightnessOffset="0.23921567" alphaOffset="0"/>
151.1489 +                              </stop>
151.1490 +                           </gradient>
151.1491 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1492 +                        </rectangle>
151.1493 +                        <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="9.0">
151.1494 +                           <gradient cycleMethod="NO_CYCLE">
151.1495 +                              <stop position="0.05" midpoint="0.5">
151.1496 +                                 <matte red="0" green="0" blue="7" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="0.8894737" brightnessOffset="-0.7176471" alphaOffset="0"/>
151.1497 +                              </stop>
151.1498 +                              <stop position="0.95" midpoint="0.5">
151.1499 +                                 <matte red="96" green="100" blue="108" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="5.847961E-4" brightnessOffset="-0.32156864" alphaOffset="0"/>
151.1500 +                              </stop>
151.1501 +                           </gradient>
151.1502 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1503 +                        </rectangle>
151.1504 +                        <rectangle x1="2.0" x2="102.0" y1="3.0" y2="32.0" rounding="12.0">
151.1505 +                           <matte red="245" green="250" blue="255" alpha="160" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.1506 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.1507 +                        </rectangle>
151.1508 +                     </shapes>
151.1509 +                     <effects/>
151.1510 +                  </layer>
151.1511 +               </canvas>
151.1512 +            </state>
151.1513 +            <state stateKeys="Pressed+Focused">
151.1514 +               <style>
151.1515 +                  <textForeground/>
151.1516 +                  <textBackground/>
151.1517 +                  <background/>
151.1518 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.1519 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.1520 +                  <uiproperties/>
151.1521 +               </style>
151.1522 +               <canvas>
151.1523 +                  <size width="104" height="33"/>
151.1524 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.1525 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
151.1526 +                  <layer name="Button Layer">
151.1527 +                     <opacity>1.0</opacity>
151.1528 +                     <fillOpacity>1.0</fillOpacity>
151.1529 +                     <blendingMode>NORMAL</blendingMode>
151.1530 +                     <locked>false</locked>
151.1531 +                     <visible>true</visible>
151.1532 +                     <shapes>
151.1533 +                        <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="7.0">
151.1534 +                           <gradient cycleMethod="NO_CYCLE">
151.1535 +                              <stop position="0.0" midpoint="0.4">
151.1536 +                                 <matte red="205" green="209" blue="216" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.00505054" saturationOffset="-0.05960039" brightnessOffset="0.10196078" alphaOffset="0"/>
151.1537 +                              </stop>
151.1538 +                              <stop position="0.06" midpoint="0.4">
151.1539 +                                 <matte red="194" green="199" blue="207" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.008547008" saturationOffset="-0.04772438" brightnessOffset="0.06666666" alphaOffset="0"/>
151.1540 +                              </stop>
151.1541 +                              <stop position="0.6" midpoint="0.5">
151.1542 +                                 <matte red="164" green="171" blue="184" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0027777553" saturationOffset="-0.0018306673" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.1543 +                              </stop>
151.1544 +                              <stop position="0.7" midpoint="0.6">
151.1545 +                                 <matte red="164" green="171" blue="184" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0027777553" saturationOffset="-0.0018306673" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.1546 +                              </stop>
151.1547 +                              <stop position="0.96" midpoint="0.6">
151.1548 +                                 <matte red="204" green="211" blue="224" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0027777553" saturationOffset="-0.0212406" brightnessOffset="0.13333333" alphaOffset="0"/>
151.1549 +                              </stop>
151.1550 +                              <stop position="1.0" midpoint="0.5">
151.1551 +                                 <matte red="231" green="237" blue="251" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.030845039" brightnessOffset="0.23921567" alphaOffset="0"/>
151.1552 +                              </stop>
151.1553 +                           </gradient>
151.1554 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1555 +                        </rectangle>
151.1556 +                        <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="9.0">
151.1557 +                           <gradient cycleMethod="NO_CYCLE">
151.1558 +                              <stop position="0.05" midpoint="0.5">
151.1559 +                                 <matte red="0" green="0" blue="7" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="0.8894737" brightnessOffset="-0.7176471" alphaOffset="0"/>
151.1560 +                              </stop>
151.1561 +                              <stop position="0.95" midpoint="0.5">
151.1562 +                                 <matte red="96" green="100" blue="108" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="5.847961E-4" brightnessOffset="-0.32156864" alphaOffset="0"/>
151.1563 +                              </stop>
151.1564 +                           </gradient>
151.1565 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1566 +                        </rectangle>
151.1567 +                        <rectangle x1="0.6" x2="103.4" y1="0.6" y2="32.4" rounding="11.0">
151.1568 +                           <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.1569 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.1570 +                        </rectangle>
151.1571 +                     </shapes>
151.1572 +                     <effects/>
151.1573 +                  </layer>
151.1574 +               </canvas>
151.1575 +            </state>
151.1576 +            <state stateKeys="Selected">
151.1577 +               <style>
151.1578 +                  <textForeground/>
151.1579 +                  <textBackground/>
151.1580 +                  <background/>
151.1581 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.1582 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.1583 +                  <uiproperties/>
151.1584 +               </style>
151.1585 +               <canvas>
151.1586 +                  <size width="72" height="24"/>
151.1587 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.1588 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
151.1589 +                  <layer name="Layer 1">
151.1590 +                     <opacity>1.0</opacity>
151.1591 +                     <fillOpacity>1.0</fillOpacity>
151.1592 +                     <blendingMode>NORMAL</blendingMode>
151.1593 +                     <locked>false</locked>
151.1594 +                     <visible>true</visible>
151.1595 +                     <shapes>
151.1596 +                        <rectangle x1="3.0" x2="69.0" y1="3.0" y2="21.0" rounding="7.0">
151.1597 +                           <gradient cycleMethod="NO_CYCLE">
151.1598 +                              <stop position="0.0" midpoint="0.5">
151.1599 +                                 <matte red="164" green="166" blue="172" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0138888955" saturationOffset="-0.06401469" brightnessOffset="-0.07058823" alphaOffset="0"/>
151.1600 +                              </stop>
151.1601 +                              <stop position="0.13368984" midpoint="0.5">
151.1602 +                                 <matte red="190" green="193" blue="199" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06530018" brightnessOffset="0.035294116" alphaOffset="0"/>
151.1603 +                              </stop>
151.1604 +                              <stop position="1.0" midpoint="0.5">
151.1605 +                                 <matte red="189" green="192" blue="198" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06507177" brightnessOffset="0.031372547" alphaOffset="0"/>
151.1606 +                              </stop>
151.1607 +                           </gradient>
151.1608 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1609 +                        </rectangle>
151.1610 +                        <rectangle x1="2.0" x2="70.0" y1="2.0" y2="22.0" rounding="9.0">
151.1611 +                           <gradient cycleMethod="NO_CYCLE">
151.1612 +                              <stop position="0.0" midpoint="0.5">
151.1613 +                                 <matte red="125" green="127" blue="131" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06472479" brightnessOffset="-0.23137254" alphaOffset="0"/>
151.1614 +                              </stop>
151.1615 +                              <stop position="1.0" midpoint="0.5">
151.1616 +                                 <matte red="164" green="166" blue="171" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.06959064" brightnessOffset="-0.0745098" alphaOffset="0"/>
151.1617 +                              </stop>
151.1618 +                           </gradient>
151.1619 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1620 +                        </rectangle>
151.1621 +                        <rectangle x1="2.0" x2="70.0" y1="3.0" y2="23.0" rounding="9.0">
151.1622 +                           <matte red="255" green="255" blue="255" alpha="169" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-86"/>
151.1623 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.1624 +                        </rectangle>
151.1625 +                     </shapes>
151.1626 +                     <effects/>
151.1627 +                  </layer>
151.1628 +                  <templateLayer fileName="1139ecfc04b.png">
151.1629 +                     <layer name="Template" type="template">
151.1630 +                        <opacity>1.0</opacity>
151.1631 +                        <fillOpacity>1.0</fillOpacity>
151.1632 +                        <blendingMode>NORMAL</blendingMode>
151.1633 +                        <locked>false</locked>
151.1634 +                        <visible>false</visible>
151.1635 +                        <shapes/>
151.1636 +                        <effects/>
151.1637 +                     </layer>
151.1638 +                  </templateLayer>
151.1639 +               </canvas>
151.1640 +            </state>
151.1641 +            <state stateKeys="Selected+Focused">
151.1642 +               <style>
151.1643 +                  <textForeground/>
151.1644 +                  <textBackground/>
151.1645 +                  <background/>
151.1646 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.1647 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.1648 +                  <uiproperties/>
151.1649 +               </style>
151.1650 +               <canvas>
151.1651 +                  <size width="72" height="24"/>
151.1652 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.1653 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
151.1654 +                  <layer name="Layer 1">
151.1655 +                     <opacity>1.0</opacity>
151.1656 +                     <fillOpacity>1.0</fillOpacity>
151.1657 +                     <blendingMode>NORMAL</blendingMode>
151.1658 +                     <locked>false</locked>
151.1659 +                     <visible>true</visible>
151.1660 +                     <shapes>
151.1661 +                        <rectangle x1="3.0" x2="69.0" y1="3.0" y2="21.0" rounding="7.0">
151.1662 +                           <gradient cycleMethod="NO_CYCLE">
151.1663 +                              <stop position="0.0" midpoint="0.5">
151.1664 +                                 <matte red="164" green="166" blue="172" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0138888955" saturationOffset="-0.06401469" brightnessOffset="-0.07058823" alphaOffset="0"/>
151.1665 +                              </stop>
151.1666 +                              <stop position="0.13368984" midpoint="0.5">
151.1667 +                                 <matte red="190" green="193" blue="199" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06530018" brightnessOffset="0.035294116" alphaOffset="0"/>
151.1668 +                              </stop>
151.1669 +                              <stop position="1.0" midpoint="0.5">
151.1670 +                                 <matte red="189" green="192" blue="198" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06507177" brightnessOffset="0.031372547" alphaOffset="0"/>
151.1671 +                              </stop>
151.1672 +                           </gradient>
151.1673 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1674 +                        </rectangle>
151.1675 +                        <rectangle x1="2.0" x2="70.0" y1="2.0" y2="22.0" rounding="9.0">
151.1676 +                           <gradient cycleMethod="NO_CYCLE">
151.1677 +                              <stop position="0.0" midpoint="0.5">
151.1678 +                                 <matte red="125" green="127" blue="131" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06472479" brightnessOffset="-0.23137254" alphaOffset="0"/>
151.1679 +                              </stop>
151.1680 +                              <stop position="1.0" midpoint="0.5">
151.1681 +                                 <matte red="164" green="166" blue="171" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.06959064" brightnessOffset="-0.0745098" alphaOffset="0"/>
151.1682 +                              </stop>
151.1683 +                           </gradient>
151.1684 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1685 +                        </rectangle>
151.1686 +                        <rectangle x1="0.6" x2="71.4" y1="0.6" y2="23.4" rounding="11.0">
151.1687 +                           <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.1688 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.1689 +                        </rectangle>
151.1690 +                     </shapes>
151.1691 +                     <effects/>
151.1692 +                  </layer>
151.1693 +               </canvas>
151.1694 +            </state>
151.1695 +            <state stateKeys="Pressed+Selected">
151.1696 +               <style>
151.1697 +                  <textForeground/>
151.1698 +                  <textBackground/>
151.1699 +                  <background/>
151.1700 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.1701 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.1702 +                  <uiproperties/>
151.1703 +               </style>
151.1704 +               <canvas>
151.1705 +                  <size width="72" height="24"/>
151.1706 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.1707 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
151.1708 +                  <layer name="Layer 1">
151.1709 +                     <opacity>1.0</opacity>
151.1710 +                     <fillOpacity>1.0</fillOpacity>
151.1711 +                     <blendingMode>NORMAL</blendingMode>
151.1712 +                     <locked>false</locked>
151.1713 +                     <visible>true</visible>
151.1714 +                     <shapes>
151.1715 +                        <rectangle x1="3.0" x2="69.0" y1="3.0" y2="21.0" rounding="7.0">
151.1716 +                           <gradient cycleMethod="NO_CYCLE">
151.1717 +                              <stop position="0.0" midpoint="0.5">
151.1718 +                                 <matte red="117" green="121" blue="126" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.018518567" saturationOffset="-0.03909774" brightnessOffset="-0.2509804" alphaOffset="0"/>
151.1719 +                              </stop>
151.1720 +                              <stop position="0.13368984" midpoint="0.5">
151.1721 +                                 <matte red="145" green="149" blue="156" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.00505054" saturationOffset="-0.040013492" brightnessOffset="-0.13333333" alphaOffset="0"/>
151.1722 +                              </stop>
151.1723 +                              <stop position="1.0" midpoint="0.5">
151.1724 +                                 <matte red="144" green="147" blue="155" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.01010108" saturationOffset="-0.039558575" brightnessOffset="-0.1372549" alphaOffset="0"/>
151.1725 +                              </stop>
151.1726 +                           </gradient>
151.1727 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1728 +                        </rectangle>
151.1729 +                        <rectangle x1="2.0" x2="70.0" y1="2.0" y2="22.0" rounding="9.0">
151.1730 +                           <gradient cycleMethod="NO_CYCLE">
151.1731 +                              <stop position="0.0" midpoint="0.5">
151.1732 +                                 <matte red="66" green="68" blue="70" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.05338346" brightnessOffset="-0.47058824" alphaOffset="0"/>
151.1733 +                              </stop>
151.1734 +                              <stop position="1.0" midpoint="0.5">
151.1735 +                                 <matte red="92" green="94" blue="98" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.049301825" brightnessOffset="-0.36078432" alphaOffset="0"/>
151.1736 +                              </stop>
151.1737 +                           </gradient>
151.1738 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1739 +                        </rectangle>
151.1740 +                        <rectangle x1="2.0" x2="70.0" y1="3.0" y2="23.0" rounding="9.0">
151.1741 +                           <matte red="255" green="255" blue="255" alpha="169" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-86"/>
151.1742 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.1743 +                        </rectangle>
151.1744 +                     </shapes>
151.1745 +                     <effects/>
151.1746 +                  </layer>
151.1747 +                  <templateLayer fileName="1139ed92ed8.png">
151.1748 +                     <layer name="Template" type="template">
151.1749 +                        <opacity>1.0</opacity>
151.1750 +                        <fillOpacity>1.0</fillOpacity>
151.1751 +                        <blendingMode>NORMAL</blendingMode>
151.1752 +                        <locked>false</locked>
151.1753 +                        <visible>false</visible>
151.1754 +                        <shapes/>
151.1755 +                        <effects/>
151.1756 +                     </layer>
151.1757 +                  </templateLayer>
151.1758 +               </canvas>
151.1759 +            </state>
151.1760 +            <state stateKeys="Pressed+Selected+Focused">
151.1761 +               <style>
151.1762 +                  <textForeground/>
151.1763 +                  <textBackground/>
151.1764 +                  <background/>
151.1765 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.1766 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.1767 +                  <uiproperties/>
151.1768 +               </style>
151.1769 +               <canvas>
151.1770 +                  <size width="72" height="24"/>
151.1771 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.1772 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
151.1773 +                  <layer name="Layer 1">
151.1774 +                     <opacity>1.0</opacity>
151.1775 +                     <fillOpacity>1.0</fillOpacity>
151.1776 +                     <blendingMode>NORMAL</blendingMode>
151.1777 +                     <locked>false</locked>
151.1778 +                     <visible>true</visible>
151.1779 +                     <shapes>
151.1780 +                        <rectangle x1="3.0" x2="69.0" y1="3.0" y2="21.0" rounding="7.0">
151.1781 +                           <gradient cycleMethod="NO_CYCLE">
151.1782 +                              <stop position="0.0" midpoint="0.5">
151.1783 +                                 <matte red="117" green="121" blue="126" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.018518567" saturationOffset="-0.03909774" brightnessOffset="-0.2509804" alphaOffset="0"/>
151.1784 +                              </stop>
151.1785 +                              <stop position="0.13368984" midpoint="0.5">
151.1786 +                                 <matte red="145" green="149" blue="156" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.00505054" saturationOffset="-0.040013492" brightnessOffset="-0.13333333" alphaOffset="0"/>
151.1787 +                              </stop>
151.1788 +                              <stop position="1.0" midpoint="0.5">
151.1789 +                                 <matte red="144" green="147" blue="155" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.01010108" saturationOffset="-0.039558575" brightnessOffset="-0.1372549" alphaOffset="0"/>
151.1790 +                              </stop>
151.1791 +                           </gradient>
151.1792 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1793 +                        </rectangle>
151.1794 +                        <rectangle x1="2.0" x2="70.0" y1="2.0" y2="22.0" rounding="9.0">
151.1795 +                           <gradient cycleMethod="NO_CYCLE">
151.1796 +                              <stop position="0.0" midpoint="0.5">
151.1797 +                                 <matte red="66" green="68" blue="70" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.05338346" brightnessOffset="-0.47058824" alphaOffset="0"/>
151.1798 +                              </stop>
151.1799 +                              <stop position="1.0" midpoint="0.5">
151.1800 +                                 <matte red="92" green="94" blue="98" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.049301825" brightnessOffset="-0.36078432" alphaOffset="0"/>
151.1801 +                              </stop>
151.1802 +                           </gradient>
151.1803 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1804 +                        </rectangle>
151.1805 +                        <rectangle x1="0.6" x2="71.4" y1="0.6" y2="23.4" rounding="11.0">
151.1806 +                           <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.1807 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.1808 +                        </rectangle>
151.1809 +                     </shapes>
151.1810 +                     <effects/>
151.1811 +                  </layer>
151.1812 +               </canvas>
151.1813 +            </state>
151.1814 +            <state stateKeys="MouseOver+Selected">
151.1815 +               <style>
151.1816 +                  <textForeground/>
151.1817 +                  <textBackground/>
151.1818 +                  <background/>
151.1819 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.1820 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.1821 +                  <uiproperties/>
151.1822 +               </style>
151.1823 +               <canvas>
151.1824 +                  <size width="72" height="24"/>
151.1825 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.1826 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
151.1827 +                  <layer name="Layer 1">
151.1828 +                     <opacity>1.0</opacity>
151.1829 +                     <fillOpacity>1.0</fillOpacity>
151.1830 +                     <blendingMode>NORMAL</blendingMode>
151.1831 +                     <locked>false</locked>
151.1832 +                     <visible>true</visible>
151.1833 +                     <shapes>
151.1834 +                        <rectangle x1="3.0" x2="69.0" y1="3.0" y2="21.0" rounding="7.0">
151.1835 +                           <gradient cycleMethod="NO_CYCLE">
151.1836 +                              <stop position="0.0" midpoint="0.5">
151.1837 +                                 <matte red="149" green="152" blue="157" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.006944418" saturationOffset="-0.0595709" brightnessOffset="-0.12941176" alphaOffset="0"/>
151.1838 +                              </stop>
151.1839 +                              <stop position="0.13368984" midpoint="0.5">
151.1840 +                                 <matte red="173" green="176" blue="182" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.061075766" brightnessOffset="-0.031372547" alphaOffset="0"/>
151.1841 +                              </stop>
151.1842 +                              <stop position="1.0" midpoint="0.5">
151.1843 +                                 <matte red="172" green="175" blue="181" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06080256" brightnessOffset="-0.035294116" alphaOffset="0"/>
151.1844 +                              </stop>
151.1845 +                           </gradient>
151.1846 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1847 +                        </rectangle>
151.1848 +                        <rectangle x1="2.0" x2="70.0" y1="2.0" y2="22.0" rounding="9.0">
151.1849 +                           <gradient cycleMethod="NO_CYCLE">
151.1850 +                              <stop position="0.0" midpoint="0.5">
151.1851 +                                 <matte red="95" green="97" blue="100" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.01111114" saturationOffset="-0.060526315" brightnessOffset="-0.3529412" alphaOffset="0"/>
151.1852 +                              </stop>
151.1853 +                              <stop position="1.0" midpoint="0.5">
151.1854 +                                 <matte red="124" green="126" blue="130" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.064372465" brightnessOffset="-0.2352941" alphaOffset="0"/>
151.1855 +                              </stop>
151.1856 +                           </gradient>
151.1857 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1858 +                        </rectangle>
151.1859 +                        <rectangle x1="2.0" x2="70.0" y1="3.0" y2="23.0" rounding="9.0">
151.1860 +                           <matte red="255" green="255" blue="255" alpha="169" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-86"/>
151.1861 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.1862 +                        </rectangle>
151.1863 +                     </shapes>
151.1864 +                     <effects/>
151.1865 +                  </layer>
151.1866 +                  <templateLayer fileName="1139eda6220.png">
151.1867 +                     <layer name="Template" type="template">
151.1868 +                        <opacity>1.0</opacity>
151.1869 +                        <fillOpacity>1.0</fillOpacity>
151.1870 +                        <blendingMode>NORMAL</blendingMode>
151.1871 +                        <locked>false</locked>
151.1872 +                        <visible>false</visible>
151.1873 +                        <shapes/>
151.1874 +                        <effects/>
151.1875 +                     </layer>
151.1876 +                  </templateLayer>
151.1877 +               </canvas>
151.1878 +            </state>
151.1879 +            <state stateKeys="MouseOver+Selected+Focused">
151.1880 +               <style>
151.1881 +                  <textForeground/>
151.1882 +                  <textBackground/>
151.1883 +                  <background/>
151.1884 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.1885 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.1886 +                  <uiproperties/>
151.1887 +               </style>
151.1888 +               <canvas>
151.1889 +                  <size width="72" height="24"/>
151.1890 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.1891 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
151.1892 +                  <layer name="Layer 1">
151.1893 +                     <opacity>1.0</opacity>
151.1894 +                     <fillOpacity>1.0</fillOpacity>
151.1895 +                     <blendingMode>NORMAL</blendingMode>
151.1896 +                     <locked>false</locked>
151.1897 +                     <visible>true</visible>
151.1898 +                     <shapes>
151.1899 +                        <rectangle x1="3.0" x2="69.0" y1="3.0" y2="21.0" rounding="7.0">
151.1900 +                           <gradient cycleMethod="NO_CYCLE">
151.1901 +                              <stop position="0.0" midpoint="0.5">
151.1902 +                                 <matte red="149" green="152" blue="157" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.006944418" saturationOffset="-0.0595709" brightnessOffset="-0.12941176" alphaOffset="0"/>
151.1903 +                              </stop>
151.1904 +                              <stop position="0.13368984" midpoint="0.5">
151.1905 +                                 <matte red="173" green="176" blue="182" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.061075766" brightnessOffset="-0.031372547" alphaOffset="0"/>
151.1906 +                              </stop>
151.1907 +                              <stop position="1.0" midpoint="0.5">
151.1908 +                                 <matte red="172" green="175" blue="181" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06080256" brightnessOffset="-0.035294116" alphaOffset="0"/>
151.1909 +                              </stop>
151.1910 +                           </gradient>
151.1911 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1912 +                        </rectangle>
151.1913 +                        <rectangle x1="2.0" x2="70.0" y1="2.0" y2="22.0" rounding="9.0">
151.1914 +                           <gradient cycleMethod="NO_CYCLE">
151.1915 +                              <stop position="0.0" midpoint="0.5">
151.1916 +                                 <matte red="95" green="97" blue="100" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.01111114" saturationOffset="-0.060526315" brightnessOffset="-0.3529412" alphaOffset="0"/>
151.1917 +                              </stop>
151.1918 +                              <stop position="1.0" midpoint="0.5">
151.1919 +                                 <matte red="124" green="126" blue="130" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.064372465" brightnessOffset="-0.2352941" alphaOffset="0"/>
151.1920 +                              </stop>
151.1921 +                           </gradient>
151.1922 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1923 +                        </rectangle>
151.1924 +                        <rectangle x1="0.6" x2="71.4" y1="0.6" y2="23.4" rounding="11.0">
151.1925 +                           <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.1926 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.1927 +                        </rectangle>
151.1928 +                     </shapes>
151.1929 +                     <effects/>
151.1930 +                  </layer>
151.1931 +               </canvas>
151.1932 +            </state>
151.1933 +            <state stateKeys="Disabled+Selected">
151.1934 +               <style>
151.1935 +                  <textForeground>
151.1936 +                     <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.1937 +                  </textForeground>
151.1938 +                  <textBackground/>
151.1939 +                  <background/>
151.1940 +                  <inherit-textForeground>false</inherit-textForeground>
151.1941 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.1942 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.1943 +                  <uiproperties/>
151.1944 +               </style>
151.1945 +               <canvas>
151.1946 +                  <size width="72" height="24"/>
151.1947 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.1948 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
151.1949 +                  <layer name="Layer 1">
151.1950 +                     <opacity>1.0</opacity>
151.1951 +                     <fillOpacity>1.0</fillOpacity>
151.1952 +                     <blendingMode>NORMAL</blendingMode>
151.1953 +                     <locked>false</locked>
151.1954 +                     <visible>true</visible>
151.1955 +                     <shapes>
151.1956 +                        <rectangle x1="3.0" x2="69.0" y1="3.0" y2="21.0" rounding="7.0">
151.1957 +                           <gradient cycleMethod="NO_CYCLE">
151.1958 +                              <stop position="0.0" midpoint="0.5">
151.1959 +                                 <matte red="203" green="206" blue="212" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06807348" brightnessOffset="0.086274505" alphaOffset="0"/>
151.1960 +                              </stop>
151.1961 +                              <stop position="0.13368984" midpoint="0.5">
151.1962 +                                 <matte red="209" green="212" blue="218" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06924191" brightnessOffset="0.109803915" alphaOffset="0"/>
151.1963 +                              </stop>
151.1964 +                              <stop position="1.0" midpoint="0.5">
151.1965 +                                 <matte red="209" green="212" blue="218" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06924191" brightnessOffset="0.109803915" alphaOffset="0"/>
151.1966 +                              </stop>
151.1967 +                           </gradient>
151.1968 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1969 +                        </rectangle>
151.1970 +                        <rectangle x1="2.0" x2="70.0" y1="2.0" y2="22.0" rounding="9.0">
151.1971 +                           <gradient cycleMethod="NO_CYCLE">
151.1972 +                              <stop position="0.0" midpoint="0.5">
151.1973 +                                 <matte red="195" green="198" blue="204" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.066408664" brightnessOffset="0.054901958" alphaOffset="0"/>
151.1974 +                              </stop>
151.1975 +                              <stop position="1.0" midpoint="0.5">
151.1976 +                                 <matte red="203" green="206" blue="212" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06807348" brightnessOffset="0.086274505" alphaOffset="0"/>
151.1977 +                              </stop>
151.1978 +                           </gradient>
151.1979 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.1980 +                        </rectangle>
151.1981 +                        <rectangle x1="2.0" x2="70.0" y1="3.0" y2="23.0" rounding="9.0">
151.1982 +                           <matte red="255" green="255" blue="255" alpha="35" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-220"/>
151.1983 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.1984 +                        </rectangle>
151.1985 +                     </shapes>
151.1986 +                     <effects/>
151.1987 +                  </layer>
151.1988 +                  <templateLayer fileName="1139edb5619.png">
151.1989 +                     <layer name="Template" type="template">
151.1990 +                        <opacity>1.0</opacity>
151.1991 +                        <fillOpacity>1.0</fillOpacity>
151.1992 +                        <blendingMode>NORMAL</blendingMode>
151.1993 +                        <locked>false</locked>
151.1994 +                        <visible>false</visible>
151.1995 +                        <shapes/>
151.1996 +                        <effects/>
151.1997 +                     </layer>
151.1998 +                  </templateLayer>
151.1999 +               </canvas>
151.2000 +            </state>
151.2001 +         </backgroundStates>
151.2002 +         <foregroundStates/>
151.2003 +         <borderStates/>
151.2004 +         <regions/>
151.2005 +      </uiComponent>
151.2006 +      <uiComponent opaque="false" type="javax.swing.JRadioButton" name="RadioButton" ui="RadioButtonUI" subregion="false">
151.2007 +         <stateTypes/>
151.2008 +         <contentMargins top="0" bottom="0" left="0" right="0"/>
151.2009 +         <style>
151.2010 +            <textForeground/>
151.2011 +            <textBackground/>
151.2012 +            <background/>
151.2013 +            <uiproperties/>
151.2014 +         </style>
151.2015 +         <backgroundStates>
151.2016 +            <state stateKeys="Disabled">
151.2017 +               <style>
151.2018 +                  <textForeground>
151.2019 +                     <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.2020 +                  </textForeground>
151.2021 +                  <textBackground/>
151.2022 +                  <background/>
151.2023 +                  <inherit-textForeground>false</inherit-textForeground>
151.2024 +                  <uiproperties/>
151.2025 +               </style>
151.2026 +               <canvas>
151.2027 +                  <size width="104" height="33"/>
151.2028 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.2029 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
151.2030 +                  <layer name="Layer 1">
151.2031 +                     <opacity>1.0</opacity>
151.2032 +                     <fillOpacity>1.0</fillOpacity>
151.2033 +                     <blendingMode>NORMAL</blendingMode>
151.2034 +                     <locked>false</locked>
151.2035 +                     <visible>true</visible>
151.2036 +                     <shapes/>
151.2037 +                     <effects/>
151.2038 +                  </layer>
151.2039 +               </canvas>
151.2040 +            </state>
151.2041 +            <state stateKeys="Enabled">
151.2042 +               <style>
151.2043 +                  <textForeground/>
151.2044 +                  <textBackground/>
151.2045 +                  <background/>
151.2046 +                  <uiproperties/>
151.2047 +               </style>
151.2048 +               <canvas>
151.2049 +                  <size width="104" height="33"/>
151.2050 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.2051 +                  <stretchingInsets top="7" bottom="7" left="7" right="7"/>
151.2052 +                  <layer name="Layer 1">
151.2053 +                     <opacity>1.0</opacity>
151.2054 +                     <fillOpacity>1.0</fillOpacity>
151.2055 +                     <blendingMode>NORMAL</blendingMode>
151.2056 +                     <locked>false</locked>
151.2057 +                     <visible>true</visible>
151.2058 +                     <shapes/>
151.2059 +                     <effects/>
151.2060 +                  </layer>
151.2061 +               </canvas>
151.2062 +            </state>
151.2063 +         </backgroundStates>
151.2064 +         <foregroundStates/>
151.2065 +         <borderStates/>
151.2066 +         <regions>
151.2067 +            <uiIconRegion name="Icon" subregion="true" key="icon">
151.2068 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.2069 +               <style>
151.2070 +                  <textForeground/>
151.2071 +                  <textBackground/>
151.2072 +                  <background/>
151.2073 +                  <uiproperties/>
151.2074 +               </style>
151.2075 +               <backgroundStates>
151.2076 +                  <state stateKeys="Disabled">
151.2077 +                     <style>
151.2078 +                        <textForeground/>
151.2079 +                        <textBackground/>
151.2080 +                        <background/>
151.2081 +                        <uiproperties/>
151.2082 +                     </style>
151.2083 +                     <canvas>
151.2084 +                        <size width="18" height="18"/>
151.2085 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.2086 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.2087 +                        <layer name="Button">
151.2088 +                           <opacity>1.0</opacity>
151.2089 +                           <fillOpacity>1.0</fillOpacity>
151.2090 +                           <blendingMode>NORMAL</blendingMode>
151.2091 +                           <locked>false</locked>
151.2092 +                           <visible>true</visible>
151.2093 +                           <shapes>
151.2094 +                              <ellipse x1="3.0" x2="15.0" y1="3.0" y2="15.0">
151.2095 +                                 <gradient cycleMethod="NO_CYCLE">
151.2096 +                                    <stop position="0.06344411" midpoint="0.5">
151.2097 +                                       <matte red="226" green="228" blue="232" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.08466425" brightnessOffset="0.16470587" alphaOffset="0"/>
151.2098 +                                    </stop>
151.2099 +                                    <stop position="0.36858007" midpoint="0.5">
151.2100 +                                       <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
151.2101 +                                    </stop>
151.2102 +                                    <stop position="0.72809666" midpoint="0.5">
151.2103 +                                       <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
151.2104 +                                    </stop>
151.2105 +                                    <stop position="0.82175225" midpoint="0.5">
151.2106 +                                       <matte red="217" green="220" blue="226" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.070703305" brightnessOffset="0.14117646" alphaOffset="0"/>
151.2107 +                                    </stop>
151.2108 +                                    <stop position="1.0" midpoint="0.5">
151.2109 +                                       <matte red="216" green="219" blue="225" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07052632" brightnessOffset="0.1372549" alphaOffset="0"/>
151.2110 +                                    </stop>
151.2111 +                                 </gradient>
151.2112 +                                 <paintPoints x1="0.49754901960784303" y1="0.004901960784313727" x2="0.507352941176471" y2="1.0"/>
151.2113 +                              </ellipse>
151.2114 +                              <ellipse x1="2.0" x2="16.0" y1="2.0" y2="16.0">
151.2115 +                                 <gradient cycleMethod="NO_CYCLE">
151.2116 +                                    <stop position="0.0" midpoint="0.5">
151.2117 +                                       <matte red="201" green="204" blue="210" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06766917" brightnessOffset="0.07843137" alphaOffset="0"/>
151.2118 +                                    </stop>
151.2119 +                                    <stop position="1.0" midpoint="0.5">
151.2120 +                                       <matte red="185" green="188" blue="194" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06413457" brightnessOffset="0.015686274" alphaOffset="0"/>
151.2121 +                                    </stop>
151.2122 +                                 </gradient>
151.2123 +                                 <paintPoints x1="0.49789915966386533" y1="-0.0042016806722689065" x2="0.5000000000000002" y2="0.9978991596638656"/>
151.2124 +                              </ellipse>
151.2125 +                           </shapes>
151.2126 +                           <effects/>
151.2127 +                        </layer>
151.2128 +                     </canvas>
151.2129 +                  </state>
151.2130 +                  <state stateKeys="Enabled">
151.2131 +                     <style>
151.2132 +                        <textForeground/>
151.2133 +                        <textBackground/>
151.2134 +                        <background/>
151.2135 +                        <uiproperties/>
151.2136 +                     </style>
151.2137 +                     <canvas>
151.2138 +                        <size width="18" height="18"/>
151.2139 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.2140 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.2141 +                        <layer name="Button">
151.2142 +                           <opacity>1.0</opacity>
151.2143 +                           <fillOpacity>1.0</fillOpacity>
151.2144 +                           <blendingMode>NORMAL</blendingMode>
151.2145 +                           <locked>false</locked>
151.2146 +                           <visible>true</visible>
151.2147 +                           <shapes>
151.2148 +                              <ellipse x1="3.0" x2="15.0" y1="3.0" y2="15.0">
151.2149 +                                 <gradient cycleMethod="NO_CYCLE">
151.2150 +                                    <stop position="0.06344411" midpoint="0.5">
151.2151 +                                       <matte red="250" green="250" blue="251" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10654225" brightnessOffset="0.23921567" alphaOffset="0"/>
151.2152 +                                    </stop>
151.2153 +                                    <stop position="0.43674698" midpoint="0.5">
151.2154 +                                       <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
151.2155 +                                    </stop>
151.2156 +                                    <stop position="0.52409637" midpoint="0.5">
151.2157 +                                       <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
151.2158 +                                    </stop>
151.2159 +                                    <stop position="0.88554215" midpoint="0.5">
151.2160 +                                       <matte red="225" green="228" blue="234" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07206477" brightnessOffset="0.17254901" alphaOffset="0"/>
151.2161 +                                    </stop>
151.2162 +                                 </gradient>
151.2163 +                                 <paintPoints x1="0.49754901960784303" y1="0.004901960784313727" x2="0.507352941176471" y2="1.0"/>
151.2164 +                              </ellipse>
151.2165 +                              <ellipse x1="2.0" x2="16.0" y1="2.0" y2="16.0">
151.2166 +                                 <gradient cycleMethod="NO_CYCLE">
151.2167 +                                    <stop position="0.0" midpoint="0.5">
151.2168 +                                       <matte red="148" green="151" blue="157" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.053201474" brightnessOffset="-0.12941176" alphaOffset="0"/>
151.2169 +                                    </stop>
151.2170 +                                    <stop position="1.0" midpoint="0.5">
151.2171 +                                       <matte red="68" green="71" blue="77" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.006356798" brightnessOffset="-0.44313726" alphaOffset="0"/>
151.2172 +                                    </stop>
151.2173 +                                 </gradient>
151.2174 +                                 <paintPoints x1="0.49789915966386533" y1="-0.0042016806722689065" x2="0.5000000000000002" y2="0.9978991596638656"/>
151.2175 +                              </ellipse>
151.2176 +                           </shapes>
151.2177 +                           <effects/>
151.2178 +                        </layer>
151.2179 +                        <layer name="Shadow">
151.2180 +                           <opacity>1.0</opacity>
151.2181 +                           <fillOpacity>1.0</fillOpacity>
151.2182 +                           <blendingMode>NORMAL</blendingMode>
151.2183 +                           <locked>false</locked>
151.2184 +                           <visible>true</visible>
151.2185 +                           <shapes>
151.2186 +                              <ellipse x1="2.0" x2="16.0" y1="3.0" y2="17.0">
151.2187 +                                 <matte red="169" green="176" blue="190" alpha="143" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="-112"/>
151.2188 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.2189 +                              </ellipse>
151.2190 +                           </shapes>
151.2191 +                           <effects/>
151.2192 +                        </layer>
151.2193 +                        <templateLayer fileName="1138ddc021b.png">
151.2194 +                           <layer name="Template" type="template">
151.2195 +                              <opacity>1.0</opacity>
151.2196 +                              <fillOpacity>1.0</fillOpacity>
151.2197 +                              <blendingMode>NORMAL</blendingMode>
151.2198 +                              <locked>false</locked>
151.2199 +                              <visible>false</visible>
151.2200 +                              <shapes/>
151.2201 +                              <effects/>
151.2202 +                           </layer>
151.2203 +                        </templateLayer>
151.2204 +                     </canvas>
151.2205 +                  </state>
151.2206 +                  <state stateKeys="Focused">
151.2207 +                     <style>
151.2208 +                        <textForeground/>
151.2209 +                        <textBackground/>
151.2210 +                        <background/>
151.2211 +                        <uiproperties/>
151.2212 +                     </style>
151.2213 +                     <canvas>
151.2214 +                        <size width="18" height="18"/>
151.2215 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.2216 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.2217 +                        <layer name="Button">
151.2218 +                           <opacity>1.0</opacity>
151.2219 +                           <fillOpacity>1.0</fillOpacity>
151.2220 +                           <blendingMode>NORMAL</blendingMode>
151.2221 +                           <locked>false</locked>
151.2222 +                           <visible>true</visible>
151.2223 +                           <shapes>
151.2224 +                              <ellipse x1="3.0" x2="15.0" y1="3.0" y2="15.0">
151.2225 +                                 <gradient cycleMethod="NO_CYCLE">
151.2226 +                                    <stop position="0.06344411" midpoint="0.5">
151.2227 +                                       <matte red="250" green="250" blue="251" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10654225" brightnessOffset="0.23921567" alphaOffset="0"/>
151.2228 +                                    </stop>
151.2229 +                                    <stop position="0.43674698" midpoint="0.5">
151.2230 +                                       <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
151.2231 +                                    </stop>
151.2232 +                                    <stop position="0.52409637" midpoint="0.5">
151.2233 +                                       <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
151.2234 +                                    </stop>
151.2235 +                                    <stop position="0.88554215" midpoint="0.5">
151.2236 +                                       <matte red="225" green="228" blue="234" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07206477" brightnessOffset="0.17254901" alphaOffset="0"/>
151.2237 +                                    </stop>
151.2238 +                                 </gradient>
151.2239 +                                 <paintPoints x1="0.49754901960784303" y1="0.004901960784313727" x2="0.507352941176471" y2="1.0"/>
151.2240 +                              </ellipse>
151.2241 +                              <ellipse x1="2.0" x2="16.0" y1="2.0" y2="16.0">
151.2242 +                                 <gradient cycleMethod="NO_CYCLE">
151.2243 +                                    <stop position="0.0" midpoint="0.5">
151.2244 +                                       <matte red="148" green="151" blue="157" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.053201474" brightnessOffset="-0.12941176" alphaOffset="0"/>
151.2245 +                                    </stop>
151.2246 +                                    <stop position="1.0" midpoint="0.5">
151.2247 +                                       <matte red="68" green="71" blue="77" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.006356798" brightnessOffset="-0.44313726" alphaOffset="0"/>
151.2248 +                                    </stop>
151.2249 +                                 </gradient>
151.2250 +                                 <paintPoints x1="0.49789915966386533" y1="-0.0042016806722689065" x2="0.5000000000000002" y2="0.9978991596638656"/>
151.2251 +                              </ellipse>
151.2252 +                              <ellipse x1="0.6" x2="17.4" y1="0.6" y2="17.4">
151.2253 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.2254 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.2255 +                              </ellipse>
151.2256 +                           </shapes>
151.2257 +                           <effects/>
151.2258 +                        </layer>
151.2259 +                     </canvas>
151.2260 +                  </state>
151.2261 +                  <state stateKeys="MouseOver">
151.2262 +                     <style>
151.2263 +                        <textForeground/>
151.2264 +                        <textBackground/>
151.2265 +                        <background/>
151.2266 +                        <uiproperties/>
151.2267 +                     </style>
151.2268 +                     <canvas>
151.2269 +                        <size width="18" height="18"/>
151.2270 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.2271 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.2272 +                        <layer name="Button">
151.2273 +                           <opacity>1.0</opacity>
151.2274 +                           <fillOpacity>1.0</fillOpacity>
151.2275 +                           <blendingMode>NORMAL</blendingMode>
151.2276 +                           <locked>false</locked>
151.2277 +                           <visible>true</visible>
151.2278 +                           <shapes>
151.2279 +                              <ellipse x1="3.0" x2="15.0" y1="3.0" y2="15.0">
151.2280 +                                 <gradient cycleMethod="NO_CYCLE">
151.2281 +                                    <stop position="0.06344411" midpoint="0.5">
151.2282 +                                       <matte red="251" green="252" blue="252" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.111111104" saturationOffset="-0.10655806" brightnessOffset="0.24313724" alphaOffset="0"/>
151.2283 +                                    </stop>
151.2284 +                                    <stop position="0.36858007" midpoint="0.5">
151.2285 +                                       <matte red="233" green="236" blue="242" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07333623" brightnessOffset="0.20392156" alphaOffset="0"/>
151.2286 +                                    </stop>
151.2287 +                                    <stop position="0.72809666" midpoint="0.5">
151.2288 +                                       <matte red="233" green="236" blue="242" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07333623" brightnessOffset="0.20392156" alphaOffset="0"/>
151.2289 +                                    </stop>
151.2290 +                                    <stop position="0.82175225" midpoint="0.5">
151.2291 +                                       <matte red="246" green="244" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.08585858" saturationOffset="-0.067389056" brightnessOffset="0.25490195" alphaOffset="0"/>
151.2292 +                                    </stop>
151.2293 +                                    <stop position="1.0" midpoint="0.5">
151.2294 +                                       <matte red="235" green="236" blue="236" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.111111104" saturationOffset="-0.10628903" brightnessOffset="0.18039215" alphaOffset="0"/>
151.2295 +                                    </stop>
151.2296 +                                 </gradient>
151.2297 +                                 <paintPoints x1="0.49754901960784303" y1="0.004901960784313727" x2="0.507352941176471" y2="1.0"/>
151.2298 +                              </ellipse>
151.2299 +                              <ellipse x1="2.0" x2="16.0" y1="2.0" y2="16.0">
151.2300 +                                 <gradient cycleMethod="NO_CYCLE">
151.2301 +                                    <stop position="0.0" midpoint="0.5">
151.2302 +                                       <matte red="122" green="126" blue="133" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.00505054" saturationOffset="-0.027819552" brightnessOffset="-0.2235294" alphaOffset="0"/>
151.2303 +                                    </stop>
151.2304 +                                    <stop position="1.0" midpoint="0.5">
151.2305 +                                       <matte red="22" green="26" blue="34" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.24241486" brightnessOffset="-0.6117647" alphaOffset="0"/>
151.2306 +                                    </stop>
151.2307 +                                 </gradient>
151.2308 +                                 <paintPoints x1="0.49789915966386533" y1="-0.0042016806722689065" x2="0.5000000000000002" y2="0.9978991596638656"/>
151.2309 +                              </ellipse>
151.2310 +                           </shapes>
151.2311 +                           <effects/>
151.2312 +                        </layer>
151.2313 +                        <layer name="Shadow">
151.2314 +                           <opacity>1.0</opacity>
151.2315 +                           <fillOpacity>1.0</fillOpacity>
151.2316 +                           <blendingMode>NORMAL</blendingMode>
151.2317 +                           <locked>false</locked>
151.2318 +                           <visible>true</visible>
151.2319 +                           <shapes>
151.2320 +                              <ellipse x1="2.0" x2="16.0" y1="3.0" y2="17.0">
151.2321 +                                 <matte red="169" green="176" blue="190" alpha="143" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="-112"/>
151.2322 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.2323 +                              </ellipse>
151.2324 +                           </shapes>
151.2325 +                           <effects/>
151.2326 +                        </layer>
151.2327 +                        <templateLayer fileName="1138de7a9a7.png">
151.2328 +                           <layer name="Template" type="template">
151.2329 +                              <opacity>1.0</opacity>
151.2330 +                              <fillOpacity>1.0</fillOpacity>
151.2331 +                              <blendingMode>NORMAL</blendingMode>
151.2332 +                              <locked>false</locked>
151.2333 +                              <visible>false</visible>
151.2334 +                              <shapes/>
151.2335 +                              <effects/>
151.2336 +                           </layer>
151.2337 +                        </templateLayer>
151.2338 +                     </canvas>
151.2339 +                  </state>
151.2340 +                  <state stateKeys="MouseOver+Focused">
151.2341 +                     <style>
151.2342 +                        <textForeground/>
151.2343 +                        <textBackground/>
151.2344 +                        <background/>
151.2345 +                        <uiproperties/>
151.2346 +                     </style>
151.2347 +                     <canvas>
151.2348 +                        <size width="18" height="18"/>
151.2349 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.2350 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.2351 +                        <layer name="Button">
151.2352 +                           <opacity>1.0</opacity>
151.2353 +                           <fillOpacity>1.0</fillOpacity>
151.2354 +                           <blendingMode>NORMAL</blendingMode>
151.2355 +                           <locked>false</locked>
151.2356 +                           <visible>true</visible>
151.2357 +                           <shapes>
151.2358 +                              <ellipse x1="3.0" x2="15.0" y1="3.0" y2="15.0">
151.2359 +                                 <gradient cycleMethod="NO_CYCLE">
151.2360 +                                    <stop position="0.06344411" midpoint="0.5">
151.2361 +                                       <matte red="251" green="252" blue="252" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.111111104" saturationOffset="-0.10655806" brightnessOffset="0.24313724" alphaOffset="0"/>
151.2362 +                                    </stop>
151.2363 +                                    <stop position="0.36858007" midpoint="0.5">
151.2364 +                                       <matte red="233" green="236" blue="242" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07333623" brightnessOffset="0.20392156" alphaOffset="0"/>
151.2365 +                                    </stop>
151.2366 +                                    <stop position="0.72809666" midpoint="0.5">
151.2367 +                                       <matte red="233" green="236" blue="242" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07333623" brightnessOffset="0.20392156" alphaOffset="0"/>
151.2368 +                                    </stop>
151.2369 +                                    <stop position="0.82175225" midpoint="0.5">
151.2370 +                                       <matte red="246" green="244" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.08585858" saturationOffset="-0.067389056" brightnessOffset="0.25490195" alphaOffset="0"/>
151.2371 +                                    </stop>
151.2372 +                                    <stop position="1.0" midpoint="0.5">
151.2373 +                                       <matte red="235" green="236" blue="236" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.111111104" saturationOffset="-0.10628903" brightnessOffset="0.18039215" alphaOffset="0"/>
151.2374 +                                    </stop>
151.2375 +                                 </gradient>
151.2376 +                                 <paintPoints x1="0.49754901960784303" y1="0.004901960784313727" x2="0.507352941176471" y2="1.0"/>
151.2377 +                              </ellipse>
151.2378 +                              <ellipse x1="2.0" x2="16.0" y1="2.0" y2="16.0">
151.2379 +                                 <gradient cycleMethod="NO_CYCLE">
151.2380 +                                    <stop position="0.0" midpoint="0.5">
151.2381 +                                       <matte red="122" green="126" blue="133" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.00505054" saturationOffset="-0.027819552" brightnessOffset="-0.2235294" alphaOffset="0"/>
151.2382 +                                    </stop>
151.2383 +                                    <stop position="1.0" midpoint="0.5">
151.2384 +                                       <matte red="22" green="26" blue="34" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.24241486" brightnessOffset="-0.6117647" alphaOffset="0"/>
151.2385 +                                    </stop>
151.2386 +                                 </gradient>
151.2387 +                                 <paintPoints x1="0.49789915966386533" y1="-0.0042016806722689065" x2="0.5000000000000002" y2="0.9978991596638656"/>
151.2388 +                              </ellipse>
151.2389 +                              <ellipse x1="0.6" x2="17.4" y1="0.6" y2="17.4">
151.2390 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.2391 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.2392 +                              </ellipse>
151.2393 +                           </shapes>
151.2394 +                           <effects/>
151.2395 +                        </layer>
151.2396 +                     </canvas>
151.2397 +                  </state>
151.2398 +                  <state stateKeys="Pressed">
151.2399 +                     <style>
151.2400 +                        <textForeground/>
151.2401 +                        <textBackground/>
151.2402 +                        <background/>
151.2403 +                        <uiproperties/>
151.2404 +                     </style>
151.2405 +                     <canvas>
151.2406 +                        <size width="18" height="18"/>
151.2407 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.2408 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.2409 +                        <layer name="Button">
151.2410 +                           <opacity>1.0</opacity>
151.2411 +                           <fillOpacity>1.0</fillOpacity>
151.2412 +                           <blendingMode>NORMAL</blendingMode>
151.2413 +                           <locked>false</locked>
151.2414 +                           <visible>true</visible>
151.2415 +                           <shapes>
151.2416 +                              <ellipse x1="3.0" x2="15.0" y1="3.0" y2="15.0">
151.2417 +                                 <gradient cycleMethod="NO_CYCLE">
151.2418 +                                    <stop position="0.06344411" midpoint="0.5">
151.2419 +                                       <matte red="206" green="209" blue="215" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06866585" brightnessOffset="0.09803921" alphaOffset="0"/>
151.2420 +                                    </stop>
151.2421 +                                    <stop position="0.35240963" midpoint="0.5">
151.2422 +                                       <matte red="164" green="171" blue="184" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0027777553" saturationOffset="-0.0018306673" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.2423 +                                    </stop>
151.2424 +                                    <stop position="0.5481928" midpoint="0.5">
151.2425 +                                       <matte red="164" green="171" blue="184" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0027777553" saturationOffset="-0.0018306673" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.2426 +                                    </stop>
151.2427 +                                    <stop position="0.9487952" midpoint="0.5">
151.2428 +                                       <matte red="192" green="198" blue="211" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.002924025" saturationOffset="-0.02047892" brightnessOffset="0.082352936" alphaOffset="0"/>
151.2429 +                                    </stop>
151.2430 +                                 </gradient>
151.2431 +                                 <paintPoints x1="0.49754901960784303" y1="0.004901960784313727" x2="0.507352941176471" y2="1.0"/>
151.2432 +                              </ellipse>
151.2433 +                              <ellipse x1="2.0" x2="16.0" y1="2.0" y2="16.0">
151.2434 +                                 <gradient cycleMethod="NO_CYCLE">
151.2435 +                                    <stop position="0.0" midpoint="0.5">
151.2436 +                                       <matte red="13" green="13" blue="20" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="0.23947367" brightnessOffset="-0.6666667" alphaOffset="0"/>
151.2437 +                                    </stop>
151.2438 +                                    <stop position="1.0" midpoint="0.5">
151.2439 +                                       <matte red="113" green="117" blue="118" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0777778" saturationOffset="-0.06815343" brightnessOffset="-0.28235295" alphaOffset="0"/>
151.2440 +                                    </stop>
151.2441 +                                 </gradient>
151.2442 +                                 <paintPoints x1="0.49789915966386533" y1="-0.0042016806722689065" x2="0.5000000000000002" y2="0.9978991596638656"/>
151.2443 +                              </ellipse>
151.2444 +                           </shapes>
151.2445 +                           <effects/>
151.2446 +                        </layer>
151.2447 +                        <layer name="Shadow">
151.2448 +                           <opacity>1.0</opacity>
151.2449 +                           <fillOpacity>1.0</fillOpacity>
151.2450 +                           <blendingMode>NORMAL</blendingMode>
151.2451 +                           <locked>false</locked>
151.2452 +                           <visible>true</visible>
151.2453 +                           <shapes>
151.2454 +                              <ellipse x1="2.0" x2="16.0" y1="3.0" y2="17.0">
151.2455 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.2456 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.2457 +                              </ellipse>
151.2458 +                           </shapes>
151.2459 +                           <effects/>
151.2460 +                        </layer>
151.2461 +                        <templateLayer fileName="1138e896368.png">
151.2462 +                           <layer name="Template" type="template">
151.2463 +                              <opacity>1.0</opacity>
151.2464 +                              <fillOpacity>1.0</fillOpacity>
151.2465 +                              <blendingMode>NORMAL</blendingMode>
151.2466 +                              <locked>false</locked>
151.2467 +                              <visible>false</visible>
151.2468 +                              <shapes/>
151.2469 +                              <effects/>
151.2470 +                           </layer>
151.2471 +                        </templateLayer>
151.2472 +                     </canvas>
151.2473 +                  </state>
151.2474 +                  <state stateKeys="Pressed+Focused">
151.2475 +                     <style>
151.2476 +                        <textForeground/>
151.2477 +                        <textBackground/>
151.2478 +                        <background/>
151.2479 +                        <uiproperties/>
151.2480 +                     </style>
151.2481 +                     <canvas>
151.2482 +                        <size width="18" height="18"/>
151.2483 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.2484 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.2485 +                        <layer name="Button">
151.2486 +                           <opacity>1.0</opacity>
151.2487 +                           <fillOpacity>1.0</fillOpacity>
151.2488 +                           <blendingMode>NORMAL</blendingMode>
151.2489 +                           <locked>false</locked>
151.2490 +                           <visible>true</visible>
151.2491 +                           <shapes>
151.2492 +                              <ellipse x1="3.0" x2="15.0" y1="3.0" y2="15.0">
151.2493 +                                 <gradient cycleMethod="NO_CYCLE">
151.2494 +                                    <stop position="0.06344411" midpoint="0.5">
151.2495 +                                       <matte red="206" green="209" blue="215" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06866585" brightnessOffset="0.09803921" alphaOffset="0"/>
151.2496 +                                    </stop>
151.2497 +                                    <stop position="0.35240963" midpoint="0.5">
151.2498 +                                       <matte red="164" green="171" blue="184" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0027777553" saturationOffset="-0.0018306673" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.2499 +                                    </stop>
151.2500 +                                    <stop position="0.5481928" midpoint="0.5">
151.2501 +                                       <matte red="164" green="171" blue="184" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0027777553" saturationOffset="-0.0018306673" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.2502 +                                    </stop>
151.2503 +                                    <stop position="0.9487952" midpoint="0.5">
151.2504 +                                       <matte red="192" green="198" blue="211" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.002924025" saturationOffset="-0.02047892" brightnessOffset="0.082352936" alphaOffset="0"/>
151.2505 +                                    </stop>
151.2506 +                                 </gradient>
151.2507 +                                 <paintPoints x1="0.49754901960784303" y1="0.004901960784313727" x2="0.507352941176471" y2="1.0"/>
151.2508 +                              </ellipse>
151.2509 +                              <ellipse x1="2.0" x2="16.0" y1="2.0" y2="16.0">
151.2510 +                                 <gradient cycleMethod="NO_CYCLE">
151.2511 +                                    <stop position="0.0" midpoint="0.5">
151.2512 +                                       <matte red="13" green="13" blue="20" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="0.23947367" brightnessOffset="-0.6666667" alphaOffset="0"/>
151.2513 +                                    </stop>
151.2514 +                                    <stop position="1.0" midpoint="0.5">
151.2515 +                                       <matte red="113" green="117" blue="118" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0777778" saturationOffset="-0.06815343" brightnessOffset="-0.28235295" alphaOffset="0"/>
151.2516 +                                    </stop>
151.2517 +                                 </gradient>
151.2518 +                                 <paintPoints x1="0.49789915966386533" y1="-0.0042016806722689065" x2="0.5000000000000002" y2="0.9978991596638656"/>
151.2519 +                              </ellipse>
151.2520 +                              <ellipse x1="0.6" x2="17.4" y1="0.6" y2="17.4">
151.2521 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.2522 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.2523 +                              </ellipse>
151.2524 +                           </shapes>
151.2525 +                           <effects/>
151.2526 +                        </layer>
151.2527 +                     </canvas>
151.2528 +                  </state>
151.2529 +                  <state stateKeys="Selected">
151.2530 +                     <style>
151.2531 +                        <textForeground/>
151.2532 +                        <textBackground/>
151.2533 +                        <background/>
151.2534 +                        <uiproperties/>
151.2535 +                     </style>
151.2536 +                     <canvas>
151.2537 +                        <size width="18" height="18"/>
151.2538 +                        <nextLayerNameIndex>4</nextLayerNameIndex>
151.2539 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.2540 +                        <layer name="Button">
151.2541 +                           <opacity>1.0</opacity>
151.2542 +                           <fillOpacity>1.0</fillOpacity>
151.2543 +                           <blendingMode>NORMAL</blendingMode>
151.2544 +                           <locked>false</locked>
151.2545 +                           <visible>true</visible>
151.2546 +                           <shapes>
151.2547 +                              <ellipse x1="6.0" x2="12.0" y1="6.0" y2="12.0">
151.2548 +                                 <gradient cycleMethod="NO_CYCLE">
151.2549 +                                    <stop position="0.0" midpoint="0.5">
151.2550 +                                       <matte red="101" green="103" blue="105" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.07243107" brightnessOffset="-0.33333334" alphaOffset="0"/>
151.2551 +                                    </stop>
151.2552 +                                    <stop position="0.46385542" midpoint="0.5">
151.2553 +                                       <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.74509805" alphaOffset="0"/>
151.2554 +                                    </stop>
151.2555 +                                    <stop position="1.0" midpoint="0.5">
151.2556 +                                       <matte red="27" green="30" blue="33" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="0.07129187" brightnessOffset="-0.6156863" alphaOffset="0"/>
151.2557 +                                    </stop>
151.2558 +                                 </gradient>
151.2559 +                                 <paintPoints x1="0.5049019607843137" y1="0.0" x2="0.4950980392156863" y2="1.0"/>
151.2560 +                              </ellipse>
151.2561 +                              <ellipse x1="3.0" x2="15.0" y1="3.0" y2="15.0">
151.2562 +                                 <gradient cycleMethod="NO_CYCLE">
151.2563 +                                    <stop position="0.0813253" midpoint="0.5">
151.2564 +                                       <matte red="244" green="246" blue="248" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6195853" brightnessOffset="0.4235294" alphaOffset="0"/>
151.2565 +                                    </stop>
151.2566 +                                    <stop position="0.12048193" midpoint="0.5">
151.2567 +                                       <matte red="217" green="225" blue="233" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.56704473" brightnessOffset="0.36470586" alphaOffset="0"/>
151.2568 +                                    </stop>
151.2569 +                                    <stop position="0.45783132" midpoint="0.5">
151.2570 +                                       <matte red="163" green="184" blue="203" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.43866998" brightnessOffset="0.24705881" alphaOffset="0"/>
151.2571 +                                    </stop>
151.2572 +                                    <stop position="0.77409637" midpoint="0.5">
151.2573 +                                       <matte red="163" green="184" blue="203" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.43866998" brightnessOffset="0.24705881" alphaOffset="0"/>
151.2574 +                                    </stop>
151.2575 +                                    <stop position="0.88554215" midpoint="0.5">
151.2576 +                                       <matte red="174" green="195" blue="214" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.44879842" brightnessOffset="0.29019606" alphaOffset="0"/>
151.2577 +                                    </stop>
151.2578 +                                 </gradient>
151.2579 +                                 <paintPoints x1="0.49754901960784303" y1="0.004901960784313727" x2="0.507352941176471" y2="1.0"/>
151.2580 +                              </ellipse>
151.2581 +                              <ellipse x1="2.0" x2="16.0" y1="2.0" y2="16.0">
151.2582 +                                 <gradient cycleMethod="NO_CYCLE">
151.2583 +                                    <stop position="0.0" midpoint="0.5">
151.2584 +                                       <matte red="100" green="120" blue="138" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="-0.36035198" brightnessOffset="-0.007843137" alphaOffset="0"/>
151.2585 +                                    </stop>
151.2586 +                                    <stop position="1.0" midpoint="0.5">
151.2587 +                                       <matte red="20" green="40" blue="58" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="0.019458115" brightnessOffset="-0.32156867" alphaOffset="0"/>
151.2588 +                                    </stop>
151.2589 +                                 </gradient>
151.2590 +                                 <paintPoints x1="0.49789915966386533" y1="-0.0042016806722689065" x2="0.5000000000000002" y2="0.9978991596638656"/>
151.2591 +                              </ellipse>
151.2592 +                           </shapes>
151.2593 +                           <effects/>
151.2594 +                        </layer>
151.2595 +                        <layer name="Shadow">
151.2596 +                           <opacity>1.0</opacity>
151.2597 +                           <fillOpacity>1.0</fillOpacity>
151.2598 +                           <blendingMode>NORMAL</blendingMode>
151.2599 +                           <locked>false</locked>
151.2600 +                           <visible>true</visible>
151.2601 +                           <shapes>
151.2602 +                              <ellipse x1="2.0" x2="16.0" y1="3.0" y2="17.0">
151.2603 +                                 <matte red="169" green="176" blue="190" alpha="143" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="-112"/>
151.2604 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.2605 +                              </ellipse>
151.2606 +                           </shapes>
151.2607 +                           <effects/>
151.2608 +                        </layer>
151.2609 +                        <templateLayer fileName="1138e15047c.png">
151.2610 +                           <layer name="Template" type="template">
151.2611 +                              <opacity>1.0</opacity>
151.2612 +                              <fillOpacity>1.0</fillOpacity>
151.2613 +                              <blendingMode>NORMAL</blendingMode>
151.2614 +                              <locked>false</locked>
151.2615 +                              <visible>false</visible>
151.2616 +                              <shapes/>
151.2617 +                              <effects/>
151.2618 +                           </layer>
151.2619 +                        </templateLayer>
151.2620 +                     </canvas>
151.2621 +                  </state>
151.2622 +                  <state stateKeys="Selected+Focused">
151.2623 +                     <style>
151.2624 +                        <textForeground/>
151.2625 +                        <textBackground/>
151.2626 +                        <background/>
151.2627 +                        <uiproperties/>
151.2628 +                     </style>
151.2629 +                     <canvas>
151.2630 +                        <size width="18" height="18"/>
151.2631 +                        <nextLayerNameIndex>4</nextLayerNameIndex>
151.2632 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.2633 +                        <layer name="Button">
151.2634 +                           <opacity>1.0</opacity>
151.2635 +                           <fillOpacity>1.0</fillOpacity>
151.2636 +                           <blendingMode>NORMAL</blendingMode>
151.2637 +                           <locked>false</locked>
151.2638 +                           <visible>true</visible>
151.2639 +                           <shapes>
151.2640 +                              <ellipse x1="6.0" x2="12.0" y1="6.0" y2="12.0">
151.2641 +                                 <gradient cycleMethod="NO_CYCLE">
151.2642 +                                    <stop position="0.0" midpoint="0.5">
151.2643 +                                       <matte red="101" green="103" blue="105" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.07243107" brightnessOffset="-0.33333334" alphaOffset="0"/>
151.2644 +                                    </stop>
151.2645 +                                    <stop position="0.46385542" midpoint="0.5">
151.2646 +                                       <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.74509805" alphaOffset="0"/>
151.2647 +                                    </stop>
151.2648 +                                    <stop position="1.0" midpoint="0.5">
151.2649 +                                       <matte red="27" green="30" blue="33" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="0.07129187" brightnessOffset="-0.6156863" alphaOffset="0"/>
151.2650 +                                    </stop>
151.2651 +                                 </gradient>
151.2652 +                                 <paintPoints x1="0.5049019607843137" y1="0.0" x2="0.4950980392156863" y2="1.0"/>
151.2653 +                              </ellipse>
151.2654 +                              <ellipse x1="3.0" x2="15.0" y1="3.0" y2="15.0">
151.2655 +                                 <gradient cycleMethod="NO_CYCLE">
151.2656 +                                    <stop position="0.0813253" midpoint="0.5">
151.2657 +                                       <matte red="244" green="246" blue="248" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6195853" brightnessOffset="0.4235294" alphaOffset="0"/>
151.2658 +                                    </stop>
151.2659 +                                    <stop position="0.12048193" midpoint="0.5">
151.2660 +                                       <matte red="217" green="225" blue="233" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.56704473" brightnessOffset="0.36470586" alphaOffset="0"/>
151.2661 +                                    </stop>
151.2662 +                                    <stop position="0.45783132" midpoint="0.5">
151.2663 +                                       <matte red="163" green="184" blue="203" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.43866998" brightnessOffset="0.24705881" alphaOffset="0"/>
151.2664 +                                    </stop>
151.2665 +                                    <stop position="0.77409637" midpoint="0.5">
151.2666 +                                       <matte red="163" green="184" blue="203" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.43866998" brightnessOffset="0.24705881" alphaOffset="0"/>
151.2667 +                                    </stop>
151.2668 +                                    <stop position="0.88554215" midpoint="0.5">
151.2669 +                                       <matte red="174" green="195" blue="214" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.44879842" brightnessOffset="0.29019606" alphaOffset="0"/>
151.2670 +                                    </stop>
151.2671 +                                 </gradient>
151.2672 +                                 <paintPoints x1="0.49754901960784303" y1="0.004901960784313727" x2="0.507352941176471" y2="1.0"/>
151.2673 +                              </ellipse>
151.2674 +                              <ellipse x1="2.0" x2="16.0" y1="2.0" y2="16.0">
151.2675 +                                 <gradient cycleMethod="NO_CYCLE">
151.2676 +                                    <stop position="0.0" midpoint="0.5">
151.2677 +                                       <matte red="100" green="120" blue="138" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="-0.36035198" brightnessOffset="-0.007843137" alphaOffset="0"/>
151.2678 +                                    </stop>
151.2679 +                                    <stop position="1.0" midpoint="0.5">
151.2680 +                                       <matte red="20" green="40" blue="58" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="0.019458115" brightnessOffset="-0.32156867" alphaOffset="0"/>
151.2681 +                                    </stop>
151.2682 +                                 </gradient>
151.2683 +                                 <paintPoints x1="0.49789915966386533" y1="-0.0042016806722689065" x2="0.5000000000000002" y2="0.9978991596638656"/>
151.2684 +                              </ellipse>
151.2685 +                              <ellipse x1="0.6" x2="17.4" y1="0.6" y2="17.4">
151.2686 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.2687 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.2688 +                              </ellipse>
151.2689 +                           </shapes>
151.2690 +                           <effects/>
151.2691 +                        </layer>
151.2692 +                     </canvas>
151.2693 +                  </state>
151.2694 +                  <state stateKeys="Pressed+Selected">
151.2695 +                     <style>
151.2696 +                        <textForeground/>
151.2697 +                        <textBackground/>
151.2698 +                        <background/>
151.2699 +                        <uiproperties/>
151.2700 +                     </style>
151.2701 +                     <canvas>
151.2702 +                        <size width="18" height="18"/>
151.2703 +                        <nextLayerNameIndex>4</nextLayerNameIndex>
151.2704 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.2705 +                        <layer name="Button">
151.2706 +                           <opacity>1.0</opacity>
151.2707 +                           <fillOpacity>1.0</fillOpacity>
151.2708 +                           <blendingMode>NORMAL</blendingMode>
151.2709 +                           <locked>false</locked>
151.2710 +                           <visible>true</visible>
151.2711 +                           <shapes>
151.2712 +                              <ellipse x1="6.0" x2="12.0" y1="6.0" y2="12.0">
151.2713 +                                 <gradient cycleMethod="NO_CYCLE">
151.2714 +                                    <stop position="0.0" midpoint="0.5">
151.2715 +                                       <matte red="64" green="65" blue="66" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.080223285" brightnessOffset="-0.4862745" alphaOffset="0"/>
151.2716 +                                    </stop>
151.2717 +                                    <stop position="0.46385542" midpoint="0.5">
151.2718 +                                       <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.74509805" alphaOffset="0"/>
151.2719 +                                    </stop>
151.2720 +                                    <stop position="1.0" midpoint="0.5">
151.2721 +                                       <matte red="27" green="30" blue="33" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="0.07129187" brightnessOffset="-0.6156863" alphaOffset="0"/>
151.2722 +                                    </stop>
151.2723 +                                 </gradient>
151.2724 +                                 <paintPoints x1="0.5049019607843137" y1="0.0" x2="0.4950980392156863" y2="1.0"/>
151.2725 +                              </ellipse>
151.2726 +                              <ellipse x1="3.0" x2="15.0" y1="3.0" y2="15.0">
151.2727 +                                 <gradient cycleMethod="NO_CYCLE">
151.2728 +                                    <stop position="0.039156627" midpoint="0.5">
151.2729 +                                       <matte red="157" green="178" blue="196" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0017285943" saturationOffset="-0.4367347" brightnessOffset="0.21960783" alphaOffset="0"/>
151.2730 +                                    </stop>
151.2731 +                                    <stop position="0.11746988" midpoint="0.5">
151.2732 +                                       <matte red="122" green="153" blue="180" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0010654926" saturationOffset="-0.31349206" brightnessOffset="0.15686274" alphaOffset="0"/>
151.2733 +                                    </stop>
151.2734 +                                    <stop position="0.45783132" midpoint="0.5">
151.2735 +                                       <matte red="51" green="98" blue="140" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.2736 +                                    </stop>
151.2737 +                                    <stop position="0.66566265" midpoint="0.5">
151.2738 +                                       <matte red="51" green="98" blue="140" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.2739 +                                    </stop>
151.2740 +                                    <stop position="0.88554215" midpoint="0.5">
151.2741 +                                       <matte red="82" green="127" blue="168" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="8.05676E-4" saturationOffset="-0.12380952" brightnessOffset="0.109803915" alphaOffset="0"/>
151.2742 +                                    </stop>
151.2743 +                                 </gradient>
151.2744 +                                 <paintPoints x1="0.49754901960784303" y1="0.004901960784313727" x2="0.507352941176471" y2="1.0"/>
151.2745 +                              </ellipse>
151.2746 +                              <ellipse x1="2.0" x2="16.0" y1="2.0" y2="16.0">
151.2747 +                                 <gradient cycleMethod="NO_CYCLE">
151.2748 +                                    <stop position="0.0" midpoint="0.5">
151.2749 +                                       <matte red="13" green="13" blue="13" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.49803925" alphaOffset="0"/>
151.2750 +                                    </stop>
151.2751 +                                    <stop position="1.0" midpoint="0.5">
151.2752 +                                       <matte red="20" green="40" blue="58" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="0.019458115" brightnessOffset="-0.32156867" alphaOffset="0"/>
151.2753 +                                    </stop>
151.2754 +                                    <stop position="1.0" midpoint="0.5">
151.2755 +                                       <matte red="49" green="75" blue="100" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0030477047" saturationOffset="-0.1257143" brightnessOffset="-0.15686277" alphaOffset="0"/>
151.2756 +                                    </stop>
151.2757 +                                 </gradient>
151.2758 +                                 <paintPoints x1="0.49789915966386533" y1="-0.0042016806722689065" x2="0.5000000000000002" y2="0.9978991596638656"/>
151.2759 +                              </ellipse>
151.2760 +                           </shapes>
151.2761 +                           <effects/>
151.2762 +                        </layer>
151.2763 +                        <layer name="Shadow">
151.2764 +                           <opacity>1.0</opacity>
151.2765 +                           <fillOpacity>1.0</fillOpacity>
151.2766 +                           <blendingMode>NORMAL</blendingMode>
151.2767 +                           <locked>false</locked>
151.2768 +                           <visible>true</visible>
151.2769 +                           <shapes>
151.2770 +                              <ellipse x1="2.0" x2="16.0" y1="3.0" y2="17.0">
151.2771 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.2772 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.2773 +                              </ellipse>
151.2774 +                           </shapes>
151.2775 +                           <effects/>
151.2776 +                        </layer>
151.2777 +                        <templateLayer fileName="1138e817331.png">
151.2778 +                           <layer name="Template" type="template">
151.2779 +                              <opacity>1.0</opacity>
151.2780 +                              <fillOpacity>1.0</fillOpacity>
151.2781 +                              <blendingMode>NORMAL</blendingMode>
151.2782 +                              <locked>false</locked>
151.2783 +                              <visible>false</visible>
151.2784 +                              <shapes/>
151.2785 +                              <effects/>
151.2786 +                           </layer>
151.2787 +                        </templateLayer>
151.2788 +                     </canvas>
151.2789 +                  </state>
151.2790 +                  <state stateKeys="Pressed+Selected+Focused">
151.2791 +                     <style>
151.2792 +                        <textForeground/>
151.2793 +                        <textBackground/>
151.2794 +                        <background/>
151.2795 +                        <uiproperties/>
151.2796 +                     </style>
151.2797 +                     <canvas>
151.2798 +                        <size width="18" height="18"/>
151.2799 +                        <nextLayerNameIndex>4</nextLayerNameIndex>
151.2800 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.2801 +                        <layer name="Button">
151.2802 +                           <opacity>1.0</opacity>
151.2803 +                           <fillOpacity>1.0</fillOpacity>
151.2804 +                           <blendingMode>NORMAL</blendingMode>
151.2805 +                           <locked>false</locked>
151.2806 +                           <visible>true</visible>
151.2807 +                           <shapes>
151.2808 +                              <ellipse x1="6.0" x2="12.0" y1="6.0" y2="12.0">
151.2809 +                                 <gradient cycleMethod="NO_CYCLE">
151.2810 +                                    <stop position="0.0" midpoint="0.5">
151.2811 +                                       <matte red="64" green="65" blue="66" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.080223285" brightnessOffset="-0.4862745" alphaOffset="0"/>
151.2812 +                                    </stop>
151.2813 +                                    <stop position="0.46385542" midpoint="0.5">
151.2814 +                                       <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.74509805" alphaOffset="0"/>
151.2815 +                                    </stop>
151.2816 +                                    <stop position="1.0" midpoint="0.5">
151.2817 +                                       <matte red="27" green="30" blue="33" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="0.07129187" brightnessOffset="-0.6156863" alphaOffset="0"/>
151.2818 +                                    </stop>
151.2819 +                                 </gradient>
151.2820 +                                 <paintPoints x1="0.5049019607843137" y1="0.0" x2="0.4950980392156863" y2="1.0"/>
151.2821 +                              </ellipse>
151.2822 +                              <ellipse x1="3.0" x2="15.0" y1="3.0" y2="15.0">
151.2823 +                                 <gradient cycleMethod="NO_CYCLE">
151.2824 +                                    <stop position="0.039156627" midpoint="0.5">
151.2825 +                                       <matte red="157" green="178" blue="196" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0017285943" saturationOffset="-0.4367347" brightnessOffset="0.21960783" alphaOffset="0"/>
151.2826 +                                    </stop>
151.2827 +                                    <stop position="0.11746988" midpoint="0.5">
151.2828 +                                       <matte red="122" green="153" blue="180" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0010654926" saturationOffset="-0.31349206" brightnessOffset="0.15686274" alphaOffset="0"/>
151.2829 +                                    </stop>
151.2830 +                                    <stop position="0.45783132" midpoint="0.5">
151.2831 +                                       <matte red="51" green="98" blue="140" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.2832 +                                    </stop>
151.2833 +                                    <stop position="0.66566265" midpoint="0.5">
151.2834 +                                       <matte red="51" green="98" blue="140" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.2835 +                                    </stop>
151.2836 +                                    <stop position="0.88554215" midpoint="0.5">
151.2837 +                                       <matte red="82" green="127" blue="168" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="8.05676E-4" saturationOffset="-0.12380952" brightnessOffset="0.109803915" alphaOffset="0"/>
151.2838 +                                    </stop>
151.2839 +                                 </gradient>
151.2840 +                                 <paintPoints x1="0.49754901960784303" y1="0.004901960784313727" x2="0.507352941176471" y2="1.0"/>
151.2841 +                              </ellipse>
151.2842 +                              <ellipse x1="2.0" x2="16.0" y1="2.0" y2="16.0">
151.2843 +                                 <gradient cycleMethod="NO_CYCLE">
151.2844 +                                    <stop position="0.0" midpoint="0.5">
151.2845 +                                       <matte red="13" green="13" blue="13" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.49803925" alphaOffset="0"/>
151.2846 +                                    </stop>
151.2847 +                                    <stop position="1.0" midpoint="0.5">
151.2848 +                                       <matte red="20" green="40" blue="58" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="0.019458115" brightnessOffset="-0.32156867" alphaOffset="0"/>
151.2849 +                                    </stop>
151.2850 +                                    <stop position="1.0" midpoint="0.5">
151.2851 +                                       <matte red="49" green="75" blue="100" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0030477047" saturationOffset="-0.1257143" brightnessOffset="-0.15686277" alphaOffset="0"/>
151.2852 +                                    </stop>
151.2853 +                                 </gradient>
151.2854 +                                 <paintPoints x1="0.49789915966386533" y1="-0.0042016806722689065" x2="0.5000000000000002" y2="0.9978991596638656"/>
151.2855 +                              </ellipse>
151.2856 +                              <ellipse x1="0.6" x2="17.4" y1="0.6" y2="17.4">
151.2857 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.2858 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.2859 +                              </ellipse>
151.2860 +                           </shapes>
151.2861 +                           <effects/>
151.2862 +                        </layer>
151.2863 +                     </canvas>
151.2864 +                  </state>
151.2865 +                  <state stateKeys="MouseOver+Selected">
151.2866 +                     <style>
151.2867 +                        <textForeground/>
151.2868 +                        <textBackground/>
151.2869 +                        <background/>
151.2870 +                        <uiproperties/>
151.2871 +                     </style>
151.2872 +                     <canvas>
151.2873 +                        <size width="18" height="18"/>
151.2874 +                        <nextLayerNameIndex>4</nextLayerNameIndex>
151.2875 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.2876 +                        <layer name="Button">
151.2877 +                           <opacity>1.0</opacity>
151.2878 +                           <fillOpacity>1.0</fillOpacity>
151.2879 +                           <blendingMode>NORMAL</blendingMode>
151.2880 +                           <locked>false</locked>
151.2881 +                           <visible>true</visible>
151.2882 +                           <shapes>
151.2883 +                              <ellipse x1="6.0" x2="12.0" y1="6.0" y2="12.0">
151.2884 +                                 <gradient cycleMethod="NO_CYCLE">
151.2885 +                                    <stop position="0.0" midpoint="0.5">
151.2886 +                                       <matte red="101" green="103" blue="105" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.07243107" brightnessOffset="-0.33333334" alphaOffset="0"/>
151.2887 +                                    </stop>
151.2888 +                                    <stop position="0.46385542" midpoint="0.5">
151.2889 +                                       <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.74509805" alphaOffset="0"/>
151.2890 +                                    </stop>
151.2891 +                                    <stop position="1.0" midpoint="0.5">
151.2892 +                                       <matte red="27" green="30" blue="33" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="0.07129187" brightnessOffset="-0.6156863" alphaOffset="0"/>
151.2893 +                                    </stop>
151.2894 +                                 </gradient>
151.2895 +                                 <paintPoints x1="0.5049019607843137" y1="0.0" x2="0.4950980392156863" y2="1.0"/>
151.2896 +                              </ellipse>
151.2897 +                              <ellipse x1="3.0" x2="15.0" y1="3.0" y2="15.0">
151.2898 +                                 <gradient cycleMethod="NO_CYCLE">
151.2899 +                                    <stop position="0.0813253" midpoint="0.5">
151.2900 +                                       <matte red="245" green="248" blue="250" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.011985004" saturationOffset="-0.6157143" brightnessOffset="0.43137252" alphaOffset="0"/>
151.2901 +                                    </stop>
151.2902 +                                    <stop position="0.12048193" midpoint="0.5">
151.2903 +                                       <matte red="225" green="233" blue="241" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.56932425" brightnessOffset="0.3960784" alphaOffset="0"/>
151.2904 +                                    </stop>
151.2905 +                                    <stop position="0.28313252" midpoint="0.5">
151.2906 +                                       <matte red="182" green="203" blue="222" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4555341" brightnessOffset="0.3215686" alphaOffset="0"/>
151.2907 +                                    </stop>
151.2908 +                                    <stop position="0.7018072" midpoint="0.5">
151.2909 +                                       <matte red="182" green="203" blue="222" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4555341" brightnessOffset="0.3215686" alphaOffset="0"/>
151.2910 +                                    </stop>
151.2911 +                                    <stop position="0.810241" midpoint="0.5">
151.2912 +                                       <matte red="195" green="216" blue="235" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.46550155" brightnessOffset="0.372549" alphaOffset="0"/>
151.2913 +                                    </stop>
151.2914 +                                    <stop position="0.88554215" midpoint="0.5">
151.2915 +                                       <matte red="190" green="209" blue="227" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0024294257" saturationOffset="-0.47271872" brightnessOffset="0.34117645" alphaOffset="0"/>
151.2916 +                                    </stop>
151.2917 +                                 </gradient>
151.2918 +                                 <paintPoints x1="0.49754901960784303" y1="0.004901960784313727" x2="0.507352941176471" y2="1.0"/>
151.2919 +                              </ellipse>
151.2920 +                              <ellipse x1="2.0" x2="16.0" y1="2.0" y2="16.0">
151.2921 +                                 <gradient cycleMethod="NO_CYCLE">
151.2922 +                                    <stop position="0.0" midpoint="0.5">
151.2923 +                                       <matte red="62" green="87" blue="109" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-6.374717E-4" saturationOffset="-0.20452163" brightnessOffset="-0.12156865" alphaOffset="0"/>
151.2924 +                                    </stop>
151.2925 +                                    <stop position="1.0" midpoint="0.5">
151.2926 +                                       <matte red="11" green="11" blue="11" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.5058824" alphaOffset="0"/>
151.2927 +                                    </stop>
151.2928 +                                 </gradient>
151.2929 +                                 <paintPoints x1="0.49789915966386533" y1="-0.0042016806722689065" x2="0.5000000000000002" y2="0.9978991596638656"/>
151.2930 +                              </ellipse>
151.2931 +                           </shapes>
151.2932 +                           <effects/>
151.2933 +                        </layer>
151.2934 +                        <layer name="Shadow">
151.2935 +                           <opacity>1.0</opacity>
151.2936 +                           <fillOpacity>1.0</fillOpacity>
151.2937 +                           <blendingMode>NORMAL</blendingMode>
151.2938 +                           <locked>false</locked>
151.2939 +                           <visible>true</visible>
151.2940 +                           <shapes>
151.2941 +                              <ellipse x1="2.0" x2="16.0" y1="3.0" y2="17.0">
151.2942 +                                 <matte red="169" green="176" blue="190" alpha="143" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="-112"/>
151.2943 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.2944 +                              </ellipse>
151.2945 +                           </shapes>
151.2946 +                           <effects/>
151.2947 +                        </layer>
151.2948 +                        <templateLayer fileName="1138e7b96f2.png">
151.2949 +                           <layer name="Template" type="template">
151.2950 +                              <opacity>1.0</opacity>
151.2951 +                              <fillOpacity>1.0</fillOpacity>
151.2952 +                              <blendingMode>NORMAL</blendingMode>
151.2953 +                              <locked>false</locked>
151.2954 +                              <visible>false</visible>
151.2955 +                              <shapes/>
151.2956 +                              <effects/>
151.2957 +                           </layer>
151.2958 +                        </templateLayer>
151.2959 +                     </canvas>
151.2960 +                  </state>
151.2961 +                  <state stateKeys="MouseOver+Selected+Focused">
151.2962 +                     <style>
151.2963 +                        <textForeground/>
151.2964 +                        <textBackground/>
151.2965 +                        <background/>
151.2966 +                        <uiproperties/>
151.2967 +                     </style>
151.2968 +                     <canvas>
151.2969 +                        <size width="18" height="18"/>
151.2970 +                        <nextLayerNameIndex>4</nextLayerNameIndex>
151.2971 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.2972 +                        <layer name="Button">
151.2973 +                           <opacity>1.0</opacity>
151.2974 +                           <fillOpacity>1.0</fillOpacity>
151.2975 +                           <blendingMode>NORMAL</blendingMode>
151.2976 +                           <locked>false</locked>
151.2977 +                           <visible>true</visible>
151.2978 +                           <shapes>
151.2979 +                              <ellipse x1="6.0" x2="12.0" y1="6.0" y2="12.0">
151.2980 +                                 <gradient cycleMethod="NO_CYCLE">
151.2981 +                                    <stop position="0.0" midpoint="0.5">
151.2982 +                                       <matte red="101" green="103" blue="105" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.07243107" brightnessOffset="-0.33333334" alphaOffset="0"/>
151.2983 +                                    </stop>
151.2984 +                                    <stop position="0.46385542" midpoint="0.5">
151.2985 +                                       <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.74509805" alphaOffset="0"/>
151.2986 +                                    </stop>
151.2987 +                                    <stop position="1.0" midpoint="0.5">
151.2988 +                                       <matte red="27" green="30" blue="33" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="0.07129187" brightnessOffset="-0.6156863" alphaOffset="0"/>
151.2989 +                                    </stop>
151.2990 +                                 </gradient>
151.2991 +                                 <paintPoints x1="0.5049019607843137" y1="0.0" x2="0.4950980392156863" y2="1.0"/>
151.2992 +                              </ellipse>
151.2993 +                              <ellipse x1="3.0" x2="15.0" y1="3.0" y2="15.0">
151.2994 +                                 <gradient cycleMethod="NO_CYCLE">
151.2995 +                                    <stop position="0.0813253" midpoint="0.5">
151.2996 +                                       <matte red="245" green="248" blue="250" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.011985004" saturationOffset="-0.6157143" brightnessOffset="0.43137252" alphaOffset="0"/>
151.2997 +                                    </stop>
151.2998 +                                    <stop position="0.12048193" midpoint="0.5">
151.2999 +                                       <matte red="225" green="233" blue="241" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.56932425" brightnessOffset="0.3960784" alphaOffset="0"/>
151.3000 +                                    </stop>
151.3001 +                                    <stop position="0.28313252" midpoint="0.5">
151.3002 +                                       <matte red="182" green="203" blue="222" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4555341" brightnessOffset="0.3215686" alphaOffset="0"/>
151.3003 +                                    </stop>
151.3004 +                                    <stop position="0.7018072" midpoint="0.5">
151.3005 +                                       <matte red="182" green="203" blue="222" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4555341" brightnessOffset="0.3215686" alphaOffset="0"/>
151.3006 +                                    </stop>
151.3007 +                                    <stop position="0.810241" midpoint="0.5">
151.3008 +                                       <matte red="195" green="216" blue="235" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.46550155" brightnessOffset="0.372549" alphaOffset="0"/>
151.3009 +                                    </stop>
151.3010 +                                    <stop position="0.88554215" midpoint="0.5">
151.3011 +                                       <matte red="190" green="209" blue="227" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0024294257" saturationOffset="-0.47271872" brightnessOffset="0.34117645" alphaOffset="0"/>
151.3012 +                                    </stop>
151.3013 +                                 </gradient>
151.3014 +                                 <paintPoints x1="0.49754901960784303" y1="0.004901960784313727" x2="0.507352941176471" y2="1.0"/>
151.3015 +                              </ellipse>
151.3016 +                              <ellipse x1="2.0" x2="16.0" y1="2.0" y2="16.0">
151.3017 +                                 <gradient cycleMethod="NO_CYCLE">
151.3018 +                                    <stop position="0.0" midpoint="0.5">
151.3019 +                                       <matte red="62" green="87" blue="109" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-6.374717E-4" saturationOffset="-0.20452163" brightnessOffset="-0.12156865" alphaOffset="0"/>
151.3020 +                                    </stop>
151.3021 +                                    <stop position="1.0" midpoint="0.5">
151.3022 +                                       <matte red="11" green="11" blue="11" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.5058824" alphaOffset="0"/>
151.3023 +                                    </stop>
151.3024 +                                 </gradient>
151.3025 +                                 <paintPoints x1="0.49789915966386533" y1="-0.0042016806722689065" x2="0.5000000000000002" y2="0.9978991596638656"/>
151.3026 +                              </ellipse>
151.3027 +                              <ellipse x1="0.6" x2="17.4" y1="0.6" y2="17.4">
151.3028 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.3029 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.3030 +                              </ellipse>
151.3031 +                           </shapes>
151.3032 +                           <effects/>
151.3033 +                        </layer>
151.3034 +                     </canvas>
151.3035 +                  </state>
151.3036 +                  <state stateKeys="Disabled+Selected">
151.3037 +                     <style>
151.3038 +                        <textForeground/>
151.3039 +                        <textBackground/>
151.3040 +                        <background/>
151.3041 +                        <uiproperties/>
151.3042 +                     </style>
151.3043 +                     <canvas>
151.3044 +                        <size width="18" height="18"/>
151.3045 +                        <nextLayerNameIndex>4</nextLayerNameIndex>
151.3046 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.3047 +                        <layer name="Button">
151.3048 +                           <opacity>1.0</opacity>
151.3049 +                           <fillOpacity>1.0</fillOpacity>
151.3050 +                           <blendingMode>NORMAL</blendingMode>
151.3051 +                           <locked>false</locked>
151.3052 +                           <visible>true</visible>
151.3053 +                           <shapes>
151.3054 +                              <ellipse x1="6.0" x2="12.0" y1="6.0" y2="12.0">
151.3055 +                                 <gradient cycleMethod="NO_CYCLE">
151.3056 +                                    <stop position="0.0" midpoint="0.5">
151.3057 +                                       <matte red="181" green="185" blue="191" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.01111114" saturationOffset="-0.058170296" brightnessOffset="0.0039215684" alphaOffset="0"/>
151.3058 +                                    </stop>
151.3059 +                                    <stop position="0.46385542" midpoint="0.5">
151.3060 +                                       <matte red="163" green="168" blue="175" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.013888836" saturationOffset="-0.04195489" brightnessOffset="-0.058823526" alphaOffset="0"/>
151.3061 +                                    </stop>
151.3062 +                                    <stop position="1.0" midpoint="0.5">
151.3063 +                                       <matte red="170" green="175" blue="188" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.009259284" saturationOffset="-0.0147816315" brightnessOffset="-0.007843137" alphaOffset="0"/>
151.3064 +                                    </stop>
151.3065 +                                 </gradient>
151.3066 +                                 <paintPoints x1="0.5049019607843137" y1="0.0" x2="0.4950980392156863" y2="1.0"/>
151.3067 +                              </ellipse>
151.3068 +                              <ellipse x1="3.0" x2="15.0" y1="3.0" y2="15.0">
151.3069 +                                 <gradient cycleMethod="NO_CYCLE">
151.3070 +                                    <stop position="0.0813253" midpoint="0.5">
151.3071 +                                       <matte red="219" green="223" blue="230" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.027408898" saturationOffset="-0.5878882" brightnessOffset="0.35294116" alphaOffset="0"/>
151.3072 +                                    </stop>
151.3073 +                                    <stop position="0.45783132" midpoint="0.5">
151.3074 +                                       <matte red="204" green="210" blue="219" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.56722116" brightnessOffset="0.3098039" alphaOffset="0"/>
151.3075 +                                    </stop>
151.3076 +                                    <stop position="0.88554215" midpoint="0.5">
151.3077 +                                       <matte red="206" green="212" blue="221" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.567841" brightnessOffset="0.31764704" alphaOffset="0"/>
151.3078 +                                    </stop>
151.3079 +                                 </gradient>
151.3080 +                                 <paintPoints x1="0.49754901960784303" y1="0.004901960784313727" x2="0.507352941176471" y2="1.0"/>
151.3081 +                              </ellipse>
151.3082 +                              <ellipse x1="2.0" x2="16.0" y1="2.0" y2="16.0">
151.3083 +                                 <gradient cycleMethod="NO_CYCLE">
151.3084 +                                    <stop position="0.0" midpoint="0.5">
151.3085 +                                       <matte red="191" green="198" blue="206" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.010237217" saturationOffset="-0.56289876" brightnessOffset="0.2588235" alphaOffset="0"/>
151.3086 +                                    </stop>
151.3087 +                                    <stop position="1.0" midpoint="0.5">
151.3088 +                                       <matte red="176" green="182" blue="190" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.016586483" saturationOffset="-0.5620301" brightnessOffset="0.19607842" alphaOffset="0"/>
151.3089 +                                    </stop>
151.3090 +                                 </gradient>
151.3091 +                                 <paintPoints x1="0.49789915966386533" y1="-0.0042016806722689065" x2="0.5000000000000002" y2="0.9978991596638656"/>
151.3092 +                              </ellipse>
151.3093 +                           </shapes>
151.3094 +                           <effects/>
151.3095 +                        </layer>
151.3096 +                        <templateLayer fileName="1138e83122d.png">
151.3097 +                           <layer name="Template" type="template">
151.3098 +                              <opacity>1.0</opacity>
151.3099 +                              <fillOpacity>1.0</fillOpacity>
151.3100 +                              <blendingMode>NORMAL</blendingMode>
151.3101 +                              <locked>false</locked>
151.3102 +                              <visible>false</visible>
151.3103 +                              <shapes/>
151.3104 +                              <effects/>
151.3105 +                           </layer>
151.3106 +                        </templateLayer>
151.3107 +                     </canvas>
151.3108 +                  </state>
151.3109 +               </backgroundStates>
151.3110 +               <foregroundStates/>
151.3111 +               <borderStates/>
151.3112 +               <regions/>
151.3113 +            </uiIconRegion>
151.3114 +         </regions>
151.3115 +      </uiComponent>
151.3116 +      <uiComponent opaque="false" type="javax.swing.JCheckBox" name="CheckBox" ui="CheckBoxUI" subregion="false">
151.3117 +         <stateTypes/>
151.3118 +         <contentMargins top="0" bottom="0" left="0" right="0"/>
151.3119 +         <style>
151.3120 +            <textForeground/>
151.3121 +            <textBackground/>
151.3122 +            <background/>
151.3123 +            <uiproperties/>
151.3124 +         </style>
151.3125 +         <backgroundStates>
151.3126 +            <state stateKeys="Disabled">
151.3127 +               <style>
151.3128 +                  <textForeground>
151.3129 +                     <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.3130 +                  </textForeground>
151.3131 +                  <textBackground/>
151.3132 +                  <background/>
151.3133 +                  <inherit-textForeground>false</inherit-textForeground>
151.3134 +                  <uiproperties/>
151.3135 +               </style>
151.3136 +               <canvas>
151.3137 +                  <size width="104" height="33"/>
151.3138 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.3139 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.3140 +                  <layer name="Layer 1">
151.3141 +                     <opacity>1.0</opacity>
151.3142 +                     <fillOpacity>1.0</fillOpacity>
151.3143 +                     <blendingMode>NORMAL</blendingMode>
151.3144 +                     <locked>false</locked>
151.3145 +                     <visible>true</visible>
151.3146 +                     <shapes/>
151.3147 +                     <effects/>
151.3148 +                  </layer>
151.3149 +               </canvas>
151.3150 +            </state>
151.3151 +            <state stateKeys="Enabled">
151.3152 +               <style>
151.3153 +                  <textForeground/>
151.3154 +                  <textBackground/>
151.3155 +                  <background/>
151.3156 +                  <uiproperties/>
151.3157 +               </style>
151.3158 +               <canvas>
151.3159 +                  <size width="104" height="33"/>
151.3160 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.3161 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.3162 +                  <layer name="Layer 1">
151.3163 +                     <opacity>1.0</opacity>
151.3164 +                     <fillOpacity>1.0</fillOpacity>
151.3165 +                     <blendingMode>NORMAL</blendingMode>
151.3166 +                     <locked>false</locked>
151.3167 +                     <visible>true</visible>
151.3168 +                     <shapes/>
151.3169 +                     <effects/>
151.3170 +                  </layer>
151.3171 +               </canvas>
151.3172 +            </state>
151.3173 +         </backgroundStates>
151.3174 +         <foregroundStates/>
151.3175 +         <borderStates/>
151.3176 +         <regions>
151.3177 +            <uiIconRegion name="Icon" subregion="true" key="icon">
151.3178 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.3179 +               <style>
151.3180 +                  <textForeground/>
151.3181 +                  <textBackground/>
151.3182 +                  <background/>
151.3183 +                  <uiproperties/>
151.3184 +               </style>
151.3185 +               <backgroundStates>
151.3186 +                  <state stateKeys="Disabled">
151.3187 +                     <style>
151.3188 +                        <textForeground/>
151.3189 +                        <textBackground/>
151.3190 +                        <background/>
151.3191 +                        <uiproperties/>
151.3192 +                     </style>
151.3193 +                     <canvas>
151.3194 +                        <size width="18" height="18"/>
151.3195 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.3196 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.3197 +                        <layer name="Layer 1">
151.3198 +                           <opacity>1.0</opacity>
151.3199 +                           <fillOpacity>1.0</fillOpacity>
151.3200 +                           <blendingMode>NORMAL</blendingMode>
151.3201 +                           <locked>false</locked>
151.3202 +                           <visible>true</visible>
151.3203 +                           <shapes>
151.3204 +                              <rectangle x1="3.0" x2="15.0" y1="3.0" y2="15.0" rounding="3.764705882352935">
151.3205 +                                 <gradient cycleMethod="NO_CYCLE">
151.3206 +                                    <stop position="0.0" midpoint="0.5">
151.3207 +                                       <matte red="227" green="229" blue="233" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.60996324" brightnessOffset="0.36470586" alphaOffset="0"/>
151.3208 +                                    </stop>
151.3209 +                                    <stop position="0.64457834" midpoint="0.5">
151.3210 +                                       <matte red="214" green="217" blue="222" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.02551502" saturationOffset="-0.5996783" brightnessOffset="0.3215686" alphaOffset="0"/>
151.3211 +                                    </stop>
151.3212 +                                    <stop position="1.0" midpoint="0.5">
151.3213 +                                       <matte red="219" green="222" blue="228" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.59624064" brightnessOffset="0.34509802" alphaOffset="0"/>
151.3214 +                                    </stop>
151.3215 +                                 </gradient>
151.3216 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.2500000000000003" y2="0.9975490196078431"/>
151.3217 +                              </rectangle>
151.3218 +                              <rectangle x1="2.0" x2="16.0" y1="2.0" y2="16.0" rounding="3.705882352941174">
151.3219 +                                 <gradient cycleMethod="NO_CYCLE">
151.3220 +                                    <stop position="0.0" midpoint="0.5">
151.3221 +                                       <matte red="201" green="204" blue="210" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06766917" brightnessOffset="0.07843137" alphaOffset="0"/>
151.3222 +                                    </stop>
151.3223 +                                    <stop position="1.0" midpoint="0.5">
151.3224 +                                       <matte red="188" green="191" blue="197" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06484103" brightnessOffset="0.027450979" alphaOffset="0"/>
151.3225 +                                    </stop>
151.3226 +                                 </gradient>
151.3227 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.25210084033613445" y2="0.9957983193277311"/>
151.3228 +                              </rectangle>
151.3229 +                           </shapes>
151.3230 +                           <effects/>
151.3231 +                        </layer>
151.3232 +                     </canvas>
151.3233 +                  </state>
151.3234 +                  <state stateKeys="Enabled">
151.3235 +                     <style>
151.3236 +                        <textForeground/>
151.3237 +                        <textBackground/>
151.3238 +                        <background/>
151.3239 +                        <uiproperties/>
151.3240 +                     </style>
151.3241 +                     <canvas>
151.3242 +                        <size width="18" height="18"/>
151.3243 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.3244 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.3245 +                        <layer name="Layer 1">
151.3246 +                           <opacity>1.0</opacity>
151.3247 +                           <fillOpacity>1.0</fillOpacity>
151.3248 +                           <blendingMode>NORMAL</blendingMode>
151.3249 +                           <locked>false</locked>
151.3250 +                           <visible>true</visible>
151.3251 +                           <shapes>
151.3252 +                              <rectangle x1="3.0" x2="15.0" y1="3.0" y2="15.0" rounding="3.764705882352935">
151.3253 +                                 <gradient cycleMethod="NO_CYCLE">
151.3254 +                                    <stop position="0.0" midpoint="0.5">
151.3255 +                                       <matte red="251" green="251" blue="252" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="-0.63174605" brightnessOffset="0.43921566" alphaOffset="0"/>
151.3256 +                                    </stop>
151.3257 +                                    <stop position="0.64457834" midpoint="0.5">
151.3258 +                                       <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5953556" brightnessOffset="0.32549018" alphaOffset="0"/>
151.3259 +                                    </stop>
151.3260 +                                    <stop position="1.0" midpoint="0.5">
151.3261 +                                       <matte red="239" green="242" blue="248" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.59942394" brightnessOffset="0.4235294" alphaOffset="0"/>
151.3262 +                                    </stop>
151.3263 +                                 </gradient>
151.3264 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.2500000000000003" y2="0.9975490196078431"/>
151.3265 +                              </rectangle>
151.3266 +                              <rectangle x1="2.0" x2="16.0" y1="2.0" y2="16.0" rounding="3.705882352941174">
151.3267 +                                 <gradient cycleMethod="NO_CYCLE">
151.3268 +                                    <stop position="0.0" midpoint="0.5">
151.3269 +                                       <matte red="149" green="152" blue="158" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.05356429" brightnessOffset="-0.12549019" alphaOffset="0"/>
151.3270 +                                    </stop>
151.3271 +                                    <stop position="1.0" midpoint="0.5">
151.3272 +                                       <matte red="86" green="89" blue="95" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.015789472" brightnessOffset="-0.37254903" alphaOffset="0"/>
151.3273 +                                    </stop>
151.3274 +                                 </gradient>
151.3275 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.25210084033613445" y2="0.9957983193277311"/>
151.3276 +                              </rectangle>
151.3277 +                              <rectangle x1="2.0" x2="16.0" y1="11.0" y2="17.0" rounding="5.176470588235279">
151.3278 +                                 <matte red="169" green="176" blue="190" alpha="166" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="-89"/>
151.3279 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.3280 +                              </rectangle>
151.3281 +                           </shapes>
151.3282 +                           <effects/>
151.3283 +                        </layer>
151.3284 +                        <templateLayer fileName="1138ec6661e.png">
151.3285 +                           <layer name="Template" type="template">
151.3286 +                              <opacity>1.0</opacity>
151.3287 +                              <fillOpacity>1.0</fillOpacity>
151.3288 +                              <blendingMode>NORMAL</blendingMode>
151.3289 +                              <locked>false</locked>
151.3290 +                              <visible>false</visible>
151.3291 +                              <shapes/>
151.3292 +                              <effects/>
151.3293 +                           </layer>
151.3294 +                        </templateLayer>
151.3295 +                     </canvas>
151.3296 +                  </state>
151.3297 +                  <state stateKeys="Focused">
151.3298 +                     <style>
151.3299 +                        <textForeground/>
151.3300 +                        <textBackground/>
151.3301 +                        <background/>
151.3302 +                        <uiproperties/>
151.3303 +                     </style>
151.3304 +                     <canvas>
151.3305 +                        <size width="18" height="18"/>
151.3306 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.3307 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.3308 +                        <layer name="Layer 1">
151.3309 +                           <opacity>1.0</opacity>
151.3310 +                           <fillOpacity>1.0</fillOpacity>
151.3311 +                           <blendingMode>NORMAL</blendingMode>
151.3312 +                           <locked>false</locked>
151.3313 +                           <visible>true</visible>
151.3314 +                           <shapes>
151.3315 +                              <rectangle x1="3.0" x2="15.0" y1="3.0" y2="15.0" rounding="3.764705882352935">
151.3316 +                                 <gradient cycleMethod="NO_CYCLE">
151.3317 +                                    <stop position="0.0" midpoint="0.5">
151.3318 +                                       <matte red="251" green="251" blue="252" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="-0.63174605" brightnessOffset="0.43921566" alphaOffset="0"/>
151.3319 +                                    </stop>
151.3320 +                                    <stop position="0.64457834" midpoint="0.5">
151.3321 +                                       <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5953556" brightnessOffset="0.32549018" alphaOffset="0"/>
151.3322 +                                    </stop>
151.3323 +                                    <stop position="1.0" midpoint="0.5">
151.3324 +                                       <matte red="239" green="242" blue="248" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.59942394" brightnessOffset="0.4235294" alphaOffset="0"/>
151.3325 +                                    </stop>
151.3326 +                                 </gradient>
151.3327 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.2500000000000003" y2="0.9975490196078431"/>
151.3328 +                              </rectangle>
151.3329 +                              <rectangle x1="2.0" x2="16.0" y1="2.0" y2="16.0" rounding="3.705882352941174">
151.3330 +                                 <gradient cycleMethod="NO_CYCLE">
151.3331 +                                    <stop position="0.0" midpoint="0.5">
151.3332 +                                       <matte red="149" green="152" blue="158" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.05356429" brightnessOffset="-0.12549019" alphaOffset="0"/>
151.3333 +                                    </stop>
151.3334 +                                    <stop position="1.0" midpoint="0.5">
151.3335 +                                       <matte red="86" green="89" blue="95" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.015789472" brightnessOffset="-0.37254903" alphaOffset="0"/>
151.3336 +                                    </stop>
151.3337 +                                 </gradient>
151.3338 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.25210084033613445" y2="0.9957983193277311"/>
151.3339 +                              </rectangle>
151.3340 +                              <rectangle x1="0.6" x2="17.4" y1="0.6" y2="17.4" rounding="7.999999999999999">
151.3341 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.3342 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.3343 +                              </rectangle>
151.3344 +                           </shapes>
151.3345 +                           <effects/>
151.3346 +                        </layer>
151.3347 +                     </canvas>
151.3348 +                  </state>
151.3349 +                  <state stateKeys="MouseOver">
151.3350 +                     <style>
151.3351 +                        <textForeground/>
151.3352 +                        <textBackground/>
151.3353 +                        <background/>
151.3354 +                        <uiproperties/>
151.3355 +                     </style>
151.3356 +                     <canvas>
151.3357 +                        <size width="18" height="18"/>
151.3358 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.3359 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.3360 +                        <layer name="Layer 1">
151.3361 +                           <opacity>1.0</opacity>
151.3362 +                           <fillOpacity>1.0</fillOpacity>
151.3363 +                           <blendingMode>NORMAL</blendingMode>
151.3364 +                           <locked>false</locked>
151.3365 +                           <visible>true</visible>
151.3366 +                           <shapes>
151.3367 +                              <rectangle x1="3.0" x2="15.0" y1="3.0" y2="15.0" rounding="3.764705882352935">
151.3368 +                                 <gradient cycleMethod="NO_CYCLE">
151.3369 +                                    <stop position="0.0" midpoint="0.5">
151.3370 +                                       <matte red="253" green="253" blue="254" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="-0.6317773" brightnessOffset="0.4470588" alphaOffset="0"/>
151.3371 +                                    </stop>
151.3372 +                                    <stop position="0.64457834" midpoint="0.5">
151.3373 +                                       <matte red="233" green="236" blue="242" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5985242" brightnessOffset="0.39999998" alphaOffset="0"/>
151.3374 +                                    </stop>
151.3375 +                                    <stop position="1.0" midpoint="0.5">
151.3376 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="0"/>
151.3377 +                                    </stop>
151.3378 +                                 </gradient>
151.3379 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.2500000000000003" y2="0.9975490196078431"/>
151.3380 +                              </rectangle>
151.3381 +                              <rectangle x1="2.0" x2="16.0" y1="2.0" y2="16.0" rounding="3.705882352941174">
151.3382 +                                 <gradient cycleMethod="NO_CYCLE">
151.3383 +                                    <stop position="0.0" midpoint="0.5">
151.3384 +                                       <matte red="122" green="126" blue="134" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.020974077" brightnessOffset="-0.21960783" alphaOffset="0"/>
151.3385 +                                    </stop>
151.3386 +                                    <stop position="1.0" midpoint="0.5">
151.3387 +                                       <matte red="44" green="47" blue="55" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.01010108" saturationOffset="0.08947369" brightnessOffset="-0.5294118" alphaOffset="0"/>
151.3388 +                                    </stop>
151.3389 +                                 </gradient>
151.3390 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.25210084033613445" y2="0.9957983193277311"/>
151.3391 +                              </rectangle>
151.3392 +                              <rectangle x1="2.0" x2="16.0" y1="11.0" y2="17.0" rounding="5.176470588235279">
151.3393 +                                 <matte red="169" green="176" blue="190" alpha="166" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="-89"/>
151.3394 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.3395 +                              </rectangle>
151.3396 +                           </shapes>
151.3397 +                           <effects/>
151.3398 +                        </layer>
151.3399 +                     </canvas>
151.3400 +                  </state>
151.3401 +                  <state stateKeys="MouseOver+Focused">
151.3402 +                     <style>
151.3403 +                        <textForeground/>
151.3404 +                        <textBackground/>
151.3405 +                        <background/>
151.3406 +                        <uiproperties/>
151.3407 +                     </style>
151.3408 +                     <canvas>
151.3409 +                        <size width="18" height="18"/>
151.3410 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.3411 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.3412 +                        <layer name="Layer 1">
151.3413 +                           <opacity>1.0</opacity>
151.3414 +                           <fillOpacity>1.0</fillOpacity>
151.3415 +                           <blendingMode>NORMAL</blendingMode>
151.3416 +                           <locked>false</locked>
151.3417 +                           <visible>true</visible>
151.3418 +                           <shapes>
151.3419 +                              <rectangle x1="3.0" x2="15.0" y1="3.0" y2="15.0" rounding="3.764705882352935">
151.3420 +                                 <gradient cycleMethod="NO_CYCLE">
151.3421 +                                    <stop position="0.0" midpoint="0.5">
151.3422 +                                       <matte red="253" green="253" blue="254" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="-0.6317773" brightnessOffset="0.4470588" alphaOffset="0"/>
151.3423 +                                    </stop>
151.3424 +                                    <stop position="0.64457834" midpoint="0.5">
151.3425 +                                       <matte red="233" green="236" blue="242" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5985242" brightnessOffset="0.39999998" alphaOffset="0"/>
151.3426 +                                    </stop>
151.3427 +                                    <stop position="1.0" midpoint="0.5">
151.3428 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="0"/>
151.3429 +                                    </stop>
151.3430 +                                 </gradient>
151.3431 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.2500000000000003" y2="0.9975490196078431"/>
151.3432 +                              </rectangle>
151.3433 +                              <rectangle x1="2.0" x2="16.0" y1="2.0" y2="16.0" rounding="3.705882352941174">
151.3434 +                                 <gradient cycleMethod="NO_CYCLE">
151.3435 +                                    <stop position="0.0" midpoint="0.5">
151.3436 +                                       <matte red="122" green="126" blue="134" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.020974077" brightnessOffset="-0.21960783" alphaOffset="0"/>
151.3437 +                                    </stop>
151.3438 +                                    <stop position="1.0" midpoint="0.5">
151.3439 +                                       <matte red="44" green="47" blue="55" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.01010108" saturationOffset="0.08947369" brightnessOffset="-0.5294118" alphaOffset="0"/>
151.3440 +                                    </stop>
151.3441 +                                 </gradient>
151.3442 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.25210084033613445" y2="0.9957983193277311"/>
151.3443 +                              </rectangle>
151.3444 +                              <rectangle x1="0.6" x2="17.4" y1="0.6" y2="17.4" rounding="7.999999999999999">
151.3445 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.3446 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.3447 +                              </rectangle>
151.3448 +                           </shapes>
151.3449 +                           <effects/>
151.3450 +                        </layer>
151.3451 +                     </canvas>
151.3452 +                  </state>
151.3453 +                  <state stateKeys="Pressed">
151.3454 +                     <style>
151.3455 +                        <textForeground/>
151.3456 +                        <textBackground/>
151.3457 +                        <background/>
151.3458 +                        <uiproperties/>
151.3459 +                     </style>
151.3460 +                     <canvas>
151.3461 +                        <size width="18" height="18"/>
151.3462 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.3463 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.3464 +                        <layer name="Layer 1">
151.3465 +                           <opacity>1.0</opacity>
151.3466 +                           <fillOpacity>1.0</fillOpacity>
151.3467 +                           <blendingMode>NORMAL</blendingMode>
151.3468 +                           <locked>false</locked>
151.3469 +                           <visible>true</visible>
151.3470 +                           <shapes>
151.3471 +                              <rectangle x1="3.0" x2="15.0" y1="3.0" y2="15.0" rounding="3.764705882352935">
151.3472 +                                 <gradient cycleMethod="NO_CYCLE">
151.3473 +                                    <stop position="0.0" midpoint="0.5">
151.3474 +                                       <matte red="205" green="209" blue="216" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.027408898" saturationOffset="-0.5847884" brightnessOffset="0.2980392" alphaOffset="0"/>
151.3475 +                                    </stop>
151.3476 +                                    <stop position="0.64457834" midpoint="0.5">
151.3477 +                                       <matte red="164" green="171" blue="184" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.029681683" saturationOffset="-0.52701867" brightnessOffset="0.17254901" alphaOffset="0"/>
151.3478 +                                    </stop>
151.3479 +                                    <stop position="1.0" midpoint="0.5">
151.3480 +                                       <matte red="184" green="191" blue="204" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.029681683" saturationOffset="-0.5376751" brightnessOffset="0.25098038" alphaOffset="0"/>
151.3481 +                                    </stop>
151.3482 +                                 </gradient>
151.3483 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.2500000000000003" y2="0.9975490196078431"/>
151.3484 +                              </rectangle>
151.3485 +                              <rectangle x1="2.0" x2="16.0" y1="2.0" y2="16.0" rounding="3.705882352941174">
151.3486 +                                 <gradient cycleMethod="NO_CYCLE">
151.3487 +                                    <stop position="0.0" midpoint="0.5">
151.3488 +                                       <matte red="0" green="0" blue="7" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="0.8894737" brightnessOffset="-0.7176471" alphaOffset="0"/>
151.3489 +                                    </stop>
151.3490 +                                    <stop position="1.0" midpoint="0.5">
151.3491 +                                       <matte red="95" green="99" blue="107" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.0016232133" brightnessOffset="-0.3254902" alphaOffset="0"/>
151.3492 +                                    </stop>
151.3493 +                                 </gradient>
151.3494 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.25210084033613445" y2="0.9957983193277311"/>
151.3495 +                              </rectangle>
151.3496 +                              <rectangle x1="2.0" x2="16.0" y1="11.0" y2="17.0" rounding="5.176470588235279">
151.3497 +                                 <matte red="169" green="176" blue="190" alpha="166" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="-89"/>
151.3498 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.3499 +                              </rectangle>
151.3500 +                           </shapes>
151.3501 +                           <effects/>
151.3502 +                        </layer>
151.3503 +                     </canvas>
151.3504 +                  </state>
151.3505 +                  <state stateKeys="Pressed+Focused">
151.3506 +                     <style>
151.3507 +                        <textForeground/>
151.3508 +                        <textBackground/>
151.3509 +                        <background/>
151.3510 +                        <uiproperties/>
151.3511 +                     </style>
151.3512 +                     <canvas>
151.3513 +                        <size width="18" height="18"/>
151.3514 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.3515 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.3516 +                        <layer name="Layer 1">
151.3517 +                           <opacity>1.0</opacity>
151.3518 +                           <fillOpacity>1.0</fillOpacity>
151.3519 +                           <blendingMode>NORMAL</blendingMode>
151.3520 +                           <locked>false</locked>
151.3521 +                           <visible>true</visible>
151.3522 +                           <shapes>
151.3523 +                              <rectangle x1="3.0" x2="15.0" y1="3.0" y2="15.0" rounding="3.764705882352935">
151.3524 +                                 <gradient cycleMethod="NO_CYCLE">
151.3525 +                                    <stop position="0.0" midpoint="0.5">
151.3526 +                                       <matte red="205" green="209" blue="216" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.027408898" saturationOffset="-0.5847884" brightnessOffset="0.2980392" alphaOffset="0"/>
151.3527 +                                    </stop>
151.3528 +                                    <stop position="0.64457834" midpoint="0.5">
151.3529 +                                       <matte red="164" green="171" blue="184" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.029681683" saturationOffset="-0.52701867" brightnessOffset="0.17254901" alphaOffset="0"/>
151.3530 +                                    </stop>
151.3531 +                                    <stop position="1.0" midpoint="0.5">
151.3532 +                                       <matte red="184" green="191" blue="204" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.029681683" saturationOffset="-0.5376751" brightnessOffset="0.25098038" alphaOffset="0"/>
151.3533 +                                    </stop>
151.3534 +                                 </gradient>
151.3535 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.2500000000000003" y2="0.9975490196078431"/>
151.3536 +                              </rectangle>
151.3537 +                              <rectangle x1="2.0" x2="16.0" y1="2.0" y2="16.0" rounding="3.705882352941174">
151.3538 +                                 <gradient cycleMethod="NO_CYCLE">
151.3539 +                                    <stop position="0.0" midpoint="0.5">
151.3540 +                                       <matte red="0" green="0" blue="7" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="0.8894737" brightnessOffset="-0.7176471" alphaOffset="0"/>
151.3541 +                                    </stop>
151.3542 +                                    <stop position="1.0" midpoint="0.5">
151.3543 +                                       <matte red="95" green="99" blue="107" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.0016232133" brightnessOffset="-0.3254902" alphaOffset="0"/>
151.3544 +                                    </stop>
151.3545 +                                 </gradient>
151.3546 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.25210084033613445" y2="0.9957983193277311"/>
151.3547 +                              </rectangle>
151.3548 +                              <rectangle x1="0.6" x2="17.4" y1="0.6" y2="17.4" rounding="7.999999999999999">
151.3549 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.3550 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.3551 +                              </rectangle>
151.3552 +                           </shapes>
151.3553 +                           <effects/>
151.3554 +                        </layer>
151.3555 +                     </canvas>
151.3556 +                  </state>
151.3557 +                  <state stateKeys="Selected">
151.3558 +                     <style>
151.3559 +                        <textForeground/>
151.3560 +                        <textBackground/>
151.3561 +                        <background/>
151.3562 +                        <uiproperties/>
151.3563 +                     </style>
151.3564 +                     <canvas>
151.3565 +                        <size width="18" height="18"/>
151.3566 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.3567 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.3568 +                        <layer name="Layer 2">
151.3569 +                           <opacity>1.0</opacity>
151.3570 +                           <fillOpacity>1.0</fillOpacity>
151.3571 +                           <blendingMode>NORMAL</blendingMode>
151.3572 +                           <locked>false</locked>
151.3573 +                           <visible>true</visible>
151.3574 +                           <shapes>
151.3575 +                              <path>
151.3576 +                                 <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.3577 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.3578 +                                 <points>
151.3579 +                                    <point x="5.029411764705882" y="8.058823529411764" cp1x="5.029411764705882" cp1y="8.058823529411764" cp2x="5.029411764705882" cp2y="8.058823529411764"/>
151.3580 +                                    <point x="7.029411764705882" y="8.058823529411764" cp1x="7.029411764705882" cp1y="8.058823529411764" cp2x="7.029411764705882" cp2y="8.058823529411764"/>
151.3581 +                                    <point x="8.441176470588236" y="11.058823529411764" cp1x="8.441176470588236" cp1y="11.058823529411764" cp2x="8.441176470588236" cp2y="11.058823529411764"/>
151.3582 +                                    <point x="11.588235294117647" y="3.117647058823529" cp1x="11.588235294117647" cp1y="3.117647058823529" cp2x="11.588235294117647" cp2y="3.117647058823529"/>
151.3583 +                                    <point x="14.0" y="3.0882352941176467" cp1x="14.0" cp1y="3.0882352941176467" cp2x="14.0" cp2y="3.0882352941176467"/>
151.3584 +                                    <point x="8.941176470588236" y="13.029411764705882" cp1x="8.941176470588236" cp1y="13.029411764705882" cp2x="8.941176470588236" cp2y="13.029411764705882"/>
151.3585 +                                    <point x="8.058823529411764" y="13.029411764705882" cp1x="8.058823529411764" cp1y="13.029411764705882" cp2x="8.058823529411764" cp2y="13.029411764705882"/>
151.3586 +                                 </points>
151.3587 +                              </path>
151.3588 +                           </shapes>
151.3589 +                           <effects/>
151.3590 +                        </layer>
151.3591 +                        <layer name="Layer 1">
151.3592 +                           <opacity>1.0</opacity>
151.3593 +                           <fillOpacity>1.0</fillOpacity>
151.3594 +                           <blendingMode>NORMAL</blendingMode>
151.3595 +                           <locked>false</locked>
151.3596 +                           <visible>true</visible>
151.3597 +                           <shapes>
151.3598 +                              <rectangle x1="3.0" x2="15.0" y1="3.0" y2="15.0" rounding="3.764705882352935">
151.3599 +                                 <gradient cycleMethod="NO_CYCLE">
151.3600 +                                    <stop position="0.0" midpoint="0.5">
151.3601 +                                       <matte red="246" green="248" blue="250" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6197143" brightnessOffset="0.43137252" alphaOffset="0"/>
151.3602 +                                    </stop>
151.3603 +                                    <stop position="0.64457834" midpoint="0.5">
151.3604 +                                       <matte red="166" green="187" blue="206" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.44153953" brightnessOffset="0.2588235" alphaOffset="0"/>
151.3605 +                                    </stop>
151.3606 +                                    <stop position="1.0" midpoint="0.5">
151.3607 +                                       <matte red="188" green="209" blue="228" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4602757" brightnessOffset="0.34509802" alphaOffset="0"/>
151.3608 +                                    </stop>
151.3609 +                                 </gradient>
151.3610 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.2500000000000003" y2="0.9975490196078431"/>
151.3611 +                              </rectangle>
151.3612 +                              <rectangle x1="2.0" x2="16.0" y1="2.0" y2="16.0" rounding="3.705882352941174">
151.3613 +                                 <gradient cycleMethod="NO_CYCLE">
151.3614 +                                    <stop position="0.0" midpoint="0.5">
151.3615 +                                       <matte red="98" green="119" blue="138" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.34585923" brightnessOffset="-0.007843137" alphaOffset="0"/>
151.3616 +                                    </stop>
151.3617 +                                    <stop position="1.0" midpoint="0.5">
151.3618 +                                       <matte red="35" green="56" blue="75" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.10238093" brightnessOffset="-0.25490198" alphaOffset="0"/>
151.3619 +                                    </stop>
151.3620 +                                 </gradient>
151.3621 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.25210084033613445" y2="0.9957983193277311"/>
151.3622 +                              </rectangle>
151.3623 +                              <rectangle x1="2.0" x2="16.0" y1="11.0" y2="17.0" rounding="5.176470588235279">
151.3624 +                                 <matte red="169" green="176" blue="190" alpha="166" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="-89"/>
151.3625 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.3626 +                              </rectangle>
151.3627 +                           </shapes>
151.3628 +                           <effects/>
151.3629 +                        </layer>
151.3630 +                        <templateLayer fileName="1138ed19809.png">
151.3631 +                           <layer name="Template" type="template">
151.3632 +                              <opacity>1.0</opacity>
151.3633 +                              <fillOpacity>1.0</fillOpacity>
151.3634 +                              <blendingMode>NORMAL</blendingMode>
151.3635 +                              <locked>false</locked>
151.3636 +                              <visible>true</visible>
151.3637 +                              <shapes/>
151.3638 +                              <effects/>
151.3639 +                           </layer>
151.3640 +                        </templateLayer>
151.3641 +                     </canvas>
151.3642 +                  </state>
151.3643 +                  <state stateKeys="Selected+Focused">
151.3644 +                     <style>
151.3645 +                        <textForeground/>
151.3646 +                        <textBackground/>
151.3647 +                        <background/>
151.3648 +                        <uiproperties/>
151.3649 +                     </style>
151.3650 +                     <canvas>
151.3651 +                        <size width="18" height="18"/>
151.3652 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.3653 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.3654 +                        <layer name="Layer 2">
151.3655 +                           <opacity>1.0</opacity>
151.3656 +                           <fillOpacity>1.0</fillOpacity>
151.3657 +                           <blendingMode>NORMAL</blendingMode>
151.3658 +                           <locked>false</locked>
151.3659 +                           <visible>true</visible>
151.3660 +                           <shapes>
151.3661 +                              <path>
151.3662 +                                 <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.3663 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.3664 +                                 <points>
151.3665 +                                    <point x="5.029411764705882" y="8.058823529411764" cp1x="5.029411764705882" cp1y="8.058823529411764" cp2x="5.029411764705882" cp2y="8.058823529411764"/>
151.3666 +                                    <point x="7.029411764705882" y="8.058823529411764" cp1x="7.029411764705882" cp1y="8.058823529411764" cp2x="7.029411764705882" cp2y="8.058823529411764"/>
151.3667 +                                    <point x="8.441176470588236" y="11.058823529411764" cp1x="8.441176470588236" cp1y="11.058823529411764" cp2x="8.441176470588236" cp2y="11.058823529411764"/>
151.3668 +                                    <point x="11.588235294117647" y="3.117647058823529" cp1x="11.588235294117647" cp1y="3.117647058823529" cp2x="11.588235294117647" cp2y="3.117647058823529"/>
151.3669 +                                    <point x="14.0" y="3.0882352941176467" cp1x="14.0" cp1y="3.0882352941176467" cp2x="14.0" cp2y="3.0882352941176467"/>
151.3670 +                                    <point x="8.941176470588236" y="13.029411764705882" cp1x="8.941176470588236" cp1y="13.029411764705882" cp2x="8.941176470588236" cp2y="13.029411764705882"/>
151.3671 +                                    <point x="8.058823529411764" y="13.029411764705882" cp1x="8.058823529411764" cp1y="13.029411764705882" cp2x="8.058823529411764" cp2y="13.029411764705882"/>
151.3672 +                                 </points>
151.3673 +                              </path>
151.3674 +                           </shapes>
151.3675 +                           <effects/>
151.3676 +                        </layer>
151.3677 +                        <layer name="Layer 1">
151.3678 +                           <opacity>1.0</opacity>
151.3679 +                           <fillOpacity>1.0</fillOpacity>
151.3680 +                           <blendingMode>NORMAL</blendingMode>
151.3681 +                           <locked>false</locked>
151.3682 +                           <visible>true</visible>
151.3683 +                           <shapes>
151.3684 +                              <rectangle x1="3.0" x2="15.0" y1="3.0" y2="15.0" rounding="3.764705882352935">
151.3685 +                                 <gradient cycleMethod="NO_CYCLE">
151.3686 +                                    <stop position="0.0" midpoint="0.5">
151.3687 +                                       <matte red="246" green="248" blue="250" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6197143" brightnessOffset="0.43137252" alphaOffset="0"/>
151.3688 +                                    </stop>
151.3689 +                                    <stop position="0.64457834" midpoint="0.5">
151.3690 +                                       <matte red="166" green="187" blue="206" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.44153953" brightnessOffset="0.2588235" alphaOffset="0"/>
151.3691 +                                    </stop>
151.3692 +                                    <stop position="1.0" midpoint="0.5">
151.3693 +                                       <matte red="188" green="209" blue="228" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4602757" brightnessOffset="0.34509802" alphaOffset="0"/>
151.3694 +                                    </stop>
151.3695 +                                 </gradient>
151.3696 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.2500000000000003" y2="0.9975490196078431"/>
151.3697 +                              </rectangle>
151.3698 +                              <rectangle x1="2.0" x2="16.0" y1="2.0" y2="16.0" rounding="3.705882352941174">
151.3699 +                                 <gradient cycleMethod="NO_CYCLE">
151.3700 +                                    <stop position="0.0" midpoint="0.5">
151.3701 +                                       <matte red="98" green="119" blue="138" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.34585923" brightnessOffset="-0.007843137" alphaOffset="0"/>
151.3702 +                                    </stop>
151.3703 +                                    <stop position="1.0" midpoint="0.5">
151.3704 +                                       <matte red="35" green="56" blue="75" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.10238093" brightnessOffset="-0.25490198" alphaOffset="0"/>
151.3705 +                                    </stop>
151.3706 +                                 </gradient>
151.3707 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.25210084033613445" y2="0.9957983193277311"/>
151.3708 +                              </rectangle>
151.3709 +                              <rectangle x1="0.6" x2="17.4" y1="0.6" y2="17.4" rounding="7.999999999999999">
151.3710 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.3711 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.3712 +                              </rectangle>
151.3713 +                           </shapes>
151.3714 +                           <effects/>
151.3715 +                        </layer>
151.3716 +                     </canvas>
151.3717 +                  </state>
151.3718 +                  <state stateKeys="Pressed+Selected">
151.3719 +                     <style>
151.3720 +                        <textForeground/>
151.3721 +                        <textBackground/>
151.3722 +                        <background/>
151.3723 +                        <uiproperties/>
151.3724 +                     </style>
151.3725 +                     <canvas>
151.3726 +                        <size width="18" height="18"/>
151.3727 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.3728 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.3729 +                        <layer name="Layer 2">
151.3730 +                           <opacity>1.0</opacity>
151.3731 +                           <fillOpacity>1.0</fillOpacity>
151.3732 +                           <blendingMode>NORMAL</blendingMode>
151.3733 +                           <locked>false</locked>
151.3734 +                           <visible>true</visible>
151.3735 +                           <shapes>
151.3736 +                              <path>
151.3737 +                                 <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.3738 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.3739 +                                 <points>
151.3740 +                                    <point x="5.029411764705882" y="8.058823529411764" cp1x="5.029411764705882" cp1y="8.058823529411764" cp2x="5.029411764705882" cp2y="8.058823529411764"/>
151.3741 +                                    <point x="7.029411764705882" y="8.058823529411764" cp1x="7.029411764705882" cp1y="8.058823529411764" cp2x="7.029411764705882" cp2y="8.058823529411764"/>
151.3742 +                                    <point x="8.441176470588236" y="11.058823529411764" cp1x="8.441176470588236" cp1y="11.058823529411764" cp2x="8.441176470588236" cp2y="11.058823529411764"/>
151.3743 +                                    <point x="11.588235294117647" y="3.117647058823529" cp1x="11.588235294117647" cp1y="3.117647058823529" cp2x="11.588235294117647" cp2y="3.117647058823529"/>
151.3744 +                                    <point x="14.0" y="3.0882352941176467" cp1x="14.0" cp1y="3.0882352941176467" cp2x="14.0" cp2y="3.0882352941176467"/>
151.3745 +                                    <point x="8.941176470588236" y="13.029411764705882" cp1x="8.941176470588236" cp1y="13.029411764705882" cp2x="8.941176470588236" cp2y="13.029411764705882"/>
151.3746 +                                    <point x="8.058823529411764" y="13.029411764705882" cp1x="8.058823529411764" cp1y="13.029411764705882" cp2x="8.058823529411764" cp2y="13.029411764705882"/>
151.3747 +                                 </points>
151.3748 +                              </path>
151.3749 +                           </shapes>
151.3750 +                           <effects/>
151.3751 +                        </layer>
151.3752 +                        <layer name="Layer 1">
151.3753 +                           <opacity>1.0</opacity>
151.3754 +                           <fillOpacity>1.0</fillOpacity>
151.3755 +                           <blendingMode>NORMAL</blendingMode>
151.3756 +                           <locked>false</locked>
151.3757 +                           <visible>true</visible>
151.3758 +                           <shapes>
151.3759 +                              <rectangle x1="3.0" x2="15.0" y1="3.0" y2="15.0" rounding="3.764705882352935">
151.3760 +                                 <gradient cycleMethod="NO_CYCLE">
151.3761 +                                    <stop position="0.0" midpoint="0.5">
151.3762 +                                       <matte red="143" green="169" blue="192" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-4.2033195E-4" saturationOffset="-0.38050595" brightnessOffset="0.20392156" alphaOffset="0"/>
151.3763 +                                    </stop>
151.3764 +                                    <stop position="0.11550152" midpoint="0.5">
151.3765 +                                       <matte red="115" green="148" blue="176" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0021489263" saturationOffset="-0.2891234" brightnessOffset="0.14117646" alphaOffset="0"/>
151.3766 +                                    </stop>
151.3767 +                                    <stop position="0.64457834" midpoint="0.5">
151.3768 +                                       <matte red="51" green="98" blue="134" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.006362498" saturationOffset="-0.016311288" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.3769 +                                    </stop>
151.3770 +                                    <stop position="1.0" midpoint="0.5">
151.3771 +                                       <matte red="106" green="153" blue="195" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.17930403" brightnessOffset="0.21568626" alphaOffset="0"/>
151.3772 +                                    </stop>
151.3773 +                                 </gradient>
151.3774 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.2500000000000003" y2="0.9975490196078431"/>
151.3775 +                              </rectangle>
151.3776 +                              <rectangle x1="2.0" x2="16.0" y1="2.0" y2="16.0" rounding="3.705882352941174">
151.3777 +                                 <gradient cycleMethod="NO_CYCLE">
151.3778 +                                    <stop position="0.0" midpoint="0.5">
151.3779 +                                       <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.3780 +                                    </stop>
151.3781 +                                    <stop position="1.0" midpoint="0.5">
151.3782 +                                       <matte red="27" green="55" blue="80" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-3.528595E-5" saturationOffset="0.026785731" brightnessOffset="-0.23529413" alphaOffset="0"/>
151.3783 +                                    </stop>
151.3784 +                                 </gradient>
151.3785 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.25210084033613445" y2="0.9957983193277311"/>
151.3786 +                              </rectangle>
151.3787 +                              <rectangle x1="2.0" x2="16.0" y1="11.0" y2="17.0" rounding="5.176470588235279">
151.3788 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.3789 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.3790 +                              </rectangle>
151.3791 +                           </shapes>
151.3792 +                           <effects/>
151.3793 +                        </layer>
151.3794 +                     </canvas>
151.3795 +                  </state>
151.3796 +                  <state stateKeys="Pressed+Selected+Focused">
151.3797 +                     <style>
151.3798 +                        <textForeground/>
151.3799 +                        <textBackground/>
151.3800 +                        <background/>
151.3801 +                        <uiproperties/>
151.3802 +                     </style>
151.3803 +                     <canvas>
151.3804 +                        <size width="18" height="18"/>
151.3805 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.3806 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.3807 +                        <layer name="Layer 2">
151.3808 +                           <opacity>1.0</opacity>
151.3809 +                           <fillOpacity>1.0</fillOpacity>
151.3810 +                           <blendingMode>NORMAL</blendingMode>
151.3811 +                           <locked>false</locked>
151.3812 +                           <visible>true</visible>
151.3813 +                           <shapes>
151.3814 +                              <path>
151.3815 +                                 <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.3816 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.3817 +                                 <points>
151.3818 +                                    <point x="5.029411764705882" y="8.058823529411764" cp1x="5.029411764705882" cp1y="8.058823529411764" cp2x="5.029411764705882" cp2y="8.058823529411764"/>
151.3819 +                                    <point x="7.029411764705882" y="8.058823529411764" cp1x="7.029411764705882" cp1y="8.058823529411764" cp2x="7.029411764705882" cp2y="8.058823529411764"/>
151.3820 +                                    <point x="8.441176470588236" y="11.058823529411764" cp1x="8.441176470588236" cp1y="11.058823529411764" cp2x="8.441176470588236" cp2y="11.058823529411764"/>
151.3821 +                                    <point x="11.588235294117647" y="3.117647058823529" cp1x="11.588235294117647" cp1y="3.117647058823529" cp2x="11.588235294117647" cp2y="3.117647058823529"/>
151.3822 +                                    <point x="14.0" y="3.0882352941176467" cp1x="14.0" cp1y="3.0882352941176467" cp2x="14.0" cp2y="3.0882352941176467"/>
151.3823 +                                    <point x="8.941176470588236" y="13.029411764705882" cp1x="8.941176470588236" cp1y="13.029411764705882" cp2x="8.941176470588236" cp2y="13.029411764705882"/>
151.3824 +                                    <point x="8.058823529411764" y="13.029411764705882" cp1x="8.058823529411764" cp1y="13.029411764705882" cp2x="8.058823529411764" cp2y="13.029411764705882"/>
151.3825 +                                 </points>
151.3826 +                              </path>
151.3827 +                           </shapes>
151.3828 +                           <effects/>
151.3829 +                        </layer>
151.3830 +                        <layer name="Layer 1">
151.3831 +                           <opacity>1.0</opacity>
151.3832 +                           <fillOpacity>1.0</fillOpacity>
151.3833 +                           <blendingMode>NORMAL</blendingMode>
151.3834 +                           <locked>false</locked>
151.3835 +                           <visible>true</visible>
151.3836 +                           <shapes>
151.3837 +                              <rectangle x1="3.0" x2="15.0" y1="3.0" y2="15.0" rounding="3.764705882352935">
151.3838 +                                 <gradient cycleMethod="NO_CYCLE">
151.3839 +                                    <stop position="0.0" midpoint="0.5">
151.3840 +                                       <matte red="143" green="169" blue="192" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-4.2033195E-4" saturationOffset="-0.38050595" brightnessOffset="0.20392156" alphaOffset="0"/>
151.3841 +                                    </stop>
151.3842 +                                    <stop position="0.11550152" midpoint="0.5">
151.3843 +                                       <matte red="115" green="148" blue="176" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0021489263" saturationOffset="-0.2891234" brightnessOffset="0.14117646" alphaOffset="0"/>
151.3844 +                                    </stop>
151.3845 +                                    <stop position="0.64457834" midpoint="0.5">
151.3846 +                                       <matte red="51" green="98" blue="134" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.006362498" saturationOffset="-0.016311288" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.3847 +                                    </stop>
151.3848 +                                    <stop position="1.0" midpoint="0.5">
151.3849 +                                       <matte red="106" green="153" blue="195" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.17930403" brightnessOffset="0.21568626" alphaOffset="0"/>
151.3850 +                                    </stop>
151.3851 +                                 </gradient>
151.3852 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.2500000000000003" y2="0.9975490196078431"/>
151.3853 +                              </rectangle>
151.3854 +                              <rectangle x1="2.0" x2="16.0" y1="2.0" y2="16.0" rounding="3.705882352941174">
151.3855 +                                 <gradient cycleMethod="NO_CYCLE">
151.3856 +                                    <stop position="0.0" midpoint="0.5">
151.3857 +                                       <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.3858 +                                    </stop>
151.3859 +                                    <stop position="1.0" midpoint="0.5">
151.3860 +                                       <matte red="27" green="55" blue="80" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-3.528595E-5" saturationOffset="0.026785731" brightnessOffset="-0.23529413" alphaOffset="0"/>
151.3861 +                                    </stop>
151.3862 +                                 </gradient>
151.3863 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.25210084033613445" y2="0.9957983193277311"/>
151.3864 +                              </rectangle>
151.3865 +                              <rectangle x1="0.6" x2="17.4" y1="0.6" y2="17.4" rounding="7.999999999999999">
151.3866 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.3867 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.3868 +                              </rectangle>
151.3869 +                           </shapes>
151.3870 +                           <effects/>
151.3871 +                        </layer>
151.3872 +                     </canvas>
151.3873 +                  </state>
151.3874 +                  <state stateKeys="MouseOver+Selected">
151.3875 +                     <style>
151.3876 +                        <textForeground/>
151.3877 +                        <textBackground/>
151.3878 +                        <background/>
151.3879 +                        <uiproperties/>
151.3880 +                     </style>
151.3881 +                     <canvas>
151.3882 +                        <size width="18" height="18"/>
151.3883 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.3884 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.3885 +                        <layer name="Layer 2">
151.3886 +                           <opacity>1.0</opacity>
151.3887 +                           <fillOpacity>1.0</fillOpacity>
151.3888 +                           <blendingMode>NORMAL</blendingMode>
151.3889 +                           <locked>false</locked>
151.3890 +                           <visible>true</visible>
151.3891 +                           <shapes>
151.3892 +                              <path>
151.3893 +                                 <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.3894 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.3895 +                                 <points>
151.3896 +                                    <point x="5.029411764705882" y="8.058823529411764" cp1x="5.029411764705882" cp1y="8.058823529411764" cp2x="5.029411764705882" cp2y="8.058823529411764"/>
151.3897 +                                    <point x="7.029411764705882" y="8.058823529411764" cp1x="7.029411764705882" cp1y="8.058823529411764" cp2x="7.029411764705882" cp2y="8.058823529411764"/>
151.3898 +                                    <point x="8.441176470588236" y="11.058823529411764" cp1x="8.441176470588236" cp1y="11.058823529411764" cp2x="8.441176470588236" cp2y="11.058823529411764"/>
151.3899 +                                    <point x="11.588235294117647" y="3.117647058823529" cp1x="11.588235294117647" cp1y="3.117647058823529" cp2x="11.588235294117647" cp2y="3.117647058823529"/>
151.3900 +                                    <point x="14.0" y="3.0882352941176467" cp1x="14.0" cp1y="3.0882352941176467" cp2x="14.0" cp2y="3.0882352941176467"/>
151.3901 +                                    <point x="8.941176470588236" y="13.029411764705882" cp1x="8.941176470588236" cp1y="13.029411764705882" cp2x="8.941176470588236" cp2y="13.029411764705882"/>
151.3902 +                                    <point x="8.058823529411764" y="13.029411764705882" cp1x="8.058823529411764" cp1y="13.029411764705882" cp2x="8.058823529411764" cp2y="13.029411764705882"/>
151.3903 +                                 </points>
151.3904 +                              </path>
151.3905 +                           </shapes>
151.3906 +                           <effects/>
151.3907 +                        </layer>
151.3908 +                        <layer name="Layer 1">
151.3909 +                           <opacity>1.0</opacity>
151.3910 +                           <fillOpacity>1.0</fillOpacity>
151.3911 +                           <blendingMode>NORMAL</blendingMode>
151.3912 +                           <locked>false</locked>
151.3913 +                           <visible>true</visible>
151.3914 +                           <shapes>
151.3915 +                              <rectangle x1="3.0" x2="15.0" y1="3.0" y2="15.0" rounding="3.764705882352935">
151.3916 +                                 <gradient cycleMethod="NO_CYCLE">
151.3917 +                                    <stop position="0.0" midpoint="0.5">
151.3918 +                                       <matte red="248" green="250" blue="252" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6198413" brightnessOffset="0.43921566" alphaOffset="0"/>
151.3919 +                                    </stop>
151.3920 +                                    <stop position="0.64457834" midpoint="0.5">
151.3921 +                                       <matte red="182" green="203" blue="222" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4555341" brightnessOffset="0.3215686" alphaOffset="0"/>
151.3922 +                                    </stop>
151.3923 +                                    <stop position="1.0" midpoint="0.5">
151.3924 +                                       <matte red="207" green="228" blue="247" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.47377098" brightnessOffset="0.41960782" alphaOffset="0"/>
151.3925 +                                    </stop>
151.3926 +                                 </gradient>
151.3927 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.2500000000000003" y2="0.9975490196078431"/>
151.3928 +                              </rectangle>
151.3929 +                              <rectangle x1="2.0" x2="16.0" y1="2.0" y2="16.0" rounding="3.705882352941174">
151.3930 +                                 <gradient cycleMethod="NO_CYCLE">
151.3931 +                                    <stop position="0.0" midpoint="0.5">
151.3932 +                                       <matte red="59" green="85" blue="109" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0013483167" saturationOffset="-0.1769987" brightnessOffset="-0.12156865" alphaOffset="0"/>
151.3933 +                                    </stop>
151.3934 +                                    <stop position="1.0" midpoint="0.5">
151.3935 +                                       <matte red="0" green="6" blue="30" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.05468172" saturationOffset="0.3642857" brightnessOffset="-0.43137258" alphaOffset="0"/>
151.3936 +                                    </stop>
151.3937 +                                 </gradient>
151.3938 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.25210084033613445" y2="0.9957983193277311"/>
151.3939 +                              </rectangle>
151.3940 +                              <rectangle x1="2.0" x2="16.0" y1="11.0" y2="17.0" rounding="5.176470588235279">
151.3941 +                                 <matte red="169" green="176" blue="190" alpha="166" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="-89"/>
151.3942 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.3943 +                              </rectangle>
151.3944 +                           </shapes>
151.3945 +                           <effects/>
151.3946 +                        </layer>
151.3947 +                     </canvas>
151.3948 +                  </state>
151.3949 +                  <state stateKeys="MouseOver+Selected+Focused">
151.3950 +                     <style>
151.3951 +                        <textForeground/>
151.3952 +                        <textBackground/>
151.3953 +                        <background/>
151.3954 +                        <uiproperties/>
151.3955 +                     </style>
151.3956 +                     <canvas>
151.3957 +                        <size width="18" height="18"/>
151.3958 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.3959 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.3960 +                        <layer name="Layer 2">
151.3961 +                           <opacity>1.0</opacity>
151.3962 +                           <fillOpacity>1.0</fillOpacity>
151.3963 +                           <blendingMode>NORMAL</blendingMode>
151.3964 +                           <locked>false</locked>
151.3965 +                           <visible>true</visible>
151.3966 +                           <shapes>
151.3967 +                              <path>
151.3968 +                                 <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.3969 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.3970 +                                 <points>
151.3971 +                                    <point x="5.029411764705882" y="8.058823529411764" cp1x="5.029411764705882" cp1y="8.058823529411764" cp2x="5.029411764705882" cp2y="8.058823529411764"/>
151.3972 +                                    <point x="7.029411764705882" y="8.058823529411764" cp1x="7.029411764705882" cp1y="8.058823529411764" cp2x="7.029411764705882" cp2y="8.058823529411764"/>
151.3973 +                                    <point x="8.441176470588236" y="11.058823529411764" cp1x="8.441176470588236" cp1y="11.058823529411764" cp2x="8.441176470588236" cp2y="11.058823529411764"/>
151.3974 +                                    <point x="11.588235294117647" y="3.117647058823529" cp1x="11.588235294117647" cp1y="3.117647058823529" cp2x="11.588235294117647" cp2y="3.117647058823529"/>
151.3975 +                                    <point x="14.0" y="3.0882352941176467" cp1x="14.0" cp1y="3.0882352941176467" cp2x="14.0" cp2y="3.0882352941176467"/>
151.3976 +                                    <point x="8.941176470588236" y="13.029411764705882" cp1x="8.941176470588236" cp1y="13.029411764705882" cp2x="8.941176470588236" cp2y="13.029411764705882"/>
151.3977 +                                    <point x="8.058823529411764" y="13.029411764705882" cp1x="8.058823529411764" cp1y="13.029411764705882" cp2x="8.058823529411764" cp2y="13.029411764705882"/>
151.3978 +                                 </points>
151.3979 +                              </path>
151.3980 +                           </shapes>
151.3981 +                           <effects/>
151.3982 +                        </layer>
151.3983 +                        <layer name="Layer 1">
151.3984 +                           <opacity>1.0</opacity>
151.3985 +                           <fillOpacity>1.0</fillOpacity>
151.3986 +                           <blendingMode>NORMAL</blendingMode>
151.3987 +                           <locked>false</locked>
151.3988 +                           <visible>true</visible>
151.3989 +                           <shapes>
151.3990 +                              <rectangle x1="3.0" x2="15.0" y1="3.0" y2="15.0" rounding="3.764705882352935">
151.3991 +                                 <gradient cycleMethod="NO_CYCLE">
151.3992 +                                    <stop position="0.0" midpoint="0.5">
151.3993 +                                       <matte red="248" green="250" blue="252" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6198413" brightnessOffset="0.43921566" alphaOffset="0"/>
151.3994 +                                    </stop>
151.3995 +                                    <stop position="0.64457834" midpoint="0.5">
151.3996 +                                       <matte red="182" green="203" blue="222" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4555341" brightnessOffset="0.3215686" alphaOffset="0"/>
151.3997 +                                    </stop>
151.3998 +                                    <stop position="1.0" midpoint="0.5">
151.3999 +                                       <matte red="207" green="228" blue="247" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.47377098" brightnessOffset="0.41960782" alphaOffset="0"/>
151.4000 +                                    </stop>
151.4001 +                                 </gradient>
151.4002 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.2500000000000003" y2="0.9975490196078431"/>
151.4003 +                              </rectangle>
151.4004 +                              <rectangle x1="2.0" x2="16.0" y1="2.0" y2="16.0" rounding="3.705882352941174">
151.4005 +                                 <gradient cycleMethod="NO_CYCLE">
151.4006 +                                    <stop position="0.0" midpoint="0.5">
151.4007 +                                       <matte red="59" green="85" blue="109" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0013483167" saturationOffset="-0.1769987" brightnessOffset="-0.12156865" alphaOffset="0"/>
151.4008 +                                    </stop>
151.4009 +                                    <stop position="1.0" midpoint="0.5">
151.4010 +                                       <matte red="0" green="6" blue="30" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.05468172" saturationOffset="0.3642857" brightnessOffset="-0.43137258" alphaOffset="0"/>
151.4011 +                                    </stop>
151.4012 +                                 </gradient>
151.4013 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.25210084033613445" y2="0.9957983193277311"/>
151.4014 +                              </rectangle>
151.4015 +                              <rectangle x1="0.6" x2="17.4" y1="0.6" y2="17.4" rounding="7.999999999999999">
151.4016 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.4017 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.4018 +                              </rectangle>
151.4019 +                           </shapes>
151.4020 +                           <effects/>
151.4021 +                        </layer>
151.4022 +                     </canvas>
151.4023 +                  </state>
151.4024 +                  <state stateKeys="Disabled+Selected">
151.4025 +                     <style>
151.4026 +                        <textForeground/>
151.4027 +                        <textBackground/>
151.4028 +                        <background/>
151.4029 +                        <uiproperties/>
151.4030 +                     </style>
151.4031 +                     <canvas>
151.4032 +                        <size width="18" height="18"/>
151.4033 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.4034 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.4035 +                        <layer name="Layer 2">
151.4036 +                           <opacity>1.0</opacity>
151.4037 +                           <fillOpacity>1.0</fillOpacity>
151.4038 +                           <blendingMode>NORMAL</blendingMode>
151.4039 +                           <locked>false</locked>
151.4040 +                           <visible>true</visible>
151.4041 +                           <shapes>
151.4042 +                              <path>
151.4043 +                                 <matte red="166" green="170" blue="177" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.027408898" saturationOffset="-0.5735674" brightnessOffset="0.14509803" alphaOffset="0"/>
151.4044 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.4045 +                                 <points>
151.4046 +                                    <point x="5.029411764705882" y="8.058823529411764" cp1x="5.029411764705882" cp1y="8.058823529411764" cp2x="5.029411764705882" cp2y="8.058823529411764"/>
151.4047 +                                    <point x="7.029411764705882" y="8.058823529411764" cp1x="7.029411764705882" cp1y="8.058823529411764" cp2x="7.029411764705882" cp2y="8.058823529411764"/>
151.4048 +                                    <point x="8.441176470588236" y="11.058823529411764" cp1x="8.441176470588236" cp1y="11.058823529411764" cp2x="8.441176470588236" cp2y="11.058823529411764"/>
151.4049 +                                    <point x="11.588235294117647" y="3.117647058823529" cp1x="11.588235294117647" cp1y="3.117647058823529" cp2x="11.588235294117647" cp2y="3.117647058823529"/>
151.4050 +                                    <point x="14.0" y="3.0882352941176467" cp1x="14.0" cp1y="3.0882352941176467" cp2x="14.0" cp2y="3.0882352941176467"/>
151.4051 +                                    <point x="8.941176470588236" y="13.029411764705882" cp1x="8.941176470588236" cp1y="13.029411764705882" cp2x="8.941176470588236" cp2y="13.029411764705882"/>
151.4052 +                                    <point x="8.058823529411764" y="13.029411764705882" cp1x="8.058823529411764" cp1y="13.029411764705882" cp2x="8.058823529411764" cp2y="13.029411764705882"/>
151.4053 +                                 </points>
151.4054 +                              </path>
151.4055 +                           </shapes>
151.4056 +                           <effects/>
151.4057 +                        </layer>
151.4058 +                        <layer name="Layer 1">
151.4059 +                           <opacity>1.0</opacity>
151.4060 +                           <fillOpacity>1.0</fillOpacity>
151.4061 +                           <blendingMode>NORMAL</blendingMode>
151.4062 +                           <locked>false</locked>
151.4063 +                           <visible>true</visible>
151.4064 +                           <shapes>
151.4065 +                              <rectangle x1="3.0" x2="15.0" y1="3.0" y2="15.0" rounding="3.764705882352935">
151.4066 +                                 <gradient cycleMethod="NO_CYCLE">
151.4067 +                                    <stop position="0.0" midpoint="0.5">
151.4068 +                                       <matte red="220" green="224" blue="230" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.59223604" brightnessOffset="0.35294116" alphaOffset="0"/>
151.4069 +                                    </stop>
151.4070 +                                    <stop position="0.64457834" midpoint="0.5">
151.4071 +                                       <matte red="204" green="210" blue="219" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.56722116" brightnessOffset="0.3098039" alphaOffset="0"/>
151.4072 +                                    </stop>
151.4073 +                                    <stop position="1.0" midpoint="0.5">
151.4074 +                                       <matte red="209" green="215" blue="224" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.56875" brightnessOffset="0.32941175" alphaOffset="0"/>
151.4075 +                                    </stop>
151.4076 +                                 </gradient>
151.4077 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.2500000000000003" y2="0.9975490196078431"/>
151.4078 +                              </rectangle>
151.4079 +                              <rectangle x1="2.0" x2="16.0" y1="2.0" y2="16.0" rounding="3.705882352941174">
151.4080 +                                 <gradient cycleMethod="NO_CYCLE">
151.4081 +                                    <stop position="0.0" midpoint="0.5">
151.4082 +                                       <matte red="191" green="197" blue="206" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.01111114" saturationOffset="-0.03771078" brightnessOffset="0.062745094" alphaOffset="0"/>
151.4083 +                                    </stop>
151.4084 +                                    <stop position="1.0" midpoint="0.5">
151.4085 +                                       <matte red="178" green="185" blue="193" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.02222222" saturationOffset="-0.032806106" brightnessOffset="0.011764705" alphaOffset="0"/>
151.4086 +                                    </stop>
151.4087 +                                 </gradient>
151.4088 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.25210084033613445" y2="0.9957983193277311"/>
151.4089 +                              </rectangle>
151.4090 +                           </shapes>
151.4091 +                           <effects/>
151.4092 +                        </layer>
151.4093 +                     </canvas>
151.4094 +                  </state>
151.4095 +               </backgroundStates>
151.4096 +               <foregroundStates/>
151.4097 +               <borderStates/>
151.4098 +               <regions/>
151.4099 +            </uiIconRegion>
151.4100 +         </regions>
151.4101 +      </uiComponent>
151.4102 +      <uiComponent opaque="false" type="javax.swing.JColorChooser" name="ColorChooser" ui="ColorChooserUI" subregion="false">
151.4103 +         <stateTypes/>
151.4104 +         <contentMargins top="5" bottom="0" left="0" right="0"/>
151.4105 +         <style>
151.4106 +            <textForeground/>
151.4107 +            <textBackground/>
151.4108 +            <background/>
151.4109 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.4110 +            <cacheMode>NO_CACHING</cacheMode>
151.4111 +            <uiproperties>
151.4112 +               <uiProperty name="swatchesDefaultRecentColor" type="COLOR">
151.4113 +                  <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.4114 +               </uiProperty>
151.4115 +            </uiproperties>
151.4116 +         </style>
151.4117 +         <backgroundStates/>
151.4118 +         <foregroundStates/>
151.4119 +         <borderStates/>
151.4120 +         <regions>
151.4121 +            <uiComponent opaque="false" componentName="ColorChooser.previewPanelHolder" type="javax.swing.JPanel" name="Panel" ui="PanelUI" subregion="true">
151.4122 +               <stateTypes/>
151.4123 +               <contentMargins top="0" bottom="10" left="5" right="5"/>
151.4124 +               <style>
151.4125 +                  <textForeground/>
151.4126 +                  <textBackground/>
151.4127 +                  <background/>
151.4128 +                  <uiproperties/>
151.4129 +               </style>
151.4130 +               <backgroundStates>
151.4131 +                  <state stateKeys="Enabled">
151.4132 +                     <style>
151.4133 +                        <textForeground/>
151.4134 +                        <textBackground/>
151.4135 +                        <background/>
151.4136 +                        <uiproperties/>
151.4137 +                     </style>
151.4138 +                     <canvas>
151.4139 +                        <size width="100" height="30"/>
151.4140 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.4141 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.4142 +                        <layer name="Layer 1">
151.4143 +                           <opacity>1.0</opacity>
151.4144 +                           <fillOpacity>1.0</fillOpacity>
151.4145 +                           <blendingMode>NORMAL</blendingMode>
151.4146 +                           <locked>false</locked>
151.4147 +                           <visible>true</visible>
151.4148 +                           <shapes/>
151.4149 +                           <effects/>
151.4150 +                        </layer>
151.4151 +                     </canvas>
151.4152 +                  </state>
151.4153 +               </backgroundStates>
151.4154 +               <foregroundStates/>
151.4155 +               <borderStates/>
151.4156 +               <regions>
151.4157 +                  <uiComponent opaque="false" componentName="OptionPane.label" type="javax.swing.JLabel" name="Label" ui="LabelUI" subregion="true">
151.4158 +                     <stateTypes/>
151.4159 +                     <contentMargins top="0" bottom="10" left="10" right="10"/>
151.4160 +                     <style>
151.4161 +                        <textForeground/>
151.4162 +                        <textBackground/>
151.4163 +                        <background/>
151.4164 +                        <uiproperties/>
151.4165 +                     </style>
151.4166 +                     <backgroundStates>
151.4167 +                        <state stateKeys="Enabled">
151.4168 +                           <style>
151.4169 +                              <textForeground/>
151.4170 +                              <textBackground/>
151.4171 +                              <background/>
151.4172 +                              <uiproperties/>
151.4173 +                           </style>
151.4174 +                           <canvas>
151.4175 +                              <size width="100" height="30"/>
151.4176 +                              <nextLayerNameIndex>2</nextLayerNameIndex>
151.4177 +                              <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.4178 +                              <layer name="Layer 1">
151.4179 +                                 <opacity>1.0</opacity>
151.4180 +                                 <fillOpacity>1.0</fillOpacity>
151.4181 +                                 <blendingMode>NORMAL</blendingMode>
151.4182 +                                 <locked>false</locked>
151.4183 +                                 <visible>true</visible>
151.4184 +                                 <shapes/>
151.4185 +                                 <effects/>
151.4186 +                              </layer>
151.4187 +                           </canvas>
151.4188 +                        </state>
151.4189 +                     </backgroundStates>
151.4190 +                     <foregroundStates/>
151.4191 +                     <borderStates/>
151.4192 +                     <regions/>
151.4193 +                  </uiComponent>
151.4194 +               </regions>
151.4195 +            </uiComponent>
151.4196 +         </regions>
151.4197 +      </uiComponent>
151.4198 +      <uiComponent opaque="false" type="javax.swing.JComboBox" name="ComboBox" ui="ComboBoxUI" subregion="false">
151.4199 +         <stateTypes>
151.4200 +            <stateType key="Enabled"/>
151.4201 +            <stateType key="MouseOver"/>
151.4202 +            <stateType key="Pressed"/>
151.4203 +            <stateType key="Selected"/>
151.4204 +            <stateType key="Disabled"/>
151.4205 +            <stateType key="Focused"/>
151.4206 +            <stateType key="Editable">
151.4207 +               <codeSnippet><![CDATA[
151.4208 +                          return ((JComboBox)c).isEditable();]]></codeSnippet>
151.4209 +            </stateType>
151.4210 +         </stateTypes>
151.4211 +         <contentMargins top="0" bottom="0" left="0" right="0"/>
151.4212 +         <style>
151.4213 +            <textForeground/>
151.4214 +            <textBackground/>
151.4215 +            <background/>
151.4216 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.4217 +            <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.4218 +            <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.4219 +            <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.4220 +            <uiproperties>
151.4221 +               <uiProperty name="forceOpaque" type="BOOLEAN" value="true"/>
151.4222 +               <uiProperty name="buttonWhenNotEditable" type="BOOLEAN" value="true"/>
151.4223 +               <uiProperty name="rendererUseListColors" type="BOOLEAN" value="false"/>
151.4224 +               <uiProperty name="pressedWhenPopupVisible" type="BOOLEAN" value="true"/>
151.4225 +               <uiProperty name="squareButton" type="BOOLEAN" value="false"/>
151.4226 +               <uiProperty name="popupInsets" type="INSETS">
151.4227 +                  <insets top="-2" bottom="0" left="2" right="2"/>
151.4228 +               </uiProperty>
151.4229 +               <uiProperty name="padding" type="INSETS">
151.4230 +                  <insets top="3" bottom="3" left="3" right="3"/>
151.4231 +               </uiProperty>
151.4232 +            </uiproperties>
151.4233 +         </style>
151.4234 +         <backgroundStates>
151.4235 +            <state stateKeys="Disabled">
151.4236 +               <style>
151.4237 +                  <textForeground/>
151.4238 +                  <textBackground/>
151.4239 +                  <background/>
151.4240 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.4241 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.4242 +                  <uiproperties/>
151.4243 +               </style>
151.4244 +               <canvas>
151.4245 +                  <size width="83" height="24"/>
151.4246 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.4247 +                  <stretchingInsets top="8" bottom="8" left="9" right="19"/>
151.4248 +                  <layer name="Layer 1">
151.4249 +                     <opacity>1.0</opacity>
151.4250 +                     <fillOpacity>1.0</fillOpacity>
151.4251 +                     <blendingMode>NORMAL</blendingMode>
151.4252 +                     <locked>false</locked>
151.4253 +                     <visible>true</visible>
151.4254 +                     <shapes>
151.4255 +                        <path>
151.4256 +                           <gradient cycleMethod="NO_CYCLE">
151.4257 +                              <stop position="0.0" midpoint="0.5">
151.4258 +                                 <matte red="220" green="224" blue="230" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.59223604" brightnessOffset="0.35294116" alphaOffset="0"/>
151.4259 +                              </stop>
151.4260 +                              <stop position="0.34375" midpoint="0.5">
151.4261 +                                 <matte red="210" green="215" blue="223" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.02391243" saturationOffset="-0.5774183" brightnessOffset="0.32549018" alphaOffset="0"/>
151.4262 +                              </stop>
151.4263 +                              <stop position="0.6193182" midpoint="0.5">
151.4264 +                                 <matte red="204" green="210" blue="219" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.56722116" brightnessOffset="0.3098039" alphaOffset="0"/>
151.4265 +                              </stop>
151.4266 +                              <stop position="1.0" midpoint="0.5">
151.4267 +                                 <matte red="206" green="212" blue="221" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.567841" brightnessOffset="0.31764704" alphaOffset="0"/>
151.4268 +                              </stop>
151.4269 +                           </gradient>
151.4270 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.4271 +                           <points>
151.4272 +                              <point x="64.25" y="3.0" cp1x="64.25" cp1y="3.0" cp2x="64.25" cp2y="3.0"/>
151.4273 +                              <point x="75.0" y="3.0" cp1x="75.0" cp1y="3.0" cp2x="79.0" cp2y="3.0"/>
151.4274 +                              <point x="80.0" y="8.0" cp1x="80.0" cp1y="4.0" cp2x="80.0" cp2y="8.0"/>
151.4275 +                              <point x="80.0" y="16.0" cp1x="80.0" cp1y="16.0" cp2x="80.0" cp2y="20.0"/>
151.4276 +                              <point x="75.0" y="21.0" cp1x="79.0" cp1y="21.0" cp2x="75.0" cp2y="21.0"/>
151.4277 +                              <point x="64.25" y="21.0" cp1x="64.25" cp1y="21.0" cp2x="64.25" cp2y="21.0"/>
151.4278 +                           </points>
151.4279 +                        </path>
151.4280 +                        <path>
151.4281 +                           <gradient cycleMethod="NO_CYCLE">
151.4282 +                              <stop position="0.0" midpoint="0.5">
151.4283 +                                 <matte red="191" green="197" blue="206" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.56289876" brightnessOffset="0.2588235" alphaOffset="0"/>
151.4284 +                              </stop>
151.4285 +                              <stop position="1.0" midpoint="0.5">
151.4286 +                                 <matte red="178" green="185" blue="193" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.010237217" saturationOffset="-0.55799407" brightnessOffset="0.20784312" alphaOffset="0"/>
151.4287 +                              </stop>
151.4288 +                           </gradient>
151.4289 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.4290 +                           <points>
151.4291 +                              <point x="64.0" y="2.0" cp1x="64.0" cp1y="2.0" cp2x="64.0" cp2y="2.0"/>
151.4292 +                              <point x="76.0" y="2.0" cp1x="76.0" cp1y="2.0" cp2x="79.0" cp2y="2.0"/>
151.4293 +                              <point x="81.0" y="7.0" cp1x="81.0" cp1y="4.0" cp2x="81.0" cp2y="7.0"/>
151.4294 +                              <point x="81.0" y="17.0" cp1x="81.0" cp1y="17.0" cp2x="81.0" cp2y="20.0"/>
151.4295 +                              <point x="76.0" y="22.0" cp1x="79.0" cp1y="22.0" cp2x="76.0" cp2y="22.0"/>
151.4296 +                              <point x="64.0" y="22.0" cp1x="64.0" cp1y="22.0" cp2x="64.0" cp2y="22.0"/>
151.4297 +                           </points>
151.4298 +                        </path>
151.4299 +                        <path>
151.4300 +                           <gradient cycleMethod="NO_CYCLE">
151.4301 +                              <stop position="0.0" midpoint="0.5">
151.4302 +                                 <matte red="227" green="229" blue="233" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.60996324" brightnessOffset="0.36470586" alphaOffset="0"/>
151.4303 +                              </stop>
151.4304 +                              <stop position="0.4005682" midpoint="0.5">
151.4305 +                                 <matte red="219" green="221" blue="226" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.040395975" saturationOffset="-0.60474086" brightnessOffset="0.33725488" alphaOffset="0"/>
151.4306 +                              </stop>
151.4307 +                              <stop position="0.66477275" midpoint="0.5">
151.4308 +                                 <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5953556" brightnessOffset="0.32549018" alphaOffset="0"/>
151.4309 +                              </stop>
151.4310 +                              <stop position="1.0" midpoint="0.5">
151.4311 +                                 <matte red="216" green="219" blue="225" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5957143" brightnessOffset="0.3333333" alphaOffset="0"/>
151.4312 +                              </stop>
151.4313 +                           </gradient>
151.4314 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.4315 +                           <points>
151.4316 +                              <point x="8.0" y="3.0" cp1x="4.0" cp1y="3.0" cp2x="8.0" cp2y="3.0"/>
151.4317 +                              <point x="64.0" y="3.0" cp1x="64.0" cp1y="3.0" cp2x="64.0" cp2y="3.0"/>
151.4318 +                              <point x="64.0" y="21.0" cp1x="64.0" cp1y="21.0" cp2x="64.0" cp2y="21.0"/>
151.4319 +                              <point x="8.0" y="21.0" cp1x="8.0" cp1y="21.0" cp2x="4.0" cp2y="21.0"/>
151.4320 +                              <point x="3.0" y="16.0" cp1x="3.0" cp1y="20.0" cp2x="3.0" cp2y="16.0"/>
151.4321 +                              <point x="3.0" y="7.0" cp1x="3.0" cp1y="7.0" cp2x="3.0" cp2y="4.0"/>
151.4322 +                           </points>
151.4323 +                        </path>
151.4324 +                        <path>
151.4325 +                           <gradient cycleMethod="NO_CYCLE">
151.4326 +                              <stop position="0.0" midpoint="0.5">
151.4327 +                                 <matte red="201" green="204" blue="210" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5928571" brightnessOffset="0.2745098" alphaOffset="0"/>
151.4328 +                              </stop>
151.4329 +                              <stop position="1.0" midpoint="0.5">
151.4330 +                                 <matte red="188" green="191" blue="197" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.590029" brightnessOffset="0.2235294" alphaOffset="0"/>
151.4331 +                              </stop>
151.4332 +                           </gradient>
151.4333 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.4334 +                           <points>
151.4335 +                              <point x="2.0" y="7.0" cp1x="2.0" cp1y="4.0" cp2x="2.0" cp2y="7.0"/>
151.4336 +                              <point x="2.0" y="17.0" cp1x="2.0" cp1y="17.0" cp2x="2.0" cp2y="20.0"/>
151.4337 +                              <point x="7.0" y="22.0" cp1x="4.0" cp1y="22.0" cp2x="7.0" cp2y="22.0"/>
151.4338 +                              <point x="64.0" y="22.0" cp1x="64.0" cp1y="22.0" cp2x="64.0" cp2y="22.0"/>
151.4339 +                              <point x="64.0" y="2.0" cp1x="64.0" cp1y="2.0" cp2x="64.0" cp2y="2.0"/>
151.4340 +                              <point x="7.0" y="2.0" cp1x="7.0" cp1y="2.0" cp2x="4.0" cp2y="2.0"/>
151.4341 +                           </points>
151.4342 +                        </path>
151.4343 +                        <path>
151.4344 +                           <matte red="0" green="0" blue="0" alpha="8" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.74509805" alphaOffset="-247"/>
151.4345 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.4346 +                           <points>
151.4347 +                              <point x="2.0" y="16.0" cp1x="2.0" cp1y="16.0" cp2x="2.0" cp2y="16.0"/>
151.4348 +                              <point x="2.0" y="18.0" cp1x="2.0" cp1y="18.0" cp2x="2.0" cp2y="21.0"/>
151.4349 +                              <point x="7.0" y="23.0" cp1x="4.0" cp1y="23.0" cp2x="7.0" cp2y="23.0"/>
151.4350 +                              <point x="76.0" y="23.0" cp1x="76.0" cp1y="23.0" cp2x="79.0" cp2y="23.0"/>
151.4351 +                              <point x="81.0" y="18.0" cp1x="81.0" cp1y="21.0" cp2x="81.0" cp2y="18.0"/>
151.4352 +                              <point x="81.0" y="16.0" cp1x="81.0" cp1y="16.0" cp2x="81.0" cp2y="16.0"/>
151.4353 +                           </points>
151.4354 +                        </path>
151.4355 +                     </shapes>
151.4356 +                     <effects/>
151.4357 +                  </layer>
151.4358 +                  <templateLayer fileName="113cff8896a.png">
151.4359 +                     <layer name="Template" type="template">
151.4360 +                        <opacity>1.0</opacity>
151.4361 +                        <fillOpacity>1.0</fillOpacity>
151.4362 +                        <blendingMode>NORMAL</blendingMode>
151.4363 +                        <locked>false</locked>
151.4364 +                        <visible>false</visible>
151.4365 +                        <shapes/>
151.4366 +                        <effects/>
151.4367 +                     </layer>
151.4368 +                  </templateLayer>
151.4369 +               </canvas>
151.4370 +            </state>
151.4371 +            <state stateKeys="Disabled+Pressed">
151.4372 +               <style>
151.4373 +                  <textForeground/>
151.4374 +                  <textBackground/>
151.4375 +                  <background/>
151.4376 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.4377 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.4378 +                  <uiproperties/>
151.4379 +               </style>
151.4380 +               <canvas>
151.4381 +                  <size width="83" height="24"/>
151.4382 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.4383 +                  <stretchingInsets top="8" bottom="8" left="9" right="19"/>
151.4384 +                  <layer name="Layer 1">
151.4385 +                     <opacity>1.0</opacity>
151.4386 +                     <fillOpacity>1.0</fillOpacity>
151.4387 +                     <blendingMode>NORMAL</blendingMode>
151.4388 +                     <locked>false</locked>
151.4389 +                     <visible>true</visible>
151.4390 +                     <shapes>
151.4391 +                        <path>
151.4392 +                           <gradient cycleMethod="NO_CYCLE">
151.4393 +                              <stop position="0.0" midpoint="0.5">
151.4394 +                                 <matte red="220" green="224" blue="230" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.59223604" brightnessOffset="0.35294116" alphaOffset="0"/>
151.4395 +                              </stop>
151.4396 +                              <stop position="0.34375" midpoint="0.5">
151.4397 +                                 <matte red="210" green="215" blue="223" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.02391243" saturationOffset="-0.5774183" brightnessOffset="0.32549018" alphaOffset="0"/>
151.4398 +                              </stop>
151.4399 +                              <stop position="0.6193182" midpoint="0.5">
151.4400 +                                 <matte red="204" green="210" blue="219" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.56722116" brightnessOffset="0.3098039" alphaOffset="0"/>
151.4401 +                              </stop>
151.4402 +                              <stop position="1.0" midpoint="0.5">
151.4403 +                                 <matte red="206" green="212" blue="221" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.567841" brightnessOffset="0.31764704" alphaOffset="0"/>
151.4404 +                              </stop>
151.4405 +                           </gradient>
151.4406 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.4407 +                           <points>
151.4408 +                              <point x="64.25" y="3.0" cp1x="64.25" cp1y="3.0" cp2x="64.25" cp2y="3.0"/>
151.4409 +                              <point x="75.0" y="3.0" cp1x="75.0" cp1y="3.0" cp2x="79.0" cp2y="3.0"/>
151.4410 +                              <point x="80.0" y="8.0" cp1x="80.0" cp1y="4.0" cp2x="80.0" cp2y="8.0"/>
151.4411 +                              <point x="80.0" y="16.0" cp1x="80.0" cp1y="16.0" cp2x="80.0" cp2y="20.0"/>
151.4412 +                              <point x="75.0" y="21.0" cp1x="79.0" cp1y="21.0" cp2x="75.0" cp2y="21.0"/>
151.4413 +                              <point x="64.25" y="21.0" cp1x="64.25" cp1y="21.0" cp2x="64.25" cp2y="21.0"/>
151.4414 +                           </points>
151.4415 +                        </path>
151.4416 +                        <path>
151.4417 +                           <gradient cycleMethod="NO_CYCLE">
151.4418 +                              <stop position="0.0" midpoint="0.5">
151.4419 +                                 <matte red="191" green="197" blue="206" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.56289876" brightnessOffset="0.2588235" alphaOffset="0"/>
151.4420 +                              </stop>
151.4421 +                              <stop position="1.0" midpoint="0.5">
151.4422 +                                 <matte red="178" green="185" blue="193" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.010237217" saturationOffset="-0.55799407" brightnessOffset="0.20784312" alphaOffset="0"/>
151.4423 +                              </stop>
151.4424 +                           </gradient>
151.4425 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.4426 +                           <points>
151.4427 +                              <point x="64.0" y="2.0" cp1x="64.0" cp1y="2.0" cp2x="64.0" cp2y="2.0"/>
151.4428 +                              <point x="76.0" y="2.0" cp1x="76.0" cp1y="2.0" cp2x="79.0" cp2y="2.0"/>
151.4429 +                              <point x="81.0" y="7.0" cp1x="81.0" cp1y="4.0" cp2x="81.0" cp2y="7.0"/>
151.4430 +                              <point x="81.0" y="17.0" cp1x="81.0" cp1y="17.0" cp2x="81.0" cp2y="20.0"/>
151.4431 +                              <point x="76.0" y="22.0" cp1x="79.0" cp1y="22.0" cp2x="76.0" cp2y="22.0"/>
151.4432 +                              <point x="64.0" y="22.0" cp1x="64.0" cp1y="22.0" cp2x="64.0" cp2y="22.0"/>
151.4433 +                           </points>
151.4434 +                        </path>
151.4435 +                        <path>
151.4436 +                           <gradient cycleMethod="NO_CYCLE">
151.4437 +                              <stop position="0.0" midpoint="0.5">
151.4438 +                                 <matte red="227" green="229" blue="233" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.60996324" brightnessOffset="0.36470586" alphaOffset="0"/>
151.4439 +                              </stop>
151.4440 +                              <stop position="0.4005682" midpoint="0.5">
151.4441 +                                 <matte red="219" green="221" blue="226" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.040395975" saturationOffset="-0.60474086" brightnessOffset="0.33725488" alphaOffset="0"/>
151.4442 +                              </stop>
151.4443 +                              <stop position="0.66477275" midpoint="0.5">
151.4444 +                                 <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5953556" brightnessOffset="0.32549018" alphaOffset="0"/>
151.4445 +                              </stop>
151.4446 +                              <stop position="1.0" midpoint="0.5">
151.4447 +                                 <matte red="216" green="219" blue="225" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5957143" brightnessOffset="0.3333333" alphaOffset="0"/>
151.4448 +                              </stop>
151.4449 +                           </gradient>
151.4450 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.4451 +                           <points>
151.4452 +                              <point x="8.0" y="3.0" cp1x="4.0" cp1y="3.0" cp2x="8.0" cp2y="3.0"/>
151.4453 +                              <point x="64.0" y="3.0" cp1x="64.0" cp1y="3.0" cp2x="64.0" cp2y="3.0"/>
151.4454 +                              <point x="64.0" y="21.0" cp1x="64.0" cp1y="21.0" cp2x="64.0" cp2y="21.0"/>
151.4455 +                              <point x="8.0" y="21.0" cp1x="8.0" cp1y="21.0" cp2x="4.0" cp2y="21.0"/>
151.4456 +                              <point x="3.0" y="16.0" cp1x="3.0" cp1y="20.0" cp2x="3.0" cp2y="16.0"/>
151.4457 +                              <point x="3.0" y="7.0" cp1x="3.0" cp1y="7.0" cp2x="3.0" cp2y="4.0"/>
151.4458 +                           </points>
151.4459 +                        </path>
151.4460 +                        <path>
151.4461 +                           <gradient cycleMethod="NO_CYCLE">
151.4462 +                              <stop position="0.0" midpoint="0.5">
151.4463 +                                 <matte red="201" green="204" blue="210" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5928571" brightnessOffset="0.2745098" alphaOffset="0"/>
151.4464 +                              </stop>
151.4465 +                              <stop position="1.0" midpoint="0.5">
151.4466 +                                 <matte red="188" green="191" blue="197" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.590029" brightnessOffset="0.2235294" alphaOffset="0"/>
151.4467 +                              </stop>
151.4468 +                           </gradient>
151.4469 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.4470 +                           <points>
151.4471 +                              <point x="2.0" y="7.0" cp1x="2.0" cp1y="4.0" cp2x="2.0" cp2y="7.0"/>
151.4472 +                              <point x="2.0" y="17.0" cp1x="2.0" cp1y="17.0" cp2x="2.0" cp2y="20.0"/>
151.4473 +                              <point x="7.0" y="22.0" cp1x="4.0" cp1y="22.0" cp2x="7.0" cp2y="22.0"/>
151.4474 +                              <point x="64.0" y="22.0" cp1x="64.0" cp1y="22.0" cp2x="64.0" cp2y="22.0"/>
151.4475 +                              <point x="64.0" y="2.0" cp1x="64.0" cp1y="2.0" cp2x="64.0" cp2y="2.0"/>
151.4476 +                              <point x="7.0" y="2.0" cp1x="7.0" cp1y="2.0" cp2x="4.0" cp2y="2.0"/>
151.4477 +                           </points>
151.4478 +                        </path>
151.4479 +                        <path>
151.4480 +                           <matte red="0" green="0" blue="0" alpha="8" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.74509805" alphaOffset="-247"/>
151.4481 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.4482 +                           <points>
151.4483 +                              <point x="2.0" y="16.0" cp1x="2.0" cp1y="16.0" cp2x="2.0" cp2y="16.0"/>
151.4484 +                              <point x="2.0" y="18.0" cp1x="2.0" cp1y="18.0" cp2x="2.0" cp2y="21.0"/>
151.4485 +                              <point x="7.0" y="23.0" cp1x="4.0" cp1y="23.0" cp2x="7.0" cp2y="23.0"/>
151.4486 +                              <point x="76.0" y="23.0" cp1x="76.0" cp1y="23.0" cp2x="79.0" cp2y="23.0"/>
151.4487 +                              <point x="81.0" y="18.0" cp1x="81.0" cp1y="21.0" cp2x="81.0" cp2y="18.0"/>
151.4488 +                              <point x="81.0" y="16.0" cp1x="81.0" cp1y="16.0" cp2x="81.0" cp2y="16.0"/>
151.4489 +                           </points>
151.4490 +                        </path>
151.4491 +                     </shapes>
151.4492 +                     <effects/>
151.4493 +                  </layer>
151.4494 +                  <templateLayer fileName="113cff8896a.png">
151.4495 +                     <layer name="Template" type="template">
151.4496 +                        <opacity>1.0</opacity>
151.4497 +                        <fillOpacity>1.0</fillOpacity>
151.4498 +                        <blendingMode>NORMAL</blendingMode>
151.4499 +                        <locked>false</locked>
151.4500 +                        <visible>false</visible>
151.4501 +                        <shapes/>
151.4502 +                        <effects/>
151.4503 +                     </layer>
151.4504 +                  </templateLayer>
151.4505 +               </canvas>
151.4506 +            </state>
151.4507 +            <state stateKeys="Enabled">
151.4508 +               <style>
151.4509 +                  <textForeground/>
151.4510 +                  <textBackground/>
151.4511 +                  <background/>
151.4512 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.4513 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.4514 +                  <uiproperties/>
151.4515 +               </style>
151.4516 +               <canvas>
151.4517 +                  <size width="83" height="24"/>
151.4518 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.4519 +                  <stretchingInsets top="8" bottom="8" left="9" right="19"/>
151.4520 +                  <layer name="Layer 1">
151.4521 +                     <opacity>1.0</opacity>
151.4522 +                     <fillOpacity>1.0</fillOpacity>
151.4523 +                     <blendingMode>NORMAL</blendingMode>
151.4524 +                     <locked>false</locked>
151.4525 +                     <visible>true</visible>
151.4526 +                     <shapes>
151.4527 +                        <path>
151.4528 +                           <gradient cycleMethod="NO_CYCLE">
151.4529 +                              <stop position="0.0" midpoint="0.5">
151.4530 +                                 <matte red="246" green="248" blue="250" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6197143" brightnessOffset="0.43137252" alphaOffset="0"/>
151.4531 +                              </stop>
151.4532 +                              <stop position="0.34375" midpoint="0.5">
151.4533 +                                 <matte red="179" green="197" blue="212" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="-0.0028941035" saturationOffset="-0.4800539" brightnessOffset="0.28235292" alphaOffset="0"/>
151.4534 +                              </stop>
151.4535 +                              <stop position="0.6193182" midpoint="0.5">
151.4536 +                                 <matte red="163" green="184" blue="203" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.43866998" brightnessOffset="0.24705881" alphaOffset="0"/>
151.4537 +                              </stop>
151.4538 +                              <stop position="1.0" midpoint="0.5">
151.4539 +                                 <matte red="191" green="212" blue="231" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4625541" brightnessOffset="0.35686272" alphaOffset="0"/>
151.4540 +                              </stop>
151.4541 +                           </gradient>
151.4542 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.4543 +                           <points>
151.4544 +                              <point x="64.25" y="3.0" cp1x="64.25" cp1y="3.0" cp2x="64.25" cp2y="3.0"/>
151.4545 +                              <point x="75.0" y="3.0" cp1x="75.0" cp1y="3.0" cp2x="79.0" cp2y="3.0"/>
151.4546 +                              <point x="80.0" y="8.0" cp1x="80.0" cp1y="4.0" cp2x="80.0" cp2y="8.0"/>
151.4547 +                              <point x="80.0" y="16.0" cp1x="80.0" cp1y="16.0" cp2x="80.0" cp2y="20.0"/>
151.4548 +                              <point x="75.0" y="21.0" cp1x="79.0" cp1y="21.0" cp2x="75.0" cp2y="21.0"/>
151.4549 +                              <point x="64.25" y="21.0" cp1x="64.25" cp1y="21.0" cp2x="64.25" cp2y="21.0"/>
151.4550 +                           </points>
151.4551 +                        </path>
151.4552 +                        <path>
151.4553 +                           <gradient cycleMethod="NO_CYCLE">
151.4554 +                              <stop position="0.0" midpoint="0.5">
151.4555 +                                 <matte red="98" green="119" blue="138" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.34585923" brightnessOffset="-0.007843137" alphaOffset="0"/>
151.4556 +                              </stop>
151.4557 +                              <stop position="1.0" midpoint="0.5">
151.4558 +                                 <matte red="34" green="55" blue="74" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.095173776" brightnessOffset="-0.25882354" alphaOffset="0"/>
151.4559 +                              </stop>
151.4560 +                           </gradient>
151.4561 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.4562 +                           <points>
151.4563 +                              <point x="64.0" y="2.0" cp1x="64.0" cp1y="2.0" cp2x="64.0" cp2y="2.0"/>
151.4564 +                              <point x="76.0" y="2.0" cp1x="76.0" cp1y="2.0" cp2x="79.0" cp2y="2.0"/>
151.4565 +                              <point x="81.0" y="7.0" cp1x="81.0" cp1y="4.0" cp2x="81.0" cp2y="7.0"/>
151.4566 +                              <point x="81.0" y="17.0" cp1x="81.0" cp1y="17.0" cp2x="81.0" cp2y="20.0"/>
151.4567 +                              <point x="76.0" y="22.0" cp1x="79.0" cp1y="22.0" cp2x="76.0" cp2y="22.0"/>
151.4568 +                              <point x="64.0" y="22.0" cp1x="64.0" cp1y="22.0" cp2x="64.0" cp2y="22.0"/>
151.4569 +                           </points>
151.4570 +                        </path>
151.4571 +                        <path>
151.4572 +                           <gradient cycleMethod="NO_CYCLE">
151.4573 +                              <stop position="0.0" midpoint="0.5">
151.4574 +                                 <matte red="251" green="251" blue="252" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="-0.63174605" brightnessOffset="0.43921566" alphaOffset="0"/>
151.4575 +                              </stop>
151.4576 +                              <stop position="0.4005682" midpoint="0.5">
151.4577 +                                 <matte red="224" green="226" blue="231" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.040395975" saturationOffset="-0.6054113" brightnessOffset="0.35686272" alphaOffset="0"/>
151.4578 +                              </stop>
151.4579 +                              <stop position="0.66477275" midpoint="0.5">
151.4580 +                                 <matte red="214" green="217" blue="223" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5953556" brightnessOffset="0.32549018" alphaOffset="0"/>
151.4581 +                              </stop>
151.4582 +                              <stop position="1.0" midpoint="0.5">
151.4583 +                                 <matte red="242" green="245" blue="251" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5998577" brightnessOffset="0.4352941" alphaOffset="0"/>
151.4584 +                              </stop>
151.4585 +                           </gradient>
151.4586 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.4587 +                           <points>
151.4588 +                              <point x="8.0" y="3.0" cp1x="4.0" cp1y="3.0" cp2x="8.0" cp2y="3.0"/>
151.4589 +                              <point x="64.0" y="3.0" cp1x="64.0" cp1y="3.0" cp2x="64.0" cp2y="3.0"/>
151.4590 +                              <point x="64.0" y="21.0" cp1x="64.0" cp1y="21.0" cp2x="64.0" cp2y="21.0"/>
151.4591 +                              <point x="8.0" y="21.0" cp1x="8.0" cp1y="21.0" cp2x="4.0" cp2y="21.0"/>
151.4592 +                              <point x="3.0" y="16.0" cp1x="3.0" cp1y="20.0" cp2x="3.0" cp2y="16.0"/>
151.4593 +                              <point x="3.0" y="7.0" cp1x="3.0" cp1y="7.0" cp2x="3.0" cp2y="4.0"/>
151.4594 +                           </points>
151.4595 +                        </path>
151.4596 +                        <path>
151.4597 +                           <gradient cycleMethod="NO_CYCLE">
151.4598 +                              <stop position="0.0" midpoint="0.5">
151.4599 +                                 <matte red="149" green="152" blue="158" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5787523" brightnessOffset="0.07058823" alphaOffset="0"/>
151.4600 +                              </stop>
151.4601 +                              <stop position="1.0" midpoint="0.5">
151.4602 +                                 <matte red="85" green="88" blue="94" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5399696" brightnessOffset="-0.18039218" alphaOffset="0"/>
151.4603 +                              </stop>
151.4604 +                           </gradient>
151.4605 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.4606 +                           <points>
151.4607 +                              <point x="2.0" y="7.0" cp1x="2.0" cp1y="4.0" cp2x="2.0" cp2y="7.0"/>
151.4608 +                              <point x="2.0" y="17.0" cp1x="2.0" cp1y="17.0" cp2x="2.0" cp2y="20.0"/>
151.4609 +                              <point x="7.0" y="22.0" cp1x="4.0" cp1y="22.0" cp2x="7.0" cp2y="22.0"/>
151.4610 +                              <point x="64.0" y="22.0" cp1x="64.0" cp1y="22.0" cp2x="64.0" cp2y="22.0"/>
151.4611 +                              <point x="64.0" y="2.0" cp1x="64.0" cp1y="2.0" cp2x="64.0" cp2y="2.0"/>
151.4612 +                              <point x="7.0" y="2.0" cp1x="7.0" cp1y="2.0" cp2x="4.0" cp2y="2.0"/>
151.4613 +                           </points>
151.4614 +                        </path>
151.4615 +                        <path>
151.4616 +                           <matte red="119" green="124" blue="134" alpha="79" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="-0.22" alphaOffset="-176"/>
151.4617 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.4618 +                           <points>
151.4619 +                              <point x="2.0" y="16.0" cp1x="2.0" cp1y="16.0" cp2x="2.0" cp2y="16.0"/>
151.4620 +                              <point x="2.0" y="18.0" cp1x="2.0" cp1y="18.0" cp2x="2.0" cp2y="21.0"/>
151.4621 +                              <point x="7.0" y="23.0" cp1x="4.0" cp1y="23.0" cp2x="7.0" cp2y="23.0"/>
151.4622 +                              <point x="76.0" y="23.0" cp1x="76.0" cp1y="23.0" cp2x="79.0" cp2y="23.0"/>
151.4623 +                              <point x="81.0" y="18.0" cp1x="81.0" cp1y="21.0" cp2x="81.0" cp2y="18.0"/>
151.4624 +                              <point x="81.0" y="16.0" cp1x="81.0" cp1y="16.0" cp2x="81.0" cp2y="16.0"/>
151.4625 +                           </points>
151.4626 +                        </path>
151.4627 +                     </shapes>
151.4628 +                     <effects/>
151.4629 +                  </layer>
151.4630 +                  <templateLayer fileName="113cfe59bd4.png">
151.4631 +                     <layer name="Template" type="template">
151.4632 +                        <opacity>1.0</opacity>
151.4633 +                        <fillOpacity>1.0</fillOpacity>
151.4634 +                        <blendingMode>NORMAL</blendingMode>
151.4635 +                        <locked>false</locked>
151.4636 +                        <visible>false</visible>
151.4637 +                        <shapes/>
151.4638 +                        <effects/>
151.4639 +                     </layer>
151.4640 +                  </templateLayer>
151.4641 +               </canvas>
151.4642 +            </state>
151.4643 +            <state stateKeys="Focused">
151.4644 +               <style>
151.4645 +                  <textForeground/>
151.4646 +                  <textBackground/>
151.4647 +                  <background/>
151.4648 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.4649 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.4650 +                  <uiproperties/>
151.4651 +               </style>
151.4652 +               <canvas>
151.4653 +                  <size width="83" height="24"/>
151.4654 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.4655 +                  <stretchingInsets top="8" bottom="8" left="9" right="19"/>
151.4656 +                  <layer name="Layer 1">
151.4657 +                     <opacity>1.0</opacity>
151.4658 +                     <fillOpacity>1.0</fillOpacity>
151.4659 +                     <blendingMode>NORMAL</blendingMode>
151.4660 +                     <locked>false</locked>
151.4661 +                     <visible>true</visible>
151.4662 +                     <shapes>
151.4663 +                        <path>
151.4664 +                           <gradient cycleMethod="NO_CYCLE">
151.4665 +                              <stop position="0.0" midpoint="0.5">
151.4666 +                                 <matte red="246" green="248" blue="250" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6197143" brightnessOffset="0.43137252" alphaOffset="0"/>
151.4667 +                              </stop>
151.4668 +                              <stop position="0.34375" midpoint="0.5">
151.4669 +                                 <matte red="179" green="197" blue="212" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="-0.0028941035" saturationOffset="-0.4800539" brightnessOffset="0.28235292" alphaOffset="0"/>
151.4670 +                              </stop>
151.4671 +                              <stop position="0.6193182" midpoint="0.5">
151.4672 +                                 <matte red="163" green="184" blue="203" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.43866998" brightnessOffset="0.24705881" alphaOffset="0"/>
151.4673 +                              </stop>
151.4674 +                              <stop position="1.0" midpoint="0.5">
151.4675 +                                 <matte red="191" green="212" blue="231" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4625541" brightnessOffset="0.35686272" alphaOffset="0"/>
151.4676 +                              </stop>
151.4677 +                           </gradient>
151.4678 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.4679 +                           <points>
151.4680 +                              <point x="64.25" y="3.0" cp1x="64.25" cp1y="3.0" cp2x="64.25" cp2y="3.0"/>
151.4681 +                              <point x="75.0" y="3.0" cp1x="75.0" cp1y="3.0" cp2x="79.0" cp2y="3.0"/>
151.4682 +                              <point x="80.0" y="8.0" cp1x="80.0" cp1y="4.0" cp2x="80.0" cp2y="8.0"/>
151.4683 +                              <point x="80.0" y="16.0" cp1x="80.0" cp1y="16.0" cp2x="80.0" cp2y="20.0"/>
151.4684 +                              <point x="75.0" y="21.0" cp1x="79.0" cp1y="21.0" cp2x="75.0" cp2y="21.0"/>
151.4685 +                              <point x="64.25" y="21.0" cp1x="64.25" cp1y="21.0" cp2x="64.25" cp2y="21.0"/>
151.4686 +                           </points>
151.4687 +                        </path>
151.4688 +                        <path>
151.4689 +                           <gradient cycleMethod="NO_CYCLE">
151.4690 +                              <stop position="0.0" midpoint="0.5">
151.4691 +                                 <matte red="98" green="119" blue="138" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.34585923" brightnessOffset="-0.007843137" alphaOffset="0"/>
151.4692 +                              </stop>
151.4693 +                              <stop position="1.0" midpoint="0.5">
151.4694 +                                 <matte red="34" green="55" blue="74" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.095173776" brightnessOffset="-0.25882354" alphaOffset="0"/>
151.4695 +                              </stop>
151.4696 +                           </gradient>
151.4697 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.4698 +                           <points>
151.4699 +                              <point x="64.0" y="2.0" cp1x="64.0" cp1y="2.0" cp2x="64.0" cp2y="2.0"/>
151.4700 +                              <point x="76.0" y="2.0" cp1x="76.0" cp1y="2.0" cp2x="79.0" cp2y="2.0"/>
151.4701 +                              <point x="81.0" y="7.0" cp1x="81.0" cp1y="4.0" cp2x="81.0" cp2y="7.0"/>
151.4702 +                              <point x="81.0" y="17.0" cp1x="81.0" cp1y="17.0" cp2x="81.0" cp2y="20.0"/>
151.4703 +                              <point x="76.0" y="22.0" cp1x="79.0" cp1y="22.0" cp2x="76.0" cp2y="22.0"/>
151.4704 +                              <point x="64.0" y="22.0" cp1x="64.0" cp1y="22.0" cp2x="64.0" cp2y="22.0"/>
151.4705 +                           </points>
151.4706 +                        </path>
151.4707 +                        <path>
151.4708 +                           <gradient cycleMethod="NO_CYCLE">
151.4709 +                              <stop position="0.0" midpoint="0.5">
151.4710 +                                 <matte red="251" green="251" blue="252" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="-0.63174605" brightnessOffset="0.43921566" alphaOffset="0"/>
151.4711 +                              </stop>
151.4712 +                              <stop position="0.4005682" midpoint="0.5">
151.4713 +                                 <matte red="224" green="226" blue="231" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.040395975" saturationOffset="-0.6054113" brightnessOffset="0.35686272" alphaOffset="0"/>
151.4714 +                              </stop>
151.4715 +                              <stop position="0.66477275" midpoint="0.5">
151.4716 +                                 <matte red="214" green="217" blue="223" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5953556" brightnessOffset="0.32549018" alphaOffset="0"/>
151.4717 +                              </stop>
151.4718 +                              <stop position="1.0" midpoint="0.5">
151.4719 +                                 <matte red="242" green="245" blue="251" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5998577" brightnessOffset="0.4352941" alphaOffset="0"/>
151.4720 +                              </stop>
151.4721 +                           </gradient>
151.4722 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.4723 +                           <points>
151.4724 +                              <point x="8.0" y="3.0" cp1x="4.0" cp1y="3.0" cp2x="8.0" cp2y="3.0"/>
151.4725 +                              <point x="64.0" y="3.0" cp1x="64.0" cp1y="3.0" cp2x="64.0" cp2y="3.0"/>
151.4726 +                              <point x="64.0" y="21.0" cp1x="64.0" cp1y="21.0" cp2x="64.0" cp2y="21.0"/>
151.4727 +                              <point x="8.0" y="21.0" cp1x="8.0" cp1y="21.0" cp2x="4.0" cp2y="21.0"/>
151.4728 +                              <point x="3.0" y="16.0" cp1x="3.0" cp1y="20.0" cp2x="3.0" cp2y="16.0"/>
151.4729 +                              <point x="3.0" y="7.0" cp1x="3.0" cp1y="7.0" cp2x="3.0" cp2y="4.0"/>
151.4730 +                           </points>
151.4731 +                        </path>
151.4732 +                        <path>
151.4733 +                           <gradient cycleMethod="NO_CYCLE">
151.4734 +                              <stop position="0.0" midpoint="0.5">
151.4735 +                                 <matte red="149" green="152" blue="158" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5787523" brightnessOffset="0.07058823" alphaOffset="0"/>
151.4736 +                              </stop>
151.4737 +                              <stop position="1.0" midpoint="0.5">
151.4738 +                                 <matte red="85" green="88" blue="94" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5399696" brightnessOffset="-0.18039218" alphaOffset="0"/>
151.4739 +                              </stop>
151.4740 +                           </gradient>
151.4741 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.4742 +                           <points>
151.4743 +                              <point x="2.0" y="7.0" cp1x="2.0" cp1y="4.0" cp2x="2.0" cp2y="7.0"/>
151.4744 +                              <point x="2.0" y="17.0" cp1x="2.0" cp1y="17.0" cp2x="2.0" cp2y="20.0"/>
151.4745 +                              <point x="7.0" y="22.0" cp1x="4.0" cp1y="22.0" cp2x="7.0" cp2y="22.0"/>
151.4746 +                              <point x="64.0" y="22.0" cp1x="64.0" cp1y="22.0" cp2x="64.0" cp2y="22.0"/>
151.4747 +                              <point x="64.0" y="2.0" cp1x="64.0" cp1y="2.0" cp2x="64.0" cp2y="2.0"/>
151.4748 +                              <point x="7.0" y="2.0" cp1x="7.0" cp1y="2.0" cp2x="4.0" cp2y="2.0"/>
151.4749 +                           </points>
151.4750 +                        </path>
151.4751 +                        <rectangle x1="0.6" x2="82.4" y1="0.6" y2="23.4" rounding="13.0">
151.4752 +                           <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.4753 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.4754 +                        </rectangle>
151.4755 +                     </shapes>
151.4756 +                     <effects/>
151.4757 +                  </layer>
151.4758 +               </canvas>
151.4759 +            </state>
151.4760 +            <state stateKeys="MouseOver+Focused">
151.4761 +               <style>
151.4762 +                  <textForeground/>
151.4763 +                  <textBackground/>
151.4764 +                  <background/>
151.4765 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.4766 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.4767 +                  <uiproperties/>
151.4768 +               </style>
151.4769 +               <canvas>
151.4770 +                  <size width="83" height="24"/>
151.4771 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.4772 +                  <stretchingInsets top="8" bottom="8" left="9" right="19"/>
151.4773 +                  <layer name="Layer 1">
151.4774 +                     <opacity>1.0</opacity>
151.4775 +                     <fillOpacity>1.0</fillOpacity>
151.4776 +                     <blendingMode>NORMAL</blendingMode>
151.4777 +                     <locked>false</locked>
151.4778 +                     <visible>true</visible>
151.4779 +                     <shapes>
151.4780 +                        <path>
151.4781 +                           <gradient cycleMethod="NO_CYCLE">
151.4782 +                              <stop position="0.0" midpoint="0.5">
151.4783 +                                 <matte red="248" green="250" blue="252" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6198413" brightnessOffset="0.43921566" alphaOffset="0"/>
151.4784 +                              </stop>
151.4785 +                              <stop position="0.34375" midpoint="0.5">
151.4786 +                                 <matte red="200" green="216" blue="230" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="-8.738637E-4" saturationOffset="-0.50527954" brightnessOffset="0.35294116" alphaOffset="0"/>
151.4787 +                              </stop>
151.4788 +                              <stop position="0.6193182" midpoint="0.5">
151.4789 +                                 <matte red="182" green="203" blue="222" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4555341" brightnessOffset="0.3215686" alphaOffset="0"/>
151.4790 +                              </stop>
151.4791 +                              <stop position="1.0" midpoint="0.5">
151.4792 +                                 <matte red="191" green="212" blue="231" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4625541" brightnessOffset="0.35686272" alphaOffset="0"/>
151.4793 +                              </stop>
151.4794 +                              <stop position="1.0" midpoint="0.5">
151.4795 +                                 <matte red="210" green="231" blue="250" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4757143" brightnessOffset="0.43137252" alphaOffset="0"/>
151.4796 +                              </stop>
151.4797 +                           </gradient>
151.4798 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.4799 +                           <points>
151.4800 +                              <point x="64.25" y="3.0" cp1x="64.25" cp1y="3.0" cp2x="64.25" cp2y="3.0"/>
151.4801 +                              <point x="75.0" y="3.0" cp1x="75.0" cp1y="3.0" cp2x="79.0" cp2y="3.0"/>
151.4802 +                              <point x="80.0" y="8.0" cp1x="80.0" cp1y="4.0" cp2x="80.0" cp2y="8.0"/>
151.4803 +                              <point x="80.0" y="16.0" cp1x="80.0" cp1y="16.0" cp2x="80.0" cp2y="20.0"/>
151.4804 +                              <point x="75.0" y="21.0" cp1x="79.0" cp1y="21.0" cp2x="75.0" cp2y="21.0"/>
151.4805 +                              <point x="64.25" y="21.0" cp1x="64.25" cp1y="21.0" cp2x="64.25" cp2y="21.0"/>
151.4806 +                           </points>
151.4807 +                        </path>
151.4808 +                        <path>
151.4809 +                           <gradient cycleMethod="NO_CYCLE">
151.4810 +                              <stop position="0.0" midpoint="0.5">
151.4811 +                                 <matte red="59" green="85" blue="109" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0013483167" saturationOffset="-0.1769987" brightnessOffset="-0.12156865" alphaOffset="0"/>
151.4812 +                              </stop>
151.4813 +                              <stop position="1.0" midpoint="0.5">
151.4814 +                                 <matte red="0" green="5" blue="29" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.059279382" saturationOffset="0.3642857" brightnessOffset="-0.43529415" alphaOffset="0"/>
151.4815 +                              </stop>
151.4816 +                           </gradient>
151.4817 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.4818 +                           <points>
151.4819 +                              <point x="64.0" y="2.0" cp1x="64.0" cp1y="2.0" cp2x="64.0" cp2y="2.0"/>
151.4820 +                              <point x="76.0" y="2.0" cp1x="76.0" cp1y="2.0" cp2x="79.0" cp2y="2.0"/>
151.4821 +                              <point x="81.0" y="7.0" cp1x="81.0" cp1y="4.0" cp2x="81.0" cp2y="7.0"/>
151.4822 +                              <point x="81.0" y="17.0" cp1x="81.0" cp1y="17.0" cp2x="81.0" cp2y="20.0"/>
151.4823 +                              <point x="76.0" y="22.0" cp1x="79.0" cp1y="22.0" cp2x="76.0" cp2y="22.0"/>
151.4824 +                              <point x="64.0" y="22.0" cp1x="64.0" cp1y="22.0" cp2x="64.0" cp2y="22.0"/>
151.4825 +                           </points>
151.4826 +                        </path>
151.4827 +                        <path>
151.4828 +                           <gradient cycleMethod="NO_CYCLE">
151.4829 +                              <stop position="0.0" midpoint="0.5">
151.4830 +                                 <matte red="253" green="253" blue="254" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="-0.6317773" brightnessOffset="0.4470588" alphaOffset="0"/>
151.4831 +                              </stop>
151.4832 +                              <stop position="0.4005682" midpoint="0.5">
151.4833 +                                 <matte red="240" green="242" blue="246" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.6113241" brightnessOffset="0.41568625" alphaOffset="0"/>
151.4834 +                              </stop>
151.4835 +                              <stop position="0.66477275" midpoint="0.5">
151.4836 +                                 <matte red="233" green="236" blue="242" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5985242" brightnessOffset="0.39999998" alphaOffset="0"/>
151.4837 +                              </stop>
151.4838 +                              <stop position="1.0" midpoint="0.5">
151.4839 +                                 <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="0"/>
151.4840 +                              </stop>
151.4841 +                           </gradient>
151.4842 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.4843 +                           <points>
151.4844 +                              <point x="8.0" y="3.0" cp1x="4.0" cp1y="3.0" cp2x="8.0" cp2y="3.0"/>
151.4845 +                              <point x="64.0" y="3.0" cp1x="64.0" cp1y="3.0" cp2x="64.0" cp2y="3.0"/>
151.4846 +                              <point x="64.0" y="21.0" cp1x="64.0" cp1y="21.0" cp2x="64.0" cp2y="21.0"/>
151.4847 +                              <point x="8.0" y="21.0" cp1x="8.0" cp1y="21.0" cp2x="4.0" cp2y="21.0"/>
151.4848 +                              <point x="3.0" y="16.0" cp1x="3.0" cp1y="20.0" cp2x="3.0" cp2y="16.0"/>
151.4849 +                              <point x="3.0" y="7.0" cp1x="3.0" cp1y="7.0" cp2x="3.0" cp2y="4.0"/>
151.4850 +                           </points>
151.4851 +                        </path>
151.4852 +                        <path>
151.4853 +                           <gradient cycleMethod="NO_CYCLE">
151.4854 +                              <stop position="0.0" midpoint="0.5">
151.4855 +                                 <matte red="122" green="126" blue="134" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.54616207" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.4856 +                              </stop>
151.4857 +                              <stop position="1.0" midpoint="0.5">
151.4858 +                                 <matte red="42" green="46" blue="54" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.41349208" brightnessOffset="-0.33725494" alphaOffset="0"/>
151.4859 +                              </stop>
151.4860 +                           </gradient>
151.4861 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.4862 +                           <points>
151.4863 +                              <point x="2.0" y="7.0" cp1x="2.0" cp1y="4.0" cp2x="2.0" cp2y="7.0"/>
151.4864 +                              <point x="2.0" y="17.0" cp1x="2.0" cp1y="17.0" cp2x="2.0" cp2y="20.0"/>
151.4865 +                              <point x="7.0" y="22.0" cp1x="4.0" cp1y="22.0" cp2x="7.0" cp2y="22.0"/>
151.4866 +                              <point x="64.0" y="22.0" cp1x="64.0" cp1y="22.0" cp2x="64.0" cp2y="22.0"/>
151.4867 +                              <point x="64.0" y="2.0" cp1x="64.0" cp1y="2.0" cp2x="64.0" cp2y="2.0"/>
151.4868 +                              <point x="7.0" y="2.0" cp1x="7.0" cp1y="2.0" cp2x="4.0" cp2y="2.0"/>
151.4869 +                           </points>
151.4870 +                        </path>
151.4871 +                        <rectangle x1="0.6" x2="82.4" y1="0.6" y2="23.4" rounding="13.0">
151.4872 +                           <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.4873 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.4874 +                        </rectangle>
151.4875 +                     </shapes>
151.4876 +                     <effects/>
151.4877 +                  </layer>
151.4878 +                  <templateLayer fileName="113cffce35a.png">
151.4879 +                     <layer name="Template" type="template">
151.4880 +                        <opacity>1.0</opacity>
151.4881 +                        <fillOpacity>1.0</fillOpacity>
151.4882 +                        <blendingMode>NORMAL</blendingMode>
151.4883 +                        <locked>false</locked>
151.4884 +                        <visible>false</visible>
151.4885 +                        <shapes/>
151.4886 +                        <effects/>
151.4887 +                     </layer>
151.4888 +                  </templateLayer>
151.4889 +               </canvas>
151.4890 +            </state>
151.4891 +            <state stateKeys="MouseOver">
151.4892 +               <style>
151.4893 +                  <textForeground/>
151.4894 +                  <textBackground/>
151.4895 +                  <background/>
151.4896 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.4897 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.4898 +                  <uiproperties/>
151.4899 +               </style>
151.4900 +               <canvas>
151.4901 +                  <size width="83" height="24"/>
151.4902 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.4903 +                  <stretchingInsets top="8" bottom="8" left="9" right="19"/>
151.4904 +                  <layer name="Layer 1">
151.4905 +                     <opacity>1.0</opacity>
151.4906 +                     <fillOpacity>1.0</fillOpacity>
151.4907 +                     <blendingMode>NORMAL</blendingMode>
151.4908 +                     <locked>false</locked>
151.4909 +                     <visible>true</visible>
151.4910 +                     <shapes>
151.4911 +                        <path>
151.4912 +                           <gradient cycleMethod="NO_CYCLE">
151.4913 +                              <stop position="0.0" midpoint="0.5">
151.4914 +                                 <matte red="248" green="250" blue="252" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6198413" brightnessOffset="0.43921566" alphaOffset="0"/>
151.4915 +                              </stop>
151.4916 +                              <stop position="0.34375" midpoint="0.5">
151.4917 +                                 <matte red="200" green="216" blue="230" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="-8.738637E-4" saturationOffset="-0.50527954" brightnessOffset="0.35294116" alphaOffset="0"/>
151.4918 +                              </stop>
151.4919 +                              <stop position="0.6193182" midpoint="0.5">
151.4920 +                                 <matte red="182" green="203" blue="222" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4555341" brightnessOffset="0.3215686" alphaOffset="0"/>
151.4921 +                              </stop>
151.4922 +                              <stop position="1.0" midpoint="0.5">
151.4923 +                                 <matte red="191" green="212" blue="231" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4625541" brightnessOffset="0.35686272" alphaOffset="0"/>
151.4924 +                              </stop>
151.4925 +                              <stop position="1.0" midpoint="0.5">
151.4926 +                                 <matte red="210" green="231" blue="250" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4757143" brightnessOffset="0.43137252" alphaOffset="0"/>
151.4927 +                              </stop>
151.4928 +                           </gradient>
151.4929 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.4930 +                           <points>
151.4931 +                              <point x="64.25" y="3.0" cp1x="64.25" cp1y="3.0" cp2x="64.25" cp2y="3.0"/>
151.4932 +                              <point x="75.0" y="3.0" cp1x="75.0" cp1y="3.0" cp2x="79.0" cp2y="3.0"/>
151.4933 +                              <point x="80.0" y="8.0" cp1x="80.0" cp1y="4.0" cp2x="80.0" cp2y="8.0"/>
151.4934 +                              <point x="80.0" y="16.0" cp1x="80.0" cp1y="16.0" cp2x="80.0" cp2y="20.0"/>
151.4935 +                              <point x="75.0" y="21.0" cp1x="79.0" cp1y="21.0" cp2x="75.0" cp2y="21.0"/>
151.4936 +                              <point x="64.25" y="21.0" cp1x="64.25" cp1y="21.0" cp2x="64.25" cp2y="21.0"/>
151.4937 +                           </points>
151.4938 +                        </path>
151.4939 +                        <path>
151.4940 +                           <gradient cycleMethod="NO_CYCLE">
151.4941 +                              <stop position="0.0" midpoint="0.5">
151.4942 +                                 <matte red="59" green="85" blue="109" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0013483167" saturationOffset="-0.1769987" brightnessOffset="-0.12156865" alphaOffset="0"/>
151.4943 +                              </stop>
151.4944 +                              <stop position="1.0" midpoint="0.5">
151.4945 +                                 <matte red="0" green="5" blue="29" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.059279382" saturationOffset="0.3642857" brightnessOffset="-0.43529415" alphaOffset="0"/>
151.4946 +                              </stop>
151.4947 +                           </gradient>
151.4948 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.4949 +                           <points>
151.4950 +                              <point x="64.0" y="2.0" cp1x="64.0" cp1y="2.0" cp2x="64.0" cp2y="2.0"/>
151.4951 +                              <point x="76.0" y="2.0" cp1x="76.0" cp1y="2.0" cp2x="79.0" cp2y="2.0"/>
151.4952 +                              <point x="81.0" y="7.0" cp1x="81.0" cp1y="4.0" cp2x="81.0" cp2y="7.0"/>
151.4953 +                              <point x="81.0" y="17.0" cp1x="81.0" cp1y="17.0" cp2x="81.0" cp2y="20.0"/>
151.4954 +                              <point x="76.0" y="22.0" cp1x="79.0" cp1y="22.0" cp2x="76.0" cp2y="22.0"/>
151.4955 +                              <point x="64.0" y="22.0" cp1x="64.0" cp1y="22.0" cp2x="64.0" cp2y="22.0"/>
151.4956 +                           </points>
151.4957 +                        </path>
151.4958 +                        <path>
151.4959 +                           <gradient cycleMethod="NO_CYCLE">
151.4960 +                              <stop position="0.0" midpoint="0.5">
151.4961 +                                 <matte red="253" green="253" blue="254" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="-0.6317773" brightnessOffset="0.4470588" alphaOffset="0"/>
151.4962 +                              </stop>
151.4963 +                              <stop position="0.4005682" midpoint="0.5">
151.4964 +                                 <matte red="240" green="242" blue="246" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.6113241" brightnessOffset="0.41568625" alphaOffset="0"/>
151.4965 +                              </stop>
151.4966 +                              <stop position="0.66477275" midpoint="0.5">
151.4967 +                                 <matte red="233" green="236" blue="242" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5985242" brightnessOffset="0.39999998" alphaOffset="0"/>
151.4968 +                              </stop>
151.4969 +                              <stop position="1.0" midpoint="0.5">
151.4970 +                                 <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="0"/>
151.4971 +                              </stop>
151.4972 +                           </gradient>
151.4973 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.4974 +                           <points>
151.4975 +                              <point x="8.0" y="3.0" cp1x="4.0" cp1y="3.0" cp2x="8.0" cp2y="3.0"/>
151.4976 +                              <point x="64.0" y="3.0" cp1x="64.0" cp1y="3.0" cp2x="64.0" cp2y="3.0"/>
151.4977 +                              <point x="64.0" y="21.0" cp1x="64.0" cp1y="21.0" cp2x="64.0" cp2y="21.0"/>
151.4978 +                              <point x="8.0" y="21.0" cp1x="8.0" cp1y="21.0" cp2x="4.0" cp2y="21.0"/>
151.4979 +                              <point x="3.0" y="16.0" cp1x="3.0" cp1y="20.0" cp2x="3.0" cp2y="16.0"/>
151.4980 +                              <point x="3.0" y="7.0" cp1x="3.0" cp1y="7.0" cp2x="3.0" cp2y="4.0"/>
151.4981 +                           </points>
151.4982 +                        </path>
151.4983 +                        <path>
151.4984 +                           <gradient cycleMethod="NO_CYCLE">
151.4985 +                              <stop position="0.0" midpoint="0.5">
151.4986 +                                 <matte red="122" green="126" blue="134" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.54616207" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.4987 +                              </stop>
151.4988 +                              <stop position="1.0" midpoint="0.5">
151.4989 +                                 <matte red="42" green="46" blue="54" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.41349208" brightnessOffset="-0.33725494" alphaOffset="0"/>
151.4990 +                              </stop>
151.4991 +                           </gradient>
151.4992 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.4993 +                           <points>
151.4994 +                              <point x="2.0" y="7.0" cp1x="2.0" cp1y="4.0" cp2x="2.0" cp2y="7.0"/>
151.4995 +                              <point x="2.0" y="17.0" cp1x="2.0" cp1y="17.0" cp2x="2.0" cp2y="20.0"/>
151.4996 +                              <point x="7.0" y="22.0" cp1x="4.0" cp1y="22.0" cp2x="7.0" cp2y="22.0"/>
151.4997 +                              <point x="64.0" y="22.0" cp1x="64.0" cp1y="22.0" cp2x="64.0" cp2y="22.0"/>
151.4998 +                              <point x="64.0" y="2.0" cp1x="64.0" cp1y="2.0" cp2x="64.0" cp2y="2.0"/>
151.4999 +                              <point x="7.0" y="2.0" cp1x="7.0" cp1y="2.0" cp2x="4.0" cp2y="2.0"/>
151.5000 +                           </points>
151.5001 +                        </path>
151.5002 +                        <path>
151.5003 +                           <matte red="119" green="124" blue="134" alpha="79" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="-0.22" alphaOffset="-176"/>
151.5004 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.5005 +                           <points>
151.5006 +                              <point x="2.0" y="16.0" cp1x="2.0" cp1y="16.0" cp2x="2.0" cp2y="16.0"/>
151.5007 +                              <point x="2.0" y="18.0" cp1x="2.0" cp1y="18.0" cp2x="2.0" cp2y="21.0"/>
151.5008 +                              <point x="7.0" y="23.0" cp1x="4.0" cp1y="23.0" cp2x="7.0" cp2y="23.0"/>
151.5009 +                              <point x="76.0" y="23.0" cp1x="76.0" cp1y="23.0" cp2x="79.0" cp2y="23.0"/>
151.5010 +                              <point x="81.0" y="18.0" cp1x="81.0" cp1y="21.0" cp2x="81.0" cp2y="18.0"/>
151.5011 +                              <point x="81.0" y="16.0" cp1x="81.0" cp1y="16.0" cp2x="81.0" cp2y="16.0"/>
151.5012 +                           </points>
151.5013 +                        </path>
151.5014 +                     </shapes>
151.5015 +                     <effects/>
151.5016 +                  </layer>
151.5017 +                  <templateLayer fileName="113cffce35a.png">
151.5018 +                     <layer name="Template" type="template">
151.5019 +                        <opacity>1.0</opacity>
151.5020 +                        <fillOpacity>1.0</fillOpacity>
151.5021 +                        <blendingMode>NORMAL</blendingMode>
151.5022 +                        <locked>false</locked>
151.5023 +                        <visible>false</visible>
151.5024 +                        <shapes/>
151.5025 +                        <effects/>
151.5026 +                     </layer>
151.5027 +                  </templateLayer>
151.5028 +               </canvas>
151.5029 +            </state>
151.5030 +            <state stateKeys="Pressed+Focused">
151.5031 +               <style>
151.5032 +                  <textForeground/>
151.5033 +                  <textBackground/>
151.5034 +                  <background/>
151.5035 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.5036 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.5037 +                  <uiproperties/>
151.5038 +               </style>
151.5039 +               <canvas>
151.5040 +                  <size width="83" height="24"/>
151.5041 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.5042 +                  <stretchingInsets top="8" bottom="8" left="9" right="19"/>
151.5043 +                  <layer name="Layer 1">
151.5044 +                     <opacity>1.0</opacity>
151.5045 +                     <fillOpacity>1.0</fillOpacity>
151.5046 +                     <blendingMode>NORMAL</blendingMode>
151.5047 +                     <locked>false</locked>
151.5048 +                     <visible>true</visible>
151.5049 +                     <shapes>
151.5050 +                        <path>
151.5051 +                           <gradient cycleMethod="NO_CYCLE">
151.5052 +                              <stop position="0.0" midpoint="0.5">
151.5053 +                                 <matte red="143" green="169" blue="192" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="-4.2033195E-4" saturationOffset="-0.38050595" brightnessOffset="0.20392156" alphaOffset="0"/>
151.5054 +                              </stop>
151.5055 +                              <stop position="0.34375" midpoint="0.5">
151.5056 +                                 <matte red="76" green="117" blue="154" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="4.081726E-4" saturationOffset="-0.12922078" brightnessOffset="0.054901958" alphaOffset="0"/>
151.5057 +                              </stop>
151.5058 +                              <stop position="0.6193182" midpoint="0.5">
151.5059 +                                 <matte red="53" green="100" blue="142" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.00895375" brightnessOffset="0.007843137" alphaOffset="0"/>
151.5060 +                              </stop>
151.5061 +                              <stop position="1.0" midpoint="0.5">
151.5062 +                                 <matte red="96" green="146" blue="189" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="-0.0015907288" saturationOffset="-0.1436508" brightnessOffset="0.19215685" alphaOffset="0"/>
151.5063 +                              </stop>
151.5064 +                           </gradient>
151.5065 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.5066 +                           <points>
151.5067 +                              <point x="64.25" y="3.0" cp1x="64.25" cp1y="3.0" cp2x="64.25" cp2y="3.0"/>
151.5068 +                              <point x="75.0" y="3.0" cp1x="75.0" cp1y="3.0" cp2x="79.0" cp2y="3.0"/>
151.5069 +                              <point x="80.0" y="8.0" cp1x="80.0" cp1y="4.0" cp2x="80.0" cp2y="8.0"/>
151.5070 +                              <point x="80.0" y="16.0" cp1x="80.0" cp1y="16.0" cp2x="80.0" cp2y="20.0"/>
151.5071 +                              <point x="75.0" y="21.0" cp1x="79.0" cp1y="21.0" cp2x="75.0" cp2y="21.0"/>
151.5072 +                              <point x="64.25" y="21.0" cp1x="64.25" cp1y="21.0" cp2x="64.25" cp2y="21.0"/>
151.5073 +                           </points>
151.5074 +                        </path>
151.5075 +                        <path>
151.5076 +                           <gradient cycleMethod="NO_CYCLE">
151.5077 +                              <stop position="0.0" midpoint="0.5">
151.5078 +                                 <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.5079 +                              </stop>
151.5080 +                              <stop position="1.0" midpoint="0.5">
151.5081 +                                 <matte red="28" green="56" blue="81" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-3.528595E-5" saturationOffset="0.018606722" brightnessOffset="-0.23137257" alphaOffset="0"/>
151.5082 +                              </stop>
151.5083 +                           </gradient>
151.5084 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.5085 +                           <points>
151.5086 +                              <point x="64.0" y="2.0" cp1x="64.0" cp1y="2.0" cp2x="64.0" cp2y="2.0"/>
151.5087 +                              <point x="76.0" y="2.0" cp1x="76.0" cp1y="2.0" cp2x="79.0" cp2y="2.0"/>
151.5088 +                              <point x="81.0" y="7.0" cp1x="81.0" cp1y="4.0" cp2x="81.0" cp2y="7.0"/>
151.5089 +                              <point x="81.0" y="17.0" cp1x="81.0" cp1y="17.0" cp2x="81.0" cp2y="20.0"/>
151.5090 +                              <point x="76.0" y="22.0" cp1x="79.0" cp1y="22.0" cp2x="76.0" cp2y="22.0"/>
151.5091 +                              <point x="64.0" y="22.0" cp1x="64.0" cp1y="22.0" cp2x="64.0" cp2y="22.0"/>
151.5092 +                           </points>
151.5093 +                        </path>
151.5094 +                        <path>
151.5095 +                           <gradient cycleMethod="NO_CYCLE">
151.5096 +                              <stop position="0.0" midpoint="0.5">
151.5097 +                                 <matte red="205" green="209" blue="216" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.027408898" saturationOffset="-0.5847884" brightnessOffset="0.2980392" alphaOffset="0"/>
151.5098 +                              </stop>
151.5099 +                              <stop position="0.4005682" midpoint="0.5">
151.5100 +                                 <matte red="172" green="179" blue="191" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.026611507" saturationOffset="-0.53623784" brightnessOffset="0.19999999" alphaOffset="0"/>
151.5101 +                              </stop>
151.5102 +                              <stop position="0.66477275" midpoint="0.5">
151.5103 +                                 <matte red="164" green="171" blue="184" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.029681683" saturationOffset="-0.52701867" brightnessOffset="0.17254901" alphaOffset="0"/>
151.5104 +                              </stop>
151.5105 +                              <stop position="1.0" midpoint="0.5">
151.5106 +                                 <matte red="202" green="208" blue="222" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.03801495" saturationOffset="-0.5456242" brightnessOffset="0.3215686" alphaOffset="0"/>
151.5107 +                              </stop>
151.5108 +                           </gradient>
151.5109 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.5110 +                           <points>
151.5111 +                              <point x="8.0" y="3.0" cp1x="4.0" cp1y="3.0" cp2x="8.0" cp2y="3.0"/>
151.5112 +                              <point x="64.0" y="3.0" cp1x="64.0" cp1y="3.0" cp2x="64.0" cp2y="3.0"/>
151.5113 +                              <point x="64.0" y="21.0" cp1x="64.0" cp1y="21.0" cp2x="64.0" cp2y="21.0"/>
151.5114 +                              <point x="8.0" y="21.0" cp1x="8.0" cp1y="21.0" cp2x="4.0" cp2y="21.0"/>
151.5115 +                              <point x="3.0" y="16.0" cp1x="3.0" cp1y="20.0" cp2x="3.0" cp2y="16.0"/>
151.5116 +                              <point x="3.0" y="7.0" cp1x="3.0" cp1y="7.0" cp2x="3.0" cp2y="4.0"/>
151.5117 +                           </points>
151.5118 +                        </path>
151.5119 +                        <path>
151.5120 +                           <gradient cycleMethod="NO_CYCLE">
151.5121 +                              <stop position="0.0" midpoint="0.5">
151.5122 +                                 <matte red="0" green="0" blue="7" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="0.3642857" brightnessOffset="-0.52156866" alphaOffset="0"/>
151.5123 +                              </stop>
151.5124 +                              <stop position="1.0" midpoint="0.5">
151.5125 +                                 <matte red="96" green="100" blue="108" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5246032" brightnessOffset="-0.12549022" alphaOffset="0"/>
151.5126 +                              </stop>
151.5127 +                           </gradient>
151.5128 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.5129 +                           <points>
151.5130 +                              <point x="2.0" y="7.0" cp1x="2.0" cp1y="4.0" cp2x="2.0" cp2y="7.0"/>
151.5131 +                              <point x="2.0" y="17.0" cp1x="2.0" cp1y="17.0" cp2x="2.0" cp2y="20.0"/>
151.5132 +                              <point x="7.0" y="22.0" cp1x="4.0" cp1y="22.0" cp2x="7.0" cp2y="22.0"/>
151.5133 +                              <point x="64.0" y="22.0" cp1x="64.0" cp1y="22.0" cp2x="64.0" cp2y="22.0"/>
151.5134 +                              <point x="64.0" y="2.0" cp1x="64.0" cp1y="2.0" cp2x="64.0" cp2y="2.0"/>
151.5135 +                              <point x="7.0" y="2.0" cp1x="7.0" cp1y="2.0" cp2x="4.0" cp2y="2.0"/>
151.5136 +                           </points>
151.5137 +                        </path>
151.5138 +                        <rectangle x1="0.6" x2="82.4" y1="0.6" y2="23.4" rounding="13.0">
151.5139 +                           <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.5140 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.5141 +                        </rectangle>
151.5142 +                     </shapes>
151.5143 +                     <effects/>
151.5144 +                  </layer>
151.5145 +                  <templateLayer fileName="113cfff3c26.png">
151.5146 +                     <layer name="Template" type="template">
151.5147 +                        <opacity>1.0</opacity>
151.5148 +                        <fillOpacity>1.0</fillOpacity>
151.5149 +                        <blendingMode>NORMAL</blendingMode>
151.5150 +                        <locked>false</locked>
151.5151 +                        <visible>false</visible>
151.5152 +                        <shapes/>
151.5153 +                        <effects/>
151.5154 +                     </layer>
151.5155 +                  </templateLayer>
151.5156 +               </canvas>
151.5157 +            </state>
151.5158 +            <state stateKeys="Pressed">
151.5159 +               <style>
151.5160 +                  <textForeground/>
151.5161 +                  <textBackground/>
151.5162 +                  <background/>
151.5163 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.5164 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.5165 +                  <uiproperties/>
151.5166 +               </style>
151.5167 +               <canvas>
151.5168 +                  <size width="83" height="24"/>
151.5169 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.5170 +                  <stretchingInsets top="8" bottom="8" left="9" right="19"/>
151.5171 +                  <layer name="Layer 1">
151.5172 +                     <opacity>1.0</opacity>
151.5173 +                     <fillOpacity>1.0</fillOpacity>
151.5174 +                     <blendingMode>NORMAL</blendingMode>
151.5175 +                     <locked>false</locked>
151.5176 +                     <visible>true</visible>
151.5177 +                     <shapes>
151.5178 +                        <path>
151.5179 +                           <gradient cycleMethod="NO_CYCLE">
151.5180 +                              <stop position="0.0" midpoint="0.5">
151.5181 +                                 <matte red="143" green="169" blue="192" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="-4.2033195E-4" saturationOffset="-0.38050595" brightnessOffset="0.20392156" alphaOffset="0"/>
151.5182 +                              </stop>
151.5183 +                              <stop position="0.34375" midpoint="0.5">
151.5184 +                                 <matte red="76" green="117" blue="154" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="4.081726E-4" saturationOffset="-0.12922078" brightnessOffset="0.054901958" alphaOffset="0"/>
151.5185 +                              </stop>
151.5186 +                              <stop position="0.6193182" midpoint="0.5">
151.5187 +                                 <matte red="53" green="100" blue="142" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.00895375" brightnessOffset="0.007843137" alphaOffset="0"/>
151.5188 +                              </stop>
151.5189 +                              <stop position="1.0" midpoint="0.5">
151.5190 +                                 <matte red="96" green="146" blue="189" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="-0.0015907288" saturationOffset="-0.1436508" brightnessOffset="0.19215685" alphaOffset="0"/>
151.5191 +                              </stop>
151.5192 +                           </gradient>
151.5193 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.5194 +                           <points>
151.5195 +                              <point x="64.25" y="3.0" cp1x="64.25" cp1y="3.0" cp2x="64.25" cp2y="3.0"/>
151.5196 +                              <point x="75.0" y="3.0" cp1x="75.0" cp1y="3.0" cp2x="79.0" cp2y="3.0"/>
151.5197 +                              <point x="80.0" y="8.0" cp1x="80.0" cp1y="4.0" cp2x="80.0" cp2y="8.0"/>
151.5198 +                              <point x="80.0" y="16.0" cp1x="80.0" cp1y="16.0" cp2x="80.0" cp2y="20.0"/>
151.5199 +                              <point x="75.0" y="21.0" cp1x="79.0" cp1y="21.0" cp2x="75.0" cp2y="21.0"/>
151.5200 +                              <point x="64.25" y="21.0" cp1x="64.25" cp1y="21.0" cp2x="64.25" cp2y="21.0"/>
151.5201 +                           </points>
151.5202 +                        </path>
151.5203 +                        <path>
151.5204 +                           <gradient cycleMethod="NO_CYCLE">
151.5205 +                              <stop position="0.0" midpoint="0.5">
151.5206 +                                 <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.5207 +                              </stop>
151.5208 +                              <stop position="1.0" midpoint="0.5">
151.5209 +                                 <matte red="28" green="56" blue="81" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-3.528595E-5" saturationOffset="0.018606722" brightnessOffset="-0.23137257" alphaOffset="0"/>
151.5210 +                              </stop>
151.5211 +                           </gradient>
151.5212 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.5213 +                           <points>
151.5214 +                              <point x="64.0" y="2.0" cp1x="64.0" cp1y="2.0" cp2x="64.0" cp2y="2.0"/>
151.5215 +                              <point x="76.0" y="2.0" cp1x="76.0" cp1y="2.0" cp2x="79.0" cp2y="2.0"/>
151.5216 +                              <point x="81.0" y="7.0" cp1x="81.0" cp1y="4.0" cp2x="81.0" cp2y="7.0"/>
151.5217 +                              <point x="81.0" y="17.0" cp1x="81.0" cp1y="17.0" cp2x="81.0" cp2y="20.0"/>
151.5218 +                              <point x="76.0" y="22.0" cp1x="79.0" cp1y="22.0" cp2x="76.0" cp2y="22.0"/>
151.5219 +                              <point x="64.0" y="22.0" cp1x="64.0" cp1y="22.0" cp2x="64.0" cp2y="22.0"/>
151.5220 +                           </points>
151.5221 +                        </path>
151.5222 +                        <path>
151.5223 +                           <gradient cycleMethod="NO_CYCLE">
151.5224 +                              <stop position="0.0" midpoint="0.5">
151.5225 +                                 <matte red="205" green="209" blue="216" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.027408898" saturationOffset="-0.5847884" brightnessOffset="0.2980392" alphaOffset="0"/>
151.5226 +                              </stop>
151.5227 +                              <stop position="0.4005682" midpoint="0.5">
151.5228 +                                 <matte red="172" green="179" blue="191" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.026611507" saturationOffset="-0.53623784" brightnessOffset="0.19999999" alphaOffset="0"/>
151.5229 +                              </stop>
151.5230 +                              <stop position="0.66477275" midpoint="0.5">
151.5231 +                                 <matte red="164" green="171" blue="184" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.029681683" saturationOffset="-0.52701867" brightnessOffset="0.17254901" alphaOffset="0"/>
151.5232 +                              </stop>
151.5233 +                              <stop position="1.0" midpoint="0.5">
151.5234 +                                 <matte red="202" green="208" blue="222" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.03801495" saturationOffset="-0.5456242" brightnessOffset="0.3215686" alphaOffset="0"/>
151.5235 +                              </stop>
151.5236 +                           </gradient>
151.5237 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.5238 +                           <points>
151.5239 +                              <point x="8.0" y="3.0" cp1x="4.0" cp1y="3.0" cp2x="8.0" cp2y="3.0"/>
151.5240 +                              <point x="64.0" y="3.0" cp1x="64.0" cp1y="3.0" cp2x="64.0" cp2y="3.0"/>
151.5241 +                              <point x="64.0" y="21.0" cp1x="64.0" cp1y="21.0" cp2x="64.0" cp2y="21.0"/>
151.5242 +                              <point x="8.0" y="21.0" cp1x="8.0" cp1y="21.0" cp2x="4.0" cp2y="21.0"/>
151.5243 +                              <point x="3.0" y="16.0" cp1x="3.0" cp1y="20.0" cp2x="3.0" cp2y="16.0"/>
151.5244 +                              <point x="3.0" y="7.0" cp1x="3.0" cp1y="7.0" cp2x="3.0" cp2y="4.0"/>
151.5245 +                           </points>
151.5246 +                        </path>
151.5247 +                        <path>
151.5248 +                           <gradient cycleMethod="NO_CYCLE">
151.5249 +                              <stop position="0.0" midpoint="0.5">
151.5250 +                                 <matte red="0" green="0" blue="7" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="0.3642857" brightnessOffset="-0.52156866" alphaOffset="0"/>
151.5251 +                              </stop>
151.5252 +                              <stop position="1.0" midpoint="0.5">
151.5253 +                                 <matte red="96" green="100" blue="108" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5246032" brightnessOffset="-0.12549022" alphaOffset="0"/>
151.5254 +                              </stop>
151.5255 +                           </gradient>
151.5256 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.5257 +                           <points>
151.5258 +                              <point x="2.0" y="7.0" cp1x="2.0" cp1y="4.0" cp2x="2.0" cp2y="7.0"/>
151.5259 +                              <point x="2.0" y="17.0" cp1x="2.0" cp1y="17.0" cp2x="2.0" cp2y="20.0"/>
151.5260 +                              <point x="7.0" y="22.0" cp1x="4.0" cp1y="22.0" cp2x="7.0" cp2y="22.0"/>
151.5261 +                              <point x="64.0" y="22.0" cp1x="64.0" cp1y="22.0" cp2x="64.0" cp2y="22.0"/>
151.5262 +                              <point x="64.0" y="2.0" cp1x="64.0" cp1y="2.0" cp2x="64.0" cp2y="2.0"/>
151.5263 +                              <point x="7.0" y="2.0" cp1x="7.0" cp1y="2.0" cp2x="4.0" cp2y="2.0"/>
151.5264 +                           </points>
151.5265 +                        </path>
151.5266 +                        <path>
151.5267 +                           <matte red="255" green="255" blue="255" alpha="172" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-83"/>
151.5268 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.5269 +                           <points>
151.5270 +                              <point x="2.0" y="16.0" cp1x="2.0" cp1y="16.0" cp2x="2.0" cp2y="16.0"/>
151.5271 +                              <point x="2.0" y="18.0" cp1x="2.0" cp1y="18.0" cp2x="2.0" cp2y="21.0"/>
151.5272 +                              <point x="7.0" y="23.0" cp1x="4.0" cp1y="23.0" cp2x="7.0" cp2y="23.0"/>
151.5273 +                              <point x="76.0" y="23.0" cp1x="76.0" cp1y="23.0" cp2x="79.0" cp2y="23.0"/>
151.5274 +                              <point x="81.0" y="18.0" cp1x="81.0" cp1y="21.0" cp2x="81.0" cp2y="18.0"/>
151.5275 +                              <point x="81.0" y="16.0" cp1x="81.0" cp1y="16.0" cp2x="81.0" cp2y="16.0"/>
151.5276 +                           </points>
151.5277 +                        </path>
151.5278 +                     </shapes>
151.5279 +                     <effects/>
151.5280 +                  </layer>
151.5281 +                  <templateLayer fileName="113cfff3c26.png">
151.5282 +                     <layer name="Template" type="template">
151.5283 +                        <opacity>1.0</opacity>
151.5284 +                        <fillOpacity>1.0</fillOpacity>
151.5285 +                        <blendingMode>NORMAL</blendingMode>
151.5286 +                        <locked>false</locked>
151.5287 +                        <visible>false</visible>
151.5288 +                        <shapes/>
151.5289 +                        <effects/>
151.5290 +                     </layer>
151.5291 +                  </templateLayer>
151.5292 +               </canvas>
151.5293 +            </state>
151.5294 +            <state stateKeys="Enabled+Selected">
151.5295 +               <style>
151.5296 +                  <textForeground/>
151.5297 +                  <textBackground/>
151.5298 +                  <background/>
151.5299 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.5300 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.5301 +                  <uiproperties/>
151.5302 +               </style>
151.5303 +               <canvas>
151.5304 +                  <size width="83" height="24"/>
151.5305 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.5306 +                  <stretchingInsets top="8" bottom="8" left="9" right="19"/>
151.5307 +                  <layer name="Layer 1">
151.5308 +                     <opacity>1.0</opacity>
151.5309 +                     <fillOpacity>1.0</fillOpacity>
151.5310 +                     <blendingMode>NORMAL</blendingMode>
151.5311 +                     <locked>false</locked>
151.5312 +                     <visible>true</visible>
151.5313 +                     <shapes>
151.5314 +                        <path>
151.5315 +                           <gradient cycleMethod="NO_CYCLE">
151.5316 +                              <stop position="0.0" midpoint="0.5">
151.5317 +                                 <matte red="143" green="169" blue="192" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="-4.2033195E-4" saturationOffset="-0.38050595" brightnessOffset="0.20392156" alphaOffset="0"/>
151.5318 +                              </stop>
151.5319 +                              <stop position="0.34375" midpoint="0.5">
151.5320 +                                 <matte red="76" green="117" blue="154" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="4.081726E-4" saturationOffset="-0.12922078" brightnessOffset="0.054901958" alphaOffset="0"/>
151.5321 +                              </stop>
151.5322 +                              <stop position="0.6193182" midpoint="0.5">
151.5323 +                                 <matte red="53" green="100" blue="142" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.00895375" brightnessOffset="0.007843137" alphaOffset="0"/>
151.5324 +                              </stop>
151.5325 +                              <stop position="1.0" midpoint="0.5">
151.5326 +                                 <matte red="96" green="146" blue="189" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="-0.0015907288" saturationOffset="-0.1436508" brightnessOffset="0.19215685" alphaOffset="0"/>
151.5327 +                              </stop>
151.5328 +                           </gradient>
151.5329 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.5330 +                           <points>
151.5331 +                              <point x="64.25" y="3.0" cp1x="64.25" cp1y="3.0" cp2x="64.25" cp2y="3.0"/>
151.5332 +                              <point x="75.0" y="3.0" cp1x="75.0" cp1y="3.0" cp2x="79.0" cp2y="3.0"/>
151.5333 +                              <point x="80.0" y="8.0" cp1x="80.0" cp1y="4.0" cp2x="80.0" cp2y="8.0"/>
151.5334 +                              <point x="80.0" y="16.0" cp1x="80.0" cp1y="16.0" cp2x="80.0" cp2y="20.0"/>
151.5335 +                              <point x="75.0" y="21.0" cp1x="79.0" cp1y="21.0" cp2x="75.0" cp2y="21.0"/>
151.5336 +                              <point x="64.25" y="21.0" cp1x="64.25" cp1y="21.0" cp2x="64.25" cp2y="21.0"/>
151.5337 +                           </points>
151.5338 +                        </path>
151.5339 +                        <path>
151.5340 +                           <gradient cycleMethod="NO_CYCLE">
151.5341 +                              <stop position="0.0" midpoint="0.5">
151.5342 +                                 <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.5343 +                              </stop>
151.5344 +                              <stop position="1.0" midpoint="0.5">
151.5345 +                                 <matte red="28" green="56" blue="81" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-3.528595E-5" saturationOffset="0.018606722" brightnessOffset="-0.23137257" alphaOffset="0"/>
151.5346 +                              </stop>
151.5347 +                           </gradient>
151.5348 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.5349 +                           <points>
151.5350 +                              <point x="64.0" y="2.0" cp1x="64.0" cp1y="2.0" cp2x="64.0" cp2y="2.0"/>
151.5351 +                              <point x="76.0" y="2.0" cp1x="76.0" cp1y="2.0" cp2x="79.0" cp2y="2.0"/>
151.5352 +                              <point x="81.0" y="7.0" cp1x="81.0" cp1y="4.0" cp2x="81.0" cp2y="7.0"/>
151.5353 +                              <point x="81.0" y="17.0" cp1x="81.0" cp1y="17.0" cp2x="81.0" cp2y="20.0"/>
151.5354 +                              <point x="76.0" y="22.0" cp1x="79.0" cp1y="22.0" cp2x="76.0" cp2y="22.0"/>
151.5355 +                              <point x="64.0" y="22.0" cp1x="64.0" cp1y="22.0" cp2x="64.0" cp2y="22.0"/>
151.5356 +                           </points>
151.5357 +                        </path>
151.5358 +                        <path>
151.5359 +                           <gradient cycleMethod="NO_CYCLE">
151.5360 +                              <stop position="0.0" midpoint="0.5">
151.5361 +                                 <matte red="205" green="209" blue="216" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.027408898" saturationOffset="-0.5847884" brightnessOffset="0.2980392" alphaOffset="0"/>
151.5362 +                              </stop>
151.5363 +                              <stop position="0.4005682" midpoint="0.5">
151.5364 +                                 <matte red="172" green="179" blue="191" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.026611507" saturationOffset="-0.53623784" brightnessOffset="0.19999999" alphaOffset="0"/>
151.5365 +                              </stop>
151.5366 +                              <stop position="0.66477275" midpoint="0.5">
151.5367 +                                 <matte red="164" green="171" blue="184" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.029681683" saturationOffset="-0.52701867" brightnessOffset="0.17254901" alphaOffset="0"/>
151.5368 +                              </stop>
151.5369 +                              <stop position="1.0" midpoint="0.5">
151.5370 +                                 <matte red="202" green="208" blue="222" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusBase" hueOffset="0.03801495" saturationOffset="-0.5456242" brightnessOffset="0.3215686" alphaOffset="0"/>
151.5371 +                              </stop>
151.5372 +                           </gradient>
151.5373 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.5374 +                           <points>
151.5375 +                              <point x="8.0" y="3.0" cp1x="4.0" cp1y="3.0" cp2x="8.0" cp2y="3.0"/>
151.5376 +                              <point x="64.0" y="3.0" cp1x="64.0" cp1y="3.0" cp2x="64.0" cp2y="3.0"/>
151.5377 +                              <point x="64.0" y="21.0" cp1x="64.0" cp1y="21.0" cp2x="64.0" cp2y="21.0"/>
151.5378 +                              <point x="8.0" y="21.0" cp1x="8.0" cp1y="21.0" cp2x="4.0" cp2y="21.0"/>
151.5379 +                              <point x="3.0" y="16.0" cp1x="3.0" cp1y="20.0" cp2x="3.0" cp2y="16.0"/>
151.5380 +                              <point x="3.0" y="7.0" cp1x="3.0" cp1y="7.0" cp2x="3.0" cp2y="4.0"/>
151.5381 +                           </points>
151.5382 +                        </path>
151.5383 +                        <path>
151.5384 +                           <gradient cycleMethod="NO_CYCLE">
151.5385 +                              <stop position="0.0" midpoint="0.5">
151.5386 +                                 <matte red="0" green="0" blue="7" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="0.3642857" brightnessOffset="-0.52156866" alphaOffset="0"/>
151.5387 +                              </stop>
151.5388 +                              <stop position="1.0" midpoint="0.5">
151.5389 +                                 <matte red="96" green="100" blue="108" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5246032" brightnessOffset="-0.12549022" alphaOffset="0"/>
151.5390 +                              </stop>
151.5391 +                           </gradient>
151.5392 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.5393 +                           <points>
151.5394 +                              <point x="2.0" y="7.0" cp1x="2.0" cp1y="4.0" cp2x="2.0" cp2y="7.0"/>
151.5395 +                              <point x="2.0" y="17.0" cp1x="2.0" cp1y="17.0" cp2x="2.0" cp2y="20.0"/>
151.5396 +                              <point x="7.0" y="22.0" cp1x="4.0" cp1y="22.0" cp2x="7.0" cp2y="22.0"/>
151.5397 +                              <point x="64.0" y="22.0" cp1x="64.0" cp1y="22.0" cp2x="64.0" cp2y="22.0"/>
151.5398 +                              <point x="64.0" y="2.0" cp1x="64.0" cp1y="2.0" cp2x="64.0" cp2y="2.0"/>
151.5399 +                              <point x="7.0" y="2.0" cp1x="7.0" cp1y="2.0" cp2x="4.0" cp2y="2.0"/>
151.5400 +                           </points>
151.5401 +                        </path>
151.5402 +                        <path>
151.5403 +                           <matte red="255" green="255" blue="255" alpha="167" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-88"/>
151.5404 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.5405 +                           <points>
151.5406 +                              <point x="2.0" y="16.0" cp1x="2.0" cp1y="16.0" cp2x="2.0" cp2y="16.0"/>
151.5407 +                              <point x="2.0" y="18.0" cp1x="2.0" cp1y="18.0" cp2x="2.0" cp2y="21.0"/>
151.5408 +                              <point x="7.0" y="23.0" cp1x="4.0" cp1y="23.0" cp2x="7.0" cp2y="23.0"/>
151.5409 +                              <point x="76.0" y="23.0" cp1x="76.0" cp1y="23.0" cp2x="79.0" cp2y="23.0"/>
151.5410 +                              <point x="81.0" y="18.0" cp1x="81.0" cp1y="21.0" cp2x="81.0" cp2y="18.0"/>
151.5411 +                              <point x="81.0" y="16.0" cp1x="81.0" cp1y="16.0" cp2x="81.0" cp2y="16.0"/>
151.5412 +                           </points>
151.5413 +                        </path>
151.5414 +                     </shapes>
151.5415 +                     <effects/>
151.5416 +                  </layer>
151.5417 +                  <templateLayer fileName="113cfff3c26.png">
151.5418 +                     <layer name="Template" type="template">
151.5419 +                        <opacity>1.0</opacity>
151.5420 +                        <fillOpacity>1.0</fillOpacity>
151.5421 +                        <blendingMode>NORMAL</blendingMode>
151.5422 +                        <locked>false</locked>
151.5423 +                        <visible>false</visible>
151.5424 +                        <shapes/>
151.5425 +                        <effects/>
151.5426 +                     </layer>
151.5427 +                  </templateLayer>
151.5428 +               </canvas>
151.5429 +            </state>
151.5430 +            <state stateKeys="Disabled+Editable">
151.5431 +               <style>
151.5432 +                  <textForeground/>
151.5433 +                  <textBackground/>
151.5434 +                  <background/>
151.5435 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.5436 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.5437 +                  <uiproperties/>
151.5438 +               </style>
151.5439 +               <canvas>
151.5440 +                  <size width="79" height="21"/>
151.5441 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.5442 +                  <stretchingInsets top="6" bottom="6" left="5" right="17"/>
151.5443 +                  <layer name="Layer 1">
151.5444 +                     <opacity>1.0</opacity>
151.5445 +                     <fillOpacity>1.0</fillOpacity>
151.5446 +                     <blendingMode>NORMAL</blendingMode>
151.5447 +                     <locked>false</locked>
151.5448 +                     <visible>true</visible>
151.5449 +                     <shapes>
151.5450 +                        <rectangle x1="30.0" x2="30.0" y1="10.0" y2="10.0" rounding="0.0">
151.5451 +                           <matte red="51" green="53" blue="57" alpha="64" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.005263157" brightnessOffset="-0.52156866" alphaOffset="-191"/>
151.5452 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.5453 +                        </rectangle>
151.5454 +                     </shapes>
151.5455 +                     <effects/>
151.5456 +                  </layer>
151.5457 +               </canvas>
151.5458 +            </state>
151.5459 +            <state stateKeys="Enabled+Editable">
151.5460 +               <style>
151.5461 +                  <textForeground/>
151.5462 +                  <textBackground/>
151.5463 +                  <background/>
151.5464 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.5465 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.5466 +                  <uiproperties/>
151.5467 +               </style>
151.5468 +               <canvas>
151.5469 +                  <size width="79" height="21"/>
151.5470 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.5471 +                  <stretchingInsets top="6" bottom="6" left="5" right="17"/>
151.5472 +                  <layer name="Layer 1">
151.5473 +                     <opacity>1.0</opacity>
151.5474 +                     <fillOpacity>1.0</fillOpacity>
151.5475 +                     <blendingMode>NORMAL</blendingMode>
151.5476 +                     <locked>false</locked>
151.5477 +                     <visible>true</visible>
151.5478 +                     <shapes>
151.5479 +                        <rectangle x1="30.0" x2="30.0" y1="10.0" y2="10.0" rounding="0.0">
151.5480 +                           <matte red="51" green="53" blue="57" alpha="64" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.005263157" brightnessOffset="-0.52156866" alphaOffset="-191"/>
151.5481 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.5482 +                        </rectangle>
151.5483 +                     </shapes>
151.5484 +                     <effects/>
151.5485 +                  </layer>
151.5486 +               </canvas>
151.5487 +            </state>
151.5488 +            <state stateKeys="Focused+Editable">
151.5489 +               <style>
151.5490 +                  <textForeground/>
151.5491 +                  <textBackground/>
151.5492 +                  <background/>
151.5493 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.5494 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.5495 +                  <uiproperties/>
151.5496 +               </style>
151.5497 +               <canvas>
151.5498 +                  <size width="142" height="27"/>
151.5499 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.5500 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.5501 +                  <layer name="Layer 1">
151.5502 +                     <opacity>1.0</opacity>
151.5503 +                     <fillOpacity>1.0</fillOpacity>
151.5504 +                     <blendingMode>NORMAL</blendingMode>
151.5505 +                     <locked>false</locked>
151.5506 +                     <visible>true</visible>
151.5507 +                     <shapes>
151.5508 +                        <path>
151.5509 +                           <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.5510 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.5511 +                           <points>
151.5512 +                              <point x="0.6" y="0.6" cp1x="0.6" cp1y="0.6" cp2x="0.6" cp2y="0.6"/>
151.5513 +                              <point x="136.4" y="0.6" cp1x="136.4" cp1y="0.6" cp2x="139.4" cp2y="0.6"/>
151.5514 +                              <point x="141.4" y="6.6" cp1x="141.4" cp1y="3.6" cp2x="141.4" cp2y="6.6"/>
151.5515 +                              <point x="141.4" y="21.4" cp1x="141.4" cp1y="21.4" cp2x="141.4" cp2y="24.4"/>
151.5516 +                              <point x="136.4" y="26.4" cp1x="139.4" cp1y="26.4" cp2x="136.4" cp2y="26.4"/>
151.5517 +                              <point x="0.6" y="26.4" cp1x="0.6" cp1y="26.4" cp2x="0.6" cp2y="26.4"/>
151.5518 +                           </points>
151.5519 +                        </path>
151.5520 +                     </shapes>
151.5521 +                     <effects/>
151.5522 +                  </layer>
151.5523 +                  <templateLayer fileName="114d94654dc.png">
151.5524 +                     <layer name="Template" type="template">
151.5525 +                        <opacity>1.0</opacity>
151.5526 +                        <fillOpacity>1.0</fillOpacity>
151.5527 +                        <blendingMode>NORMAL</blendingMode>
151.5528 +                        <locked>false</locked>
151.5529 +                        <visible>true</visible>
151.5530 +                        <shapes/>
151.5531 +                        <effects/>
151.5532 +                     </layer>
151.5533 +                  </templateLayer>
151.5534 +               </canvas>
151.5535 +            </state>
151.5536 +            <state stateKeys="MouseOver+Editable">
151.5537 +               <style>
151.5538 +                  <textForeground/>
151.5539 +                  <textBackground/>
151.5540 +                  <background/>
151.5541 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.5542 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.5543 +                  <uiproperties/>
151.5544 +               </style>
151.5545 +               <canvas>
151.5546 +                  <size width="79" height="21"/>
151.5547 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.5548 +                  <stretchingInsets top="4" bottom="5" left="5" right="17"/>
151.5549 +                  <layer name="Layer 1">
151.5550 +                     <opacity>1.0</opacity>
151.5551 +                     <fillOpacity>1.0</fillOpacity>
151.5552 +                     <blendingMode>NORMAL</blendingMode>
151.5553 +                     <locked>false</locked>
151.5554 +                     <visible>true</visible>
151.5555 +                     <shapes>
151.5556 +                        <rectangle x1="30.0" x2="30.0" y1="10.0" y2="10.0" rounding="0.0">
151.5557 +                           <matte red="51" green="53" blue="57" alpha="64" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.005263157" brightnessOffset="-0.52156866" alphaOffset="-191"/>
151.5558 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.5559 +                        </rectangle>
151.5560 +                     </shapes>
151.5561 +                     <effects/>
151.5562 +                  </layer>
151.5563 +               </canvas>
151.5564 +            </state>
151.5565 +            <state stateKeys="Pressed+Editable">
151.5566 +               <style>
151.5567 +                  <textForeground/>
151.5568 +                  <textBackground/>
151.5569 +                  <background/>
151.5570 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.5571 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.5572 +                  <uiproperties/>
151.5573 +               </style>
151.5574 +               <canvas>
151.5575 +                  <size width="79" height="21"/>
151.5576 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.5577 +                  <stretchingInsets top="4" bottom="5" left="5" right="17"/>
151.5578 +                  <layer name="Layer 1">
151.5579 +                     <opacity>1.0</opacity>
151.5580 +                     <fillOpacity>1.0</fillOpacity>
151.5581 +                     <blendingMode>NORMAL</blendingMode>
151.5582 +                     <locked>false</locked>
151.5583 +                     <visible>true</visible>
151.5584 +                     <shapes>
151.5585 +                        <rectangle x1="30.0" x2="30.0" y1="10.0" y2="10.0" rounding="0.0">
151.5586 +                           <matte red="51" green="53" blue="57" alpha="64" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.005263157" brightnessOffset="-0.52156866" alphaOffset="-191"/>
151.5587 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.5588 +                        </rectangle>
151.5589 +                     </shapes>
151.5590 +                     <effects/>
151.5591 +                  </layer>
151.5592 +               </canvas>
151.5593 +            </state>
151.5594 +         </backgroundStates>
151.5595 +         <foregroundStates/>
151.5596 +         <borderStates/>
151.5597 +         <regions>
151.5598 +            <uiComponent opaque="false" componentName="ComboBox.textField" type="javax.swing.JTextField" name="TextField" ui="TextFieldUI" subregion="true">
151.5599 +               <stateTypes/>
151.5600 +               <contentMargins top="0" bottom="0" left="6" right="3"/>
151.5601 +               <style>
151.5602 +                  <textForeground/>
151.5603 +                  <textBackground/>
151.5604 +                  <background/>
151.5605 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.5606 +                  <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.5607 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.5608 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.5609 +                  <uiproperties/>
151.5610 +               </style>
151.5611 +               <backgroundStates>
151.5612 +                  <state stateKeys="Disabled">
151.5613 +                     <style>
151.5614 +                        <textForeground>
151.5615 +                           <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.5616 +                        </textForeground>
151.5617 +                        <textBackground/>
151.5618 +                        <background/>
151.5619 +                        <inherit-textForeground>false</inherit-textForeground>
151.5620 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.5621 +                        <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.5622 +                        <uiproperties/>
151.5623 +                     </style>
151.5624 +                     <canvas>
151.5625 +                        <size width="64" height="24"/>
151.5626 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.5627 +                        <stretchingInsets top="5" bottom="3" left="3" right="1"/>
151.5628 +                        <layer name="Layer 1">
151.5629 +                           <opacity>1.0</opacity>
151.5630 +                           <fillOpacity>1.0</fillOpacity>
151.5631 +                           <blendingMode>NORMAL</blendingMode>
151.5632 +                           <locked>false</locked>
151.5633 +                           <visible>true</visible>
151.5634 +                           <shapes>
151.5635 +                              <rectangle x1="3.0" x2="64.0" y1="5.0" y2="21.0" rounding="0.0">
151.5636 +                                 <matte red="222" green="225" blue="229" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.016586483" saturationOffset="-0.6051466" brightnessOffset="0.3490196" alphaOffset="0"/>
151.5637 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.5638 +                              </rectangle>
151.5639 +                              <rectangle x1="2.0" x2="64.0" y1="5.0" y2="22.0" rounding="0.0">
151.5640 +                                 <matte red="208" green="210" blue="215" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.040395975" saturationOffset="-0.60315615" brightnessOffset="0.29411763" alphaOffset="0"/>
151.5641 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.5642 +                              </rectangle>
151.5643 +                              <rectangle x1="3.0" x2="64.0" y1="3.0" y2="5.0" rounding="0.0">
151.5644 +                                 <gradient cycleMethod="NO_CYCLE">
151.5645 +                                    <stop position="0.0" midpoint="0.5">
151.5646 +                                       <matte red="220" green="222" blue="227" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07968931" brightnessOffset="0.14509803" alphaOffset="0"/>
151.5647 +                                    </stop>
151.5648 +                                    <stop position="1.0" midpoint="0.5">
151.5649 +                                       <matte red="212" green="214" blue="219" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07856284" brightnessOffset="0.11372548" alphaOffset="0"/>
151.5650 +                                    </stop>
151.5651 +                                 </gradient>
151.5652 +                                 <paintPoints x1="0.5" y1="1.0" x2="0.5" y2="0.0"/>
151.5653 +                              </rectangle>
151.5654 +                              <rectangle x1="2.0" x2="64.0" y1="2.0" y2="5.0" rounding="0.0">
151.5655 +                                 <gradient cycleMethod="NO_CYCLE">
151.5656 +                                    <stop position="0.0" midpoint="0.5">
151.5657 +                                       <matte red="199" green="202" blue="207" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.006944418" saturationOffset="-0.07187897" brightnessOffset="0.06666666" alphaOffset="0"/>
151.5658 +                                    </stop>
151.5659 +                                    <stop position="1.0" midpoint="0.5">
151.5660 +                                       <matte red="202" green="204" blue="209" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07703349" brightnessOffset="0.0745098" alphaOffset="0"/>
151.5661 +                                    </stop>
151.5662 +                                 </gradient>
151.5663 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.5664 +                              </rectangle>
151.5665 +                              <rectangle x1="2.0" x2="64.0" y1="22.0" y2="23.0" rounding="0.0">
151.5666 +                                 <matte red="0" green="0" blue="0" alpha="18" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.74509805" alphaOffset="-237"/>
151.5667 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.5668 +                              </rectangle>
151.5669 +                           </shapes>
151.5670 +                           <effects/>
151.5671 +                        </layer>
151.5672 +                        <templateLayer fileName="113cfe4e021.png">
151.5673 +                           <layer name="Template" type="template">
151.5674 +                              <opacity>1.0</opacity>
151.5675 +                              <fillOpacity>1.0</fillOpacity>
151.5676 +                              <blendingMode>NORMAL</blendingMode>
151.5677 +                              <locked>false</locked>
151.5678 +                              <visible>false</visible>
151.5679 +                              <shapes/>
151.5680 +                              <effects/>
151.5681 +                           </layer>
151.5682 +                        </templateLayer>
151.5683 +                     </canvas>
151.5684 +                  </state>
151.5685 +                  <state stateKeys="Enabled">
151.5686 +                     <style>
151.5687 +                        <textForeground/>
151.5688 +                        <textBackground/>
151.5689 +                        <background/>
151.5690 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.5691 +                        <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.5692 +                        <uiproperties/>
151.5693 +                     </style>
151.5694 +                     <canvas>
151.5695 +                        <size width="64" height="24"/>
151.5696 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.5697 +                        <stretchingInsets top="5" bottom="3" left="3" right="1"/>
151.5698 +                        <layer name="Layer 1">
151.5699 +                           <opacity>1.0</opacity>
151.5700 +                           <fillOpacity>1.0</fillOpacity>
151.5701 +                           <blendingMode>NORMAL</blendingMode>
151.5702 +                           <locked>false</locked>
151.5703 +                           <visible>true</visible>
151.5704 +                           <shapes>
151.5705 +                              <rectangle x1="3.0" x2="64.0" y1="5.0" y2="21.0" rounding="0.0">
151.5706 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.5707 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.5708 +                              </rectangle>
151.5709 +                              <rectangle x1="2.0" x2="64.0" y1="5.0" y2="22.0" rounding="0.0">
151.5710 +                                 <matte red="192" green="192" blue="193" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.105344966" brightnessOffset="0.011764705" alphaOffset="0"/>
151.5711 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.5712 +                              </rectangle>
151.5713 +                              <rectangle x1="3.0" x2="64.0" y1="3.0" y2="5.0" rounding="0.0">
151.5714 +                                 <gradient cycleMethod="NO_CYCLE">
151.5715 +                                    <stop position="0.1" midpoint="0.5">
151.5716 +                                       <matte red="203" green="203" blue="204" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.6666667" saturationOffset="0.004901961" brightnessOffset="-0.19999999" alphaOffset="0"/>
151.5717 +                                    </stop>
151.5718 +                                    <stop position="0.9" midpoint="0.5">
151.5719 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.5720 +                                    </stop>
151.5721 +                                 </gradient>
151.5722 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.5723 +                              </rectangle>
151.5724 +                              <rectangle x1="2.0" x2="64.0" y1="2.0" y2="5.0" rounding="0.0">
151.5725 +                                 <gradient cycleMethod="NO_CYCLE">
151.5726 +                                    <stop position="0.0" midpoint="0.5">
151.5727 +                                       <matte red="141" green="142" blue="143" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.0965403" brightnessOffset="-0.18431371" alphaOffset="0"/>
151.5728 +                                    </stop>
151.5729 +                                    <stop position="0.99147725" midpoint="0.5">
151.5730 +                                       <matte red="176" green="176" blue="177" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.1048766" brightnessOffset="-0.05098039" alphaOffset="0"/>
151.5731 +                                    </stop>
151.5732 +                                 </gradient>
151.5733 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.5734 +                              </rectangle>
151.5735 +                              <rectangle x1="2.0" x2="64.0" y1="22.0" y2="23.0" rounding="0.0">
151.5736 +                                 <matte red="0" green="0" blue="0" alpha="18" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.74509805" alphaOffset="-237"/>
151.5737 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.5738 +                              </rectangle>
151.5739 +                           </shapes>
151.5740 +                           <effects/>
151.5741 +                        </layer>
151.5742 +                        <templateLayer fileName="113cfe52151.png">
151.5743 +                           <layer name="Template" type="template">
151.5744 +                              <opacity>1.0</opacity>
151.5745 +                              <fillOpacity>1.0</fillOpacity>
151.5746 +                              <blendingMode>NORMAL</blendingMode>
151.5747 +                              <locked>false</locked>
151.5748 +                              <visible>false</visible>
151.5749 +                              <shapes/>
151.5750 +                              <effects/>
151.5751 +                           </layer>
151.5752 +                        </templateLayer>
151.5753 +                     </canvas>
151.5754 +                  </state>
151.5755 +                  <state stateKeys="Selected">
151.5756 +                     <style>
151.5757 +                       <textForeground>
151.5758 +                          <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusSelectedText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.5759 +                       </textForeground>
151.5760 +                       <textBackground/>
151.5761 +                       <background/>
151.5762 +                       <inherit-textForeground>false</inherit-textForeground>
151.5763 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.5764 +                        <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.5765 +                        <uiproperties/>
151.5766 +                     </style>
151.5767 +                     <canvas>
151.5768 +                        <size width="64" height="24"/>
151.5769 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.5770 +                        <stretchingInsets top="5" bottom="3" left="3" right="1"/>
151.5771 +                        <layer name="Layer 1">
151.5772 +                           <opacity>1.0</opacity>
151.5773 +                           <fillOpacity>1.0</fillOpacity>
151.5774 +                           <blendingMode>NORMAL</blendingMode>
151.5775 +                           <locked>false</locked>
151.5776 +                           <visible>true</visible>
151.5777 +                           <shapes>
151.5778 +                              <rectangle x1="3.0" x2="64.0" y1="5.0" y2="21.0" rounding="0.0">
151.5779 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.5780 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.5781 +                              </rectangle>
151.5782 +                              <rectangle x1="2.0" x2="64.0" y1="5.0" y2="22.0" rounding="0.0">
151.5783 +                                 <matte red="192" green="192" blue="193" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.105344966" brightnessOffset="0.011764705" alphaOffset="0"/>
151.5784 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.5785 +                              </rectangle>
151.5786 +                              <rectangle x1="3.0" x2="64.0" y1="3.0" y2="5.0" rounding="0.0">
151.5787 +                                 <gradient cycleMethod="NO_CYCLE">
151.5788 +                                    <stop position="0.1" midpoint="0.5">
151.5789 +                                       <matte red="203" green="203" blue="204" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.6666667" saturationOffset="0.004901961" brightnessOffset="-0.19999999" alphaOffset="0"/>
151.5790 +                                    </stop>
151.5791 +                                    <stop position="0.9" midpoint="0.5">
151.5792 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.5793 +                                    </stop>
151.5794 +                                 </gradient>
151.5795 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.5796 +                              </rectangle>
151.5797 +                              <rectangle x1="2.0" x2="64.0" y1="2.0" y2="5.0" rounding="0.0">
151.5798 +                                 <gradient cycleMethod="NO_CYCLE">
151.5799 +                                    <stop position="0.0" midpoint="0.5">
151.5800 +                                       <matte red="141" green="142" blue="143" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.0965403" brightnessOffset="-0.18431371" alphaOffset="0"/>
151.5801 +                                    </stop>
151.5802 +                                    <stop position="0.99147725" midpoint="0.5">
151.5803 +                                       <matte red="176" green="176" blue="177" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.1048766" brightnessOffset="-0.05098039" alphaOffset="0"/>
151.5804 +                                    </stop>
151.5805 +                                 </gradient>
151.5806 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.5807 +                              </rectangle>
151.5808 +                              <rectangle x1="2.0" x2="64.0" y1="22.0" y2="23.0" rounding="0.0">
151.5809 +                                 <matte red="0" green="0" blue="0" alpha="18" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.74509805" alphaOffset="-237"/>
151.5810 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.5811 +                              </rectangle>
151.5812 +                           </shapes>
151.5813 +                           <effects/>
151.5814 +                        </layer>
151.5815 +                     </canvas>
151.5816 +                  </state>
151.5817 +               </backgroundStates>
151.5818 +               <foregroundStates/>
151.5819 +               <borderStates/>
151.5820 +               <regions/>
151.5821 +            </uiComponent>
151.5822 +            <uiComponent opaque="false" componentName="ComboBox.arrowButton" type="javax.swing.plaf.synth.SynthArrowButton" name="ArrowButton" ui="ArrowButtonUI" subregion="true">
151.5823 +               <stateTypes>
151.5824 +                  <stateType key="Enabled"/>
151.5825 +                  <stateType key="MouseOver"/>
151.5826 +                  <stateType key="Pressed"/>
151.5827 +                  <stateType key="Disabled"/>
151.5828 +                  <stateType key="Editable">
151.5829 +                     <codeSnippet><![CDATA[
151.5830 +                                Component parent = c.getParent();
151.5831 +                                return parent instanceof JComboBox && ((JComboBox)parent).isEditable();]]></codeSnippet>
151.5832 +                  </stateType>
151.5833 +               </stateTypes>
151.5834 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.5835 +               <style>
151.5836 +                  <textForeground/>
151.5837 +                  <textBackground/>
151.5838 +                  <background/>
151.5839 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.5840 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.5841 +                  <uiproperties>
151.5842 +                     <uiProperty name="size" type="INT" value="19"/>
151.5843 +                  </uiproperties>
151.5844 +               </style>
151.5845 +               <backgroundStates>
151.5846 +                  <state stateKeys="Disabled">
151.5847 +                     <style>
151.5848 +                        <textForeground/>
151.5849 +                        <textBackground/>
151.5850 +                        <background/>
151.5851 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.5852 +                        <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.5853 +                        <uiproperties/>
151.5854 +                     </style>
151.5855 +                     <canvas>
151.5856 +                        <size width="20" height="24"/>
151.5857 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.5858 +                        <stretchingInsets top="3" bottom="4" left="1" right="5"/>
151.5859 +                        <layer name="Layer 1">
151.5860 +                           <opacity>1.0</opacity>
151.5861 +                           <fillOpacity>1.0</fillOpacity>
151.5862 +                           <blendingMode>NORMAL</blendingMode>
151.5863 +                           <locked>false</locked>
151.5864 +                           <visible>true</visible>
151.5865 +                           <shapes/>
151.5866 +                           <effects/>
151.5867 +                        </layer>
151.5868 +                     </canvas>
151.5869 +                  </state>
151.5870 +                  <state stateKeys="Enabled">
151.5871 +                     <style>
151.5872 +                        <textForeground/>
151.5873 +                        <textBackground/>
151.5874 +                        <background/>
151.5875 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.5876 +                        <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.5877 +                        <uiproperties/>
151.5878 +                     </style>
151.5879 +                     <canvas>
151.5880 +                        <size width="20" height="24"/>
151.5881 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.5882 +                        <stretchingInsets top="1" bottom="4" left="1" right="6"/>
151.5883 +                        <layer name="Layer 1">
151.5884 +                           <opacity>1.0</opacity>
151.5885 +                           <fillOpacity>1.0</fillOpacity>
151.5886 +                           <blendingMode>NORMAL</blendingMode>
151.5887 +                           <locked>false</locked>
151.5888 +                           <visible>true</visible>
151.5889 +                           <shapes/>
151.5890 +                           <effects/>
151.5891 +                        </layer>
151.5892 +                     </canvas>
151.5893 +                  </state>
151.5894 +                  <state stateKeys="Enabled+MouseOver">
151.5895 +                     <style>
151.5896 +                        <textForeground/>
151.5897 +                        <textBackground/>
151.5898 +                        <background/>
151.5899 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.5900 +                        <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.5901 +                        <uiproperties/>
151.5902 +                     </style>
151.5903 +                     <canvas>
151.5904 +                        <size width="20" height="24"/>
151.5905 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.5906 +                        <stretchingInsets top="3" bottom="4" left="1" right="6"/>
151.5907 +                        <layer name="Layer 1">
151.5908 +                           <opacity>1.0</opacity>
151.5909 +                           <fillOpacity>1.0</fillOpacity>
151.5910 +                           <blendingMode>NORMAL</blendingMode>
151.5911 +                           <locked>false</locked>
151.5912 +                           <visible>true</visible>
151.5913 +                           <shapes/>
151.5914 +                           <effects/>
151.5915 +                        </layer>
151.5916 +                     </canvas>
151.5917 +                  </state>
151.5918 +                  <state stateKeys="Enabled+Pressed">
151.5919 +                     <style>
151.5920 +                        <textForeground/>
151.5921 +                        <textBackground/>
151.5922 +                        <background/>
151.5923 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.5924 +                        <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.5925 +                        <uiproperties/>
151.5926 +                     </style>
151.5927 +                     <canvas>
151.5928 +                        <size width="20" height="24"/>
151.5929 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.5930 +                        <stretchingInsets top="3" bottom="4" left="1" right="6"/>
151.5931 +                        <layer name="Layer 1">
151.5932 +                           <opacity>1.0</opacity>
151.5933 +                           <fillOpacity>1.0</fillOpacity>
151.5934 +                           <blendingMode>NORMAL</blendingMode>
151.5935 +                           <locked>false</locked>
151.5936 +                           <visible>true</visible>
151.5937 +                           <shapes/>
151.5938 +                           <effects/>
151.5939 +                        </layer>
151.5940 +                     </canvas>
151.5941 +                  </state>
151.5942 +                  <state stateKeys="Disabled+Editable">
151.5943 +                     <style>
151.5944 +                        <textForeground/>
151.5945 +                        <textBackground/>
151.5946 +                        <background/>
151.5947 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.5948 +                        <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.5949 +                        <uiproperties/>
151.5950 +                     </style>
151.5951 +                     <canvas>
151.5952 +                        <size width="20" height="24"/>
151.5953 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.5954 +                        <stretchingInsets top="8" bottom="8" left="1" right="8"/>
151.5955 +                        <layer name="Layer 1">
151.5956 +                           <opacity>1.0</opacity>
151.5957 +                           <fillOpacity>1.0</fillOpacity>
151.5958 +                           <blendingMode>NORMAL</blendingMode>
151.5959 +                           <locked>false</locked>
151.5960 +                           <visible>true</visible>
151.5961 +                           <shapes>
151.5962 +                              <path>
151.5963 +                                 <gradient cycleMethod="NO_CYCLE">
151.5964 +                                    <stop position="0.0" midpoint="0.5">
151.5965 +                                       <matte red="220" green="224" blue="230" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.59223604" brightnessOffset="0.35294116" alphaOffset="0"/>
151.5966 +                                    </stop>
151.5967 +                                    <stop position="0.34375" midpoint="0.5">
151.5968 +                                       <matte red="210" green="215" blue="223" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.02391243" saturationOffset="-0.5774183" brightnessOffset="0.32549018" alphaOffset="0"/>
151.5969 +                                    </stop>
151.5970 +                                    <stop position="0.6193182" midpoint="0.5">
151.5971 +                                       <matte red="204" green="210" blue="219" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.56722116" brightnessOffset="0.3098039" alphaOffset="0"/>
151.5972 +                                    </stop>
151.5973 +                                    <stop position="1.0" midpoint="0.5">
151.5974 +                                       <matte red="206" green="212" blue="221" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.567841" brightnessOffset="0.31764704" alphaOffset="0"/>
151.5975 +                                    </stop>
151.5976 +                                 </gradient>
151.5977 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.5978 +                                 <points>
151.5979 +                                    <point x="1.0" y="3.0" cp1x="1.0" cp1y="3.0" cp2x="1.0" cp2y="3.0"/>
151.5980 +                                    <point x="12.0" y="3.0" cp1x="12.0" cp1y="3.0" cp2x="16.0" cp2y="3.0"/>
151.5981 +                                    <point x="17.0" y="8.0" cp1x="17.0" cp1y="4.0" cp2x="17.0" cp2y="8.0"/>
151.5982 +                                    <point x="17.0" y="16.0" cp1x="17.0" cp1y="16.0" cp2x="17.0" cp2y="20.0"/>
151.5983 +                                    <point x="12.0" y="21.0" cp1x="16.0" cp1y="21.0" cp2x="12.0" cp2y="21.0"/>
151.5984 +                                    <point x="1.0" y="21.0" cp1x="1.0" cp1y="21.0" cp2x="1.0" cp2y="21.0"/>
151.5985 +                                 </points>
151.5986 +                              </path>
151.5987 +                              <path>
151.5988 +                                 <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.5989 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.5990 +                                 <points>
151.5991 +                                    <point x="0.8529411764705883" y="21.11764705882353" cp1x="0.8529411764705883" cp1y="21.11764705882353" cp2x="0.8529411764705883" cp2y="21.11764705882353"/>
151.5992 +                                 </points>
151.5993 +                              </path>
151.5994 +                              <path>
151.5995 +                                 <gradient cycleMethod="NO_CYCLE">
151.5996 +                                    <stop position="0.0" midpoint="0.5">
151.5997 +                                       <matte red="191" green="197" blue="206" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.56289876" brightnessOffset="0.2588235" alphaOffset="0"/>
151.5998 +                                    </stop>
151.5999 +                                    <stop position="1.0" midpoint="0.5">
151.6000 +                                       <matte red="178" green="185" blue="193" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.010237217" saturationOffset="-0.55799407" brightnessOffset="0.20784312" alphaOffset="0"/>
151.6001 +                                    </stop>
151.6002 +                                 </gradient>
151.6003 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.6004 +                                 <points>
151.6005 +                                    <point x="0.0" y="2.0" cp1x="0.0" cp1y="2.0" cp2x="0.0" cp2y="2.0"/>
151.6006 +                                    <point x="13.0" y="2.0" cp1x="13.0" cp1y="2.0" cp2x="16.0" cp2y="2.0"/>
151.6007 +                                    <point x="18.0" y="7.0" cp1x="18.0" cp1y="4.0" cp2x="18.0" cp2y="7.0"/>
151.6008 +                                    <point x="18.0" y="17.0" cp1x="18.0" cp1y="17.0" cp2x="18.0" cp2y="20.0"/>
151.6009 +                                    <point x="13.0" y="22.0" cp1x="16.0" cp1y="22.0" cp2x="13.0" cp2y="22.0"/>
151.6010 +                                    <point x="0.0" y="22.0" cp1x="0.0" cp1y="22.0" cp2x="0.0" cp2y="22.0"/>
151.6011 +                                 </points>
151.6012 +                              </path>
151.6013 +                              <path>
151.6014 +                                 <matte red="0" green="0" blue="0" alpha="8" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.74509805" alphaOffset="-247"/>
151.6015 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.6016 +                                 <points>
151.6017 +                                    <point x="0.0" y="16.0" cp1x="0.0" cp1y="16.0" cp2x="0.0" cp2y="16.0"/>
151.6018 +                                    <point x="18.0" y="16.0" cp1x="18.0" cp1y="16.0" cp2x="18.0" cp2y="16.0"/>
151.6019 +                                    <point x="18.0" y="18.0" cp1x="18.0" cp1y="18.0" cp2x="18.0" cp2y="22.0"/>
151.6020 +                                    <point x="13.0" y="23.0" cp1x="16.0" cp1y="23.0" cp2x="13.0" cp2y="23.0"/>
151.6021 +                                    <point x="0.0" y="23.0" cp1x="0.0" cp1y="23.0" cp2x="0.0" cp2y="23.0"/>
151.6022 +                                 </points>
151.6023 +                              </path>
151.6024 +                           </shapes>
151.6025 +                           <effects/>
151.6026 +                        </layer>
151.6027 +                        <templateLayer fileName="113c77d1eb8.png">
151.6028 +                           <layer name="Template" type="template">
151.6029 +                              <opacity>1.0</opacity>
151.6030 +                              <fillOpacity>1.0</fillOpacity>
151.6031 +                              <blendingMode>NORMAL</blendingMode>
151.6032 +                              <locked>false</locked>
151.6033 +                              <visible>false</visible>
151.6034 +                              <shapes/>
151.6035 +                              <effects/>
151.6036 +                           </layer>
151.6037 +                        </templateLayer>
151.6038 +                     </canvas>
151.6039 +                  </state>
151.6040 +                  <state stateKeys="Enabled+Editable">
151.6041 +                     <style>
151.6042 +                        <textForeground/>
151.6043 +                        <textBackground/>
151.6044 +                        <background/>
151.6045 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.6046 +                        <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.6047 +                        <uiproperties/>
151.6048 +                     </style>
151.6049 +                     <canvas>
151.6050 +                        <size width="20" height="24"/>
151.6051 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.6052 +                        <stretchingInsets top="8" bottom="8" left="1" right="8"/>
151.6053 +                        <layer name="Layer 1">
151.6054 +                           <opacity>1.0</opacity>
151.6055 +                           <fillOpacity>1.0</fillOpacity>
151.6056 +                           <blendingMode>NORMAL</blendingMode>
151.6057 +                           <locked>false</locked>
151.6058 +                           <visible>true</visible>
151.6059 +                           <shapes>
151.6060 +                              <path>
151.6061 +                                 <gradient cycleMethod="NO_CYCLE">
151.6062 +                                    <stop position="0.0" midpoint="0.2754491">
151.6063 +                                       <matte red="246" green="248" blue="250" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6197143" brightnessOffset="0.43137252" alphaOffset="0"/>
151.6064 +                                    </stop>
151.6065 +                                    <stop position="0.44652405" midpoint="0.5">
151.6066 +                                       <matte red="174" green="192" blue="209" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0023007393" saturationOffset="-0.46825016" brightnessOffset="0.27058822" alphaOffset="0"/>
151.6067 +                                    </stop>
151.6068 +                                    <stop position="0.64171124" midpoint="0.5">
151.6069 +                                       <matte red="163" green="184" blue="203" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.43866998" brightnessOffset="0.24705881" alphaOffset="0"/>
151.6070 +                                    </stop>
151.6071 +                                    <stop position="1.0" midpoint="0.5">
151.6072 +                                       <matte red="191" green="212" blue="231" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4625541" brightnessOffset="0.35686272" alphaOffset="0"/>
151.6073 +                                    </stop>
151.6074 +                                 </gradient>
151.6075 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.6076 +                                 <points>
151.6077 +                                    <point x="1.0" y="3.0" cp1x="1.0" cp1y="3.0" cp2x="1.0" cp2y="3.0"/>
151.6078 +                                    <point x="12.0" y="3.0" cp1x="12.0" cp1y="3.0" cp2x="16.0" cp2y="3.0"/>
151.6079 +                                    <point x="17.0" y="8.0" cp1x="17.0" cp1y="4.0" cp2x="17.0" cp2y="8.0"/>
151.6080 +                                    <point x="17.0" y="16.0" cp1x="17.0" cp1y="16.0" cp2x="17.0" cp2y="20.0"/>
151.6081 +                                    <point x="12.0" y="21.0" cp1x="16.0" cp1y="21.0" cp2x="12.0" cp2y="21.0"/>
151.6082 +                                    <point x="1.0" y="21.0" cp1x="1.0" cp1y="21.0" cp2x="1.0" cp2y="21.0"/>
151.6083 +                                 </points>
151.6084 +                              </path>
151.6085 +                              <path>
151.6086 +                                 <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.6087 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.6088 +                                 <points>
151.6089 +                                    <point x="0.8529411764705883" y="21.11764705882353" cp1x="0.8529411764705883" cp1y="21.11764705882353" cp2x="0.8529411764705883" cp2y="21.11764705882353"/>
151.6090 +                                 </points>
151.6091 +                              </path>
151.6092 +                              <path>
151.6093 +                                 <gradient cycleMethod="NO_CYCLE">
151.6094 +                                    <stop position="0.0" midpoint="0.5">
151.6095 +                                       <matte red="98" green="119" blue="138" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.34585923" brightnessOffset="-0.007843137" alphaOffset="0"/>
151.6096 +                                    </stop>
151.6097 +                                    <stop position="1.0" midpoint="0.5">
151.6098 +                                       <matte red="34" green="55" blue="74" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.095173776" brightnessOffset="-0.25882354" alphaOffset="0"/>
151.6099 +                                    </stop>
151.6100 +                                 </gradient>
151.6101 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.6102 +                                 <points>
151.6103 +                                    <point x="0.0" y="2.0" cp1x="0.0" cp1y="2.0" cp2x="0.0" cp2y="2.0"/>
151.6104 +                                    <point x="13.0" y="2.0" cp1x="13.0" cp1y="2.0" cp2x="16.0" cp2y="2.0"/>
151.6105 +                                    <point x="18.0" y="7.0" cp1x="18.0" cp1y="4.0" cp2x="18.0" cp2y="7.0"/>
151.6106 +                                    <point x="18.0" y="17.0" cp1x="18.0" cp1y="17.0" cp2x="18.0" cp2y="20.0"/>
151.6107 +                                    <point x="13.0" y="22.0" cp1x="16.0" cp1y="22.0" cp2x="13.0" cp2y="22.0"/>
151.6108 +                                    <point x="0.0" y="22.0" cp1x="0.0" cp1y="22.0" cp2x="0.0" cp2y="22.0"/>
151.6109 +                                 </points>
151.6110 +                              </path>
151.6111 +                              <path>
151.6112 +                                 <matte red="0" green="0" blue="0" alpha="64" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.74509805" alphaOffset="-191"/>
151.6113 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.6114 +                                 <points>
151.6115 +                                    <point x="0.0" y="16.0" cp1x="0.0" cp1y="16.0" cp2x="0.0" cp2y="16.0"/>
151.6116 +                                    <point x="18.0" y="16.0" cp1x="18.0" cp1y="16.0" cp2x="18.0" cp2y="16.0"/>
151.6117 +                                    <point x="18.0" y="18.0" cp1x="18.0" cp1y="18.0" cp2x="18.0" cp2y="22.0"/>
151.6118 +                                    <point x="13.0" y="23.0" cp1x="16.0" cp1y="23.0" cp2x="13.0" cp2y="23.0"/>
151.6119 +                                    <point x="0.0" y="23.0" cp1x="0.0" cp1y="23.0" cp2x="0.0" cp2y="23.0"/>
151.6120 +                                 </points>
151.6121 +                              </path>
151.6122 +                           </shapes>
151.6123 +                           <effects/>
151.6124 +                        </layer>
151.6125 +                        <templateLayer fileName="113c761dccf.png">
151.6126 +                           <layer name="Template" type="template">
151.6127 +                              <opacity>1.0</opacity>
151.6128 +                              <fillOpacity>1.0</fillOpacity>
151.6129 +                              <blendingMode>NORMAL</blendingMode>
151.6130 +                              <locked>false</locked>
151.6131 +                              <visible>false</visible>
151.6132 +                              <shapes/>
151.6133 +                              <effects/>
151.6134 +                           </layer>
151.6135 +                        </templateLayer>
151.6136 +                     </canvas>
151.6137 +                  </state>
151.6138 +                  <state stateKeys="MouseOver+Editable">
151.6139 +                     <style>
151.6140 +                        <textForeground/>
151.6141 +                        <textBackground/>
151.6142 +                        <background/>
151.6143 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.6144 +                        <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.6145 +                        <uiproperties/>
151.6146 +                     </style>
151.6147 +                     <canvas>
151.6148 +                        <size width="20" height="24"/>
151.6149 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.6150 +                        <stretchingInsets top="8" bottom="8" left="1" right="8"/>
151.6151 +                        <layer name="Layer 1">
151.6152 +                           <opacity>1.0</opacity>
151.6153 +                           <fillOpacity>1.0</fillOpacity>
151.6154 +                           <blendingMode>NORMAL</blendingMode>
151.6155 +                           <locked>false</locked>
151.6156 +                           <visible>true</visible>
151.6157 +                           <shapes>
151.6158 +                              <path>
151.6159 +                                 <gradient cycleMethod="NO_CYCLE">
151.6160 +                                    <stop position="0.0" midpoint="0.2754491">
151.6161 +                                       <matte red="248" green="250" blue="252" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6198413" brightnessOffset="0.43921566" alphaOffset="0"/>
151.6162 +                                    </stop>
151.6163 +                                    <stop position="0.44652405" midpoint="0.5">
151.6164 +                                       <matte red="191" green="209" blue="226" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0023007393" saturationOffset="-0.48084703" brightnessOffset="0.33725488" alphaOffset="0"/>
151.6165 +                                    </stop>
151.6166 +                                    <stop position="0.64171124" midpoint="0.5">
151.6167 +                                       <matte red="182" green="203" blue="222" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4555341" brightnessOffset="0.3215686" alphaOffset="0"/>
151.6168 +                                    </stop>
151.6169 +                                    <stop position="0.98395723" midpoint="0.5">
151.6170 +                                       <matte red="210" green="231" blue="250" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4757143" brightnessOffset="0.43137252" alphaOffset="0"/>
151.6171 +                                    </stop>
151.6172 +                                 </gradient>
151.6173 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.6174 +                                 <points>
151.6175 +                                    <point x="1.0" y="3.0" cp1x="1.0" cp1y="3.0" cp2x="1.0" cp2y="3.0"/>
151.6176 +                                    <point x="12.0" y="3.0" cp1x="12.0" cp1y="3.0" cp2x="16.0" cp2y="3.0"/>
151.6177 +                                    <point x="17.0" y="8.0" cp1x="17.0" cp1y="4.0" cp2x="17.0" cp2y="8.0"/>
151.6178 +                                    <point x="17.0" y="16.0" cp1x="17.0" cp1y="16.0" cp2x="17.0" cp2y="20.0"/>
151.6179 +                                    <point x="12.0" y="21.0" cp1x="16.0" cp1y="21.0" cp2x="12.0" cp2y="21.0"/>
151.6180 +                                    <point x="1.0" y="21.0" cp1x="1.0" cp1y="21.0" cp2x="1.0" cp2y="21.0"/>
151.6181 +                                 </points>
151.6182 +                              </path>
151.6183 +                              <path>
151.6184 +                                 <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.6185 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.6186 +                                 <points>
151.6187 +                                    <point x="0.8529411764705883" y="21.11764705882353" cp1x="0.8529411764705883" cp1y="21.11764705882353" cp2x="0.8529411764705883" cp2y="21.11764705882353"/>
151.6188 +                                 </points>
151.6189 +                              </path>
151.6190 +                              <path>
151.6191 +                                 <gradient cycleMethod="NO_CYCLE">
151.6192 +                                    <stop position="0.0" midpoint="0.5">
151.6193 +                                       <matte red="59" green="85" blue="109" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0013483167" saturationOffset="-0.1769987" brightnessOffset="-0.12156865" alphaOffset="0"/>
151.6194 +                                    </stop>
151.6195 +                                    <stop position="1.0" midpoint="0.5">
151.6196 +                                       <matte red="0" green="5" blue="29" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.059279382" saturationOffset="0.3642857" brightnessOffset="-0.43529415" alphaOffset="0"/>
151.6197 +                                    </stop>
151.6198 +                                 </gradient>
151.6199 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.6200 +                                 <points>
151.6201 +                                    <point x="0.0" y="2.0" cp1x="0.0" cp1y="2.0" cp2x="0.0" cp2y="2.0"/>
151.6202 +                                    <point x="13.0" y="2.0" cp1x="13.0" cp1y="2.0" cp2x="16.0" cp2y="2.0"/>
151.6203 +                                    <point x="18.0" y="7.0" cp1x="18.0" cp1y="4.0" cp2x="18.0" cp2y="7.0"/>
151.6204 +                                    <point x="18.0" y="17.0" cp1x="18.0" cp1y="17.0" cp2x="18.0" cp2y="20.0"/>
151.6205 +                                    <point x="13.0" y="22.0" cp1x="16.0" cp1y="22.0" cp2x="13.0" cp2y="22.0"/>
151.6206 +                                    <point x="0.0" y="22.0" cp1x="0.0" cp1y="22.0" cp2x="0.0" cp2y="22.0"/>
151.6207 +                                 </points>
151.6208 +                              </path>
151.6209 +                              <path>
151.6210 +                                 <matte red="0" green="0" blue="0" alpha="64" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.74509805" alphaOffset="-191"/>
151.6211 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.6212 +                                 <points>
151.6213 +                                    <point x="0.0" y="16.0" cp1x="0.0" cp1y="16.0" cp2x="0.0" cp2y="16.0"/>
151.6214 +                                    <point x="18.0" y="16.0" cp1x="18.0" cp1y="16.0" cp2x="18.0" cp2y="16.0"/>
151.6215 +                                    <point x="18.0" y="18.0" cp1x="18.0" cp1y="18.0" cp2x="18.0" cp2y="22.0"/>
151.6216 +                                    <point x="13.0" y="23.0" cp1x="16.0" cp1y="23.0" cp2x="13.0" cp2y="23.0"/>
151.6217 +                                    <point x="0.0" y="23.0" cp1x="0.0" cp1y="23.0" cp2x="0.0" cp2y="23.0"/>
151.6218 +                                 </points>
151.6219 +                              </path>
151.6220 +                           </shapes>
151.6221 +                           <effects/>
151.6222 +                        </layer>
151.6223 +                        <templateLayer fileName="113c77f1a58.png">
151.6224 +                           <layer name="Template" type="template">
151.6225 +                              <opacity>1.0</opacity>
151.6226 +                              <fillOpacity>1.0</fillOpacity>
151.6227 +                              <blendingMode>NORMAL</blendingMode>
151.6228 +                              <locked>false</locked>
151.6229 +                              <visible>false</visible>
151.6230 +                              <shapes/>
151.6231 +                              <effects/>
151.6232 +                           </layer>
151.6233 +                        </templateLayer>
151.6234 +                     </canvas>
151.6235 +                  </state>
151.6236 +                  <state stateKeys="Pressed+Editable">
151.6237 +                     <style>
151.6238 +                        <textForeground/>
151.6239 +                        <textBackground/>
151.6240 +                        <background/>
151.6241 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.6242 +                        <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.6243 +                        <uiproperties/>
151.6244 +                     </style>
151.6245 +                     <canvas>
151.6246 +                        <size width="20" height="24"/>
151.6247 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.6248 +                        <stretchingInsets top="8" bottom="8" left="1" right="8"/>
151.6249 +                        <layer name="Layer 1">
151.6250 +                           <opacity>1.0</opacity>
151.6251 +                           <fillOpacity>1.0</fillOpacity>
151.6252 +                           <blendingMode>NORMAL</blendingMode>
151.6253 +                           <locked>false</locked>
151.6254 +                           <visible>true</visible>
151.6255 +                           <shapes>
151.6256 +                              <path>
151.6257 +                                 <gradient cycleMethod="NO_CYCLE">
151.6258 +                                    <stop position="0.0" midpoint="0.2754491">
151.6259 +                                       <matte red="143" green="169" blue="192" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-4.2033195E-4" saturationOffset="-0.38050595" brightnessOffset="0.20392156" alphaOffset="0"/>
151.6260 +                                    </stop>
151.6261 +                                    <stop position="0.44652405" midpoint="0.5">
151.6262 +                                       <matte red="63" green="107" blue="147" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="7.13408E-4" saturationOffset="-0.064285696" brightnessOffset="0.027450979" alphaOffset="0"/>
151.6263 +                                    </stop>
151.6264 +                                    <stop position="0.64171124" midpoint="0.5">
151.6265 +                                       <matte red="53" green="100" blue="142" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.00895375" brightnessOffset="0.007843137" alphaOffset="0"/>
151.6266 +                                    </stop>
151.6267 +                                    <stop position="1.0" midpoint="0.5">
151.6268 +                                       <matte red="89" green="135" blue="177" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="8.9377165E-4" saturationOffset="-0.13853917" brightnessOffset="0.14509803" alphaOffset="0"/>
151.6269 +                                    </stop>
151.6270 +                                 </gradient>
151.6271 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.6272 +                                 <points>
151.6273 +                                    <point x="1.0" y="3.0" cp1x="1.0" cp1y="3.0" cp2x="1.0" cp2y="3.0"/>
151.6274 +                                    <point x="12.0" y="3.0" cp1x="12.0" cp1y="3.0" cp2x="16.0" cp2y="3.0"/>
151.6275 +                                    <point x="17.0" y="8.0" cp1x="17.0" cp1y="4.0" cp2x="17.0" cp2y="8.0"/>
151.6276 +                                    <point x="17.0" y="16.0" cp1x="17.0" cp1y="16.0" cp2x="17.0" cp2y="20.0"/>
151.6277 +                                    <point x="12.0" y="21.0" cp1x="16.0" cp1y="21.0" cp2x="12.0" cp2y="21.0"/>
151.6278 +                                    <point x="1.0" y="21.0" cp1x="1.0" cp1y="21.0" cp2x="1.0" cp2y="21.0"/>
151.6279 +                                 </points>
151.6280 +                              </path>
151.6281 +                              <path>
151.6282 +                                 <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.6283 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.6284 +                                 <points>
151.6285 +                                    <point x="0.8529411764705883" y="21.11764705882353" cp1x="0.8529411764705883" cp1y="21.11764705882353" cp2x="0.8529411764705883" cp2y="21.11764705882353"/>
151.6286 +                                 </points>
151.6287 +                              </path>
151.6288 +                              <path>
151.6289 +                                 <gradient cycleMethod="NO_CYCLE">
151.6290 +                                    <stop position="0.0" midpoint="0.5">
151.6291 +                                       <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.6292 +                                    </stop>
151.6293 +                                    <stop position="1.0" midpoint="0.5">
151.6294 +                                       <matte red="28" green="56" blue="81" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-3.528595E-5" saturationOffset="0.018606722" brightnessOffset="-0.23137257" alphaOffset="0"/>
151.6295 +                                    </stop>
151.6296 +                                 </gradient>
151.6297 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.6298 +                                 <points>
151.6299 +                                    <point x="0.0" y="2.0" cp1x="0.0" cp1y="2.0" cp2x="0.0" cp2y="2.0"/>
151.6300 +                                    <point x="13.0" y="2.0" cp1x="13.0" cp1y="2.0" cp2x="16.0" cp2y="2.0"/>
151.6301 +                                    <point x="18.0" y="7.0" cp1x="18.0" cp1y="4.0" cp2x="18.0" cp2y="7.0"/>
151.6302 +                                    <point x="18.0" y="17.0" cp1x="18.0" cp1y="17.0" cp2x="18.0" cp2y="20.0"/>
151.6303 +                                    <point x="13.0" y="22.0" cp1x="16.0" cp1y="22.0" cp2x="13.0" cp2y="22.0"/>
151.6304 +                                    <point x="0.0" y="22.0" cp1x="0.0" cp1y="22.0" cp2x="0.0" cp2y="22.0"/>
151.6305 +                                 </points>
151.6306 +                              </path>
151.6307 +                              <path>
151.6308 +                                 <matte red="0" green="0" blue="0" alpha="64" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.74509805" alphaOffset="-191"/>
151.6309 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.6310 +                                 <points>
151.6311 +                                    <point x="0.0" y="16.0" cp1x="0.0" cp1y="16.0" cp2x="0.0" cp2y="16.0"/>
151.6312 +                                    <point x="18.0" y="16.0" cp1x="18.0" cp1y="16.0" cp2x="18.0" cp2y="16.0"/>
151.6313 +                                    <point x="18.0" y="18.0" cp1x="18.0" cp1y="18.0" cp2x="18.0" cp2y="22.0"/>
151.6314 +                                    <point x="13.0" y="23.0" cp1x="16.0" cp1y="23.0" cp2x="13.0" cp2y="23.0"/>
151.6315 +                                    <point x="0.0" y="23.0" cp1x="0.0" cp1y="23.0" cp2x="0.0" cp2y="23.0"/>
151.6316 +                                 </points>
151.6317 +                              </path>
151.6318 +                           </shapes>
151.6319 +                           <effects/>
151.6320 +                        </layer>
151.6321 +                        <templateLayer fileName="114d8d17d13.png">
151.6322 +                           <layer name="Template" type="template">
151.6323 +                              <opacity>1.0</opacity>
151.6324 +                              <fillOpacity>1.0</fillOpacity>
151.6325 +                              <blendingMode>NORMAL</blendingMode>
151.6326 +                              <locked>false</locked>
151.6327 +                              <visible>false</visible>
151.6328 +                              <shapes/>
151.6329 +                              <effects/>
151.6330 +                           </layer>
151.6331 +                        </templateLayer>
151.6332 +                     </canvas>
151.6333 +                  </state>
151.6334 +                  <state stateKeys="Selected+Editable">
151.6335 +                     <style>
151.6336 +                        <textForeground/>
151.6337 +                        <textBackground/>
151.6338 +                        <background/>
151.6339 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.6340 +                        <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.6341 +                        <uiproperties/>
151.6342 +                     </style>
151.6343 +                     <canvas>
151.6344 +                        <size width="20" height="24"/>
151.6345 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.6346 +                        <stretchingInsets top="8" bottom="8" left="1" right="8"/>
151.6347 +                        <layer name="Layer 1">
151.6348 +                           <opacity>1.0</opacity>
151.6349 +                           <fillOpacity>1.0</fillOpacity>
151.6350 +                           <blendingMode>NORMAL</blendingMode>
151.6351 +                           <locked>false</locked>
151.6352 +                           <visible>true</visible>
151.6353 +                           <shapes>
151.6354 +                              <path>
151.6355 +                                 <gradient cycleMethod="NO_CYCLE">
151.6356 +                                    <stop position="0.0" midpoint="0.2754491">
151.6357 +                                       <matte red="143" green="169" blue="192" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-4.2033195E-4" saturationOffset="-0.38050595" brightnessOffset="0.20392156" alphaOffset="0"/>
151.6358 +                                    </stop>
151.6359 +                                    <stop position="0.44652405" midpoint="0.5">
151.6360 +                                       <matte red="63" green="107" blue="147" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="7.13408E-4" saturationOffset="-0.064285696" brightnessOffset="0.027450979" alphaOffset="0"/>
151.6361 +                                    </stop>
151.6362 +                                    <stop position="0.64171124" midpoint="0.5">
151.6363 +                                       <matte red="53" green="100" blue="142" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.00895375" brightnessOffset="0.007843137" alphaOffset="0"/>
151.6364 +                                    </stop>
151.6365 +                                    <stop position="1.0" midpoint="0.5">
151.6366 +                                       <matte red="89" green="135" blue="177" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="8.9377165E-4" saturationOffset="-0.13853917" brightnessOffset="0.14509803" alphaOffset="0"/>
151.6367 +                                    </stop>
151.6368 +                                 </gradient>
151.6369 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.6370 +                                 <points>
151.6371 +                                    <point x="1.0" y="3.0" cp1x="1.0" cp1y="3.0" cp2x="1.0" cp2y="3.0"/>
151.6372 +                                    <point x="12.0" y="3.0" cp1x="12.0" cp1y="3.0" cp2x="16.0" cp2y="3.0"/>
151.6373 +                                    <point x="17.0" y="8.0" cp1x="17.0" cp1y="4.0" cp2x="17.0" cp2y="8.0"/>
151.6374 +                                    <point x="17.0" y="16.0" cp1x="17.0" cp1y="16.0" cp2x="17.0" cp2y="20.0"/>
151.6375 +                                    <point x="12.0" y="21.0" cp1x="16.0" cp1y="21.0" cp2x="12.0" cp2y="21.0"/>
151.6376 +                                    <point x="1.0" y="21.0" cp1x="1.0" cp1y="21.0" cp2x="1.0" cp2y="21.0"/>
151.6377 +                                 </points>
151.6378 +                              </path>
151.6379 +                              <path>
151.6380 +                                 <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.6381 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.6382 +                                 <points>
151.6383 +                                    <point x="0.8529411764705883" y="21.11764705882353" cp1x="0.8529411764705883" cp1y="21.11764705882353" cp2x="0.8529411764705883" cp2y="21.11764705882353"/>
151.6384 +                                 </points>
151.6385 +                              </path>
151.6386 +                              <path>
151.6387 +                                 <gradient cycleMethod="NO_CYCLE">
151.6388 +                                    <stop position="0.0" midpoint="0.5">
151.6389 +                                       <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.6390 +                                    </stop>
151.6391 +                                    <stop position="1.0" midpoint="0.5">
151.6392 +                                       <matte red="28" green="56" blue="81" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-3.528595E-5" saturationOffset="0.018606722" brightnessOffset="-0.23137257" alphaOffset="0"/>
151.6393 +                                    </stop>
151.6394 +                                 </gradient>
151.6395 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.6396 +                                 <points>
151.6397 +                                    <point x="0.0" y="2.0" cp1x="0.0" cp1y="2.0" cp2x="0.0" cp2y="2.0"/>
151.6398 +                                    <point x="13.0" y="2.0" cp1x="13.0" cp1y="2.0" cp2x="16.0" cp2y="2.0"/>
151.6399 +                                    <point x="18.0" y="7.0" cp1x="18.0" cp1y="4.0" cp2x="18.0" cp2y="7.0"/>
151.6400 +                                    <point x="18.0" y="17.0" cp1x="18.0" cp1y="17.0" cp2x="18.0" cp2y="20.0"/>
151.6401 +                                    <point x="13.0" y="22.0" cp1x="16.0" cp1y="22.0" cp2x="13.0" cp2y="22.0"/>
151.6402 +                                    <point x="0.0" y="22.0" cp1x="0.0" cp1y="22.0" cp2x="0.0" cp2y="22.0"/>
151.6403 +                                 </points>
151.6404 +                              </path>
151.6405 +                              <path>
151.6406 +                                 <matte red="0" green="0" blue="0" alpha="64" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.74509805" alphaOffset="-191"/>
151.6407 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.6408 +                                 <points>
151.6409 +                                    <point x="0.0" y="16.0" cp1x="0.0" cp1y="16.0" cp2x="0.0" cp2y="16.0"/>
151.6410 +                                    <point x="18.0" y="16.0" cp1x="18.0" cp1y="16.0" cp2x="18.0" cp2y="16.0"/>
151.6411 +                                    <point x="18.0" y="18.0" cp1x="18.0" cp1y="18.0" cp2x="18.0" cp2y="22.0"/>
151.6412 +                                    <point x="13.0" y="23.0" cp1x="16.0" cp1y="23.0" cp2x="13.0" cp2y="23.0"/>
151.6413 +                                    <point x="0.0" y="23.0" cp1x="0.0" cp1y="23.0" cp2x="0.0" cp2y="23.0"/>
151.6414 +                                 </points>
151.6415 +                              </path>
151.6416 +                           </shapes>
151.6417 +                           <effects/>
151.6418 +                        </layer>
151.6419 +                        <templateLayer fileName="113c7808b08.png">
151.6420 +                           <layer name="Template" type="template">
151.6421 +                              <opacity>1.0</opacity>
151.6422 +                              <fillOpacity>1.0</fillOpacity>
151.6423 +                              <blendingMode>NORMAL</blendingMode>
151.6424 +                              <locked>false</locked>
151.6425 +                              <visible>false</visible>
151.6426 +                              <shapes/>
151.6427 +                              <effects/>
151.6428 +                           </layer>
151.6429 +                        </templateLayer>
151.6430 +                     </canvas>
151.6431 +                  </state>
151.6432 +               </backgroundStates>
151.6433 +               <foregroundStates>
151.6434 +                  <state stateKeys="Enabled" inverted="true">
151.6435 +                     <style>
151.6436 +                        <textForeground/>
151.6437 +                        <textBackground/>
151.6438 +                        <background/>
151.6439 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.6440 +                        <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.6441 +                        <uiproperties/>
151.6442 +                     </style>
151.6443 +                     <canvas>
151.6444 +                        <size width="24" height="19"/>
151.6445 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.6446 +                        <stretchingInsets top="6" bottom="6" left="9" right="10"/>
151.6447 +                        <layer name="Arrow">
151.6448 +                           <opacity>1.0</opacity>
151.6449 +                           <fillOpacity>1.0</fillOpacity>
151.6450 +                           <blendingMode>NORMAL</blendingMode>
151.6451 +                           <locked>false</locked>
151.6452 +                           <visible>true</visible>
151.6453 +                           <shapes>
151.6454 +                              <path>
151.6455 +                                 <gradient cycleMethod="NO_CYCLE">
151.6456 +                                    <stop position="0.0" midpoint="0.5">
151.6457 +                                       <matte red="45" green="45" blue="45" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.37254906" alphaOffset="0"/>
151.6458 +                                    </stop>
151.6459 +                                    <stop position="1.0" midpoint="0.5">
151.6460 +                                       <matte red="6" green="6" blue="6" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.5254902" alphaOffset="0"/>
151.6461 +                                    </stop>
151.6462 +                                 </gradient>
151.6463 +                                 <paintPoints x1="1.0" y1="0.5" x2="0.0" y2="0.5"/>
151.6464 +                                 <points>
151.6465 +                                    <point x="8.996323529411764" y="8.531250000000004" cp1x="8.996323529411764" cp1y="8.531250000000004" cp2x="8.996323529411764" cp2y="8.531250000000004"/>
151.6466 +                                    <point x="14.0" y="5.0" cp1x="14.0" cp1y="5.0" cp2x="14.0" cp2y="5.0"/>
151.6467 +                                    <point x="14.0" y="12.0" cp1x="14.0" cp1y="12.0" cp2x="14.0" cp2y="12.0"/>
151.6468 +                                 </points>
151.6469 +                              </path>
151.6470 +                           </shapes>
151.6471 +                           <effects/>
151.6472 +                        </layer>
151.6473 +                        <templateLayer fileName="114d842ecfd.png">
151.6474 +                           <layer name="Template" type="template">
151.6475 +                              <opacity>1.0</opacity>
151.6476 +                              <fillOpacity>1.0</fillOpacity>
151.6477 +                              <blendingMode>NORMAL</blendingMode>
151.6478 +                              <locked>false</locked>
151.6479 +                              <visible>false</visible>
151.6480 +                              <shapes/>
151.6481 +                              <effects/>
151.6482 +                           </layer>
151.6483 +                        </templateLayer>
151.6484 +                     </canvas>
151.6485 +                  </state>
151.6486 +                  <state stateKeys="MouseOver" inverted="true">
151.6487 +                     <style>
151.6488 +                        <textForeground/>
151.6489 +                        <textBackground/>
151.6490 +                        <background/>
151.6491 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.6492 +                        <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.6493 +                        <uiproperties/>
151.6494 +                     </style>
151.6495 +                     <canvas>
151.6496 +                        <size width="24" height="19"/>
151.6497 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.6498 +                        <stretchingInsets top="6" bottom="6" left="9" right="10"/>
151.6499 +                        <layer name="Arrow">
151.6500 +                           <opacity>1.0</opacity>
151.6501 +                           <fillOpacity>1.0</fillOpacity>
151.6502 +                           <blendingMode>NORMAL</blendingMode>
151.6503 +                           <locked>false</locked>
151.6504 +                           <visible>true</visible>
151.6505 +                           <shapes>
151.6506 +                              <path>
151.6507 +                                 <gradient cycleMethod="NO_CYCLE">
151.6508 +                                    <stop position="0.0" midpoint="0.5">
151.6509 +                                       <matte red="45" green="45" blue="45" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.37254906" alphaOffset="0"/>
151.6510 +                                    </stop>
151.6511 +                                    <stop position="1.0" midpoint="0.5">
151.6512 +                                       <matte red="6" green="6" blue="6" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.5254902" alphaOffset="0"/>
151.6513 +                                    </stop>
151.6514 +                                 </gradient>
151.6515 +                                 <paintPoints x1="1.0" y1="0.5" x2="0.0" y2="0.5"/>
151.6516 +                                 <points>
151.6517 +                                    <point x="9.03125" y="8.46875" cp1x="9.03125" cp1y="8.46875" cp2x="9.03125" cp2y="8.46875"/>
151.6518 +                                    <point x="14.0" y="5.0" cp1x="14.0" cp1y="5.0" cp2x="14.0" cp2y="5.0"/>
151.6519 +                                    <point x="14.0" y="12.0" cp1x="14.0" cp1y="12.0" cp2x="14.0" cp2y="12.0"/>
151.6520 +                                 </points>
151.6521 +                              </path>
151.6522 +                           </shapes>
151.6523 +                           <effects/>
151.6524 +                        </layer>
151.6525 +                        <templateLayer fileName="114d842ecfd.png">
151.6526 +                           <layer name="Template" type="template">
151.6527 +                              <opacity>1.0</opacity>
151.6528 +                              <fillOpacity>1.0</fillOpacity>
151.6529 +                              <blendingMode>NORMAL</blendingMode>
151.6530 +                              <locked>false</locked>
151.6531 +                              <visible>false</visible>
151.6532 +                              <shapes/>
151.6533 +                              <effects/>
151.6534 +                           </layer>
151.6535 +                        </templateLayer>
151.6536 +                     </canvas>
151.6537 +                  </state>
151.6538 +                  <state stateKeys="Disabled" inverted="true">
151.6539 +                     <style>
151.6540 +                        <textForeground/>
151.6541 +                        <textBackground/>
151.6542 +                        <background/>
151.6543 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.6544 +                        <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.6545 +                        <uiproperties/>
151.6546 +                     </style>
151.6547 +                     <canvas>
151.6548 +                        <size width="24" height="19"/>
151.6549 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.6550 +                        <stretchingInsets top="6" bottom="6" left="9" right="10"/>
151.6551 +                        <layer name="Arrow">
151.6552 +                           <opacity>1.0</opacity>
151.6553 +                           <fillOpacity>1.0</fillOpacity>
151.6554 +                           <blendingMode>NORMAL</blendingMode>
151.6555 +                           <locked>false</locked>
151.6556 +                           <visible>true</visible>
151.6557 +                           <shapes>
151.6558 +                              <path>
151.6559 +                                 <matte red="167" green="171" blue="178" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.027408898" saturationOffset="-0.57391655" brightnessOffset="0.1490196" alphaOffset="0"/>
151.6560 +                                 <paintPoints x1="1.0" y1="0.5" x2="0.0" y2="0.5"/>
151.6561 +                                 <points>
151.6562 +                                    <point x="9.058823529411764" y="8.531250000000004" cp1x="9.058823529411764" cp1y="8.531250000000004" cp2x="9.058823529411764" cp2y="8.531250000000004"/>
151.6563 +                                    <point x="14.0" y="5.0" cp1x="14.0" cp1y="5.0" cp2x="14.0" cp2y="5.0"/>
151.6564 +                                    <point x="14.0" y="12.0" cp1x="14.0" cp1y="12.0" cp2x="14.0" cp2y="12.0"/>
151.6565 +                                 </points>
151.6566 +                              </path>
151.6567 +                           </shapes>
151.6568 +                           <effects/>
151.6569 +                        </layer>
151.6570 +                        <templateLayer fileName="114d85fec10.png">
151.6571 +                           <layer name="Template" type="template">
151.6572 +                              <opacity>1.0</opacity>
151.6573 +                              <fillOpacity>1.0</fillOpacity>
151.6574 +                              <blendingMode>NORMAL</blendingMode>
151.6575 +                              <locked>false</locked>
151.6576 +                              <visible>false</visible>
151.6577 +                              <shapes/>
151.6578 +                              <effects/>
151.6579 +                           </layer>
151.6580 +                        </templateLayer>
151.6581 +                     </canvas>
151.6582 +                  </state>
151.6583 +                  <state stateKeys="Pressed" inverted="true">
151.6584 +                     <style>
151.6585 +                        <textForeground/>
151.6586 +                        <textBackground/>
151.6587 +                        <background/>
151.6588 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.6589 +                        <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.6590 +                        <uiproperties/>
151.6591 +                     </style>
151.6592 +                     <canvas>
151.6593 +                        <size width="24" height="19"/>
151.6594 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.6595 +                        <stretchingInsets top="6" bottom="6" left="9" right="10"/>
151.6596 +                        <layer name="Arrow">
151.6597 +                           <opacity>1.0</opacity>
151.6598 +                           <fillOpacity>1.0</fillOpacity>
151.6599 +                           <blendingMode>NORMAL</blendingMode>
151.6600 +                           <locked>false</locked>
151.6601 +                           <visible>true</visible>
151.6602 +                           <shapes>
151.6603 +                              <path>
151.6604 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="0"/>
151.6605 +                                 <paintPoints x1="1.0" y1="0.5" x2="0.0" y2="0.5"/>
151.6606 +                                 <points>
151.6607 +                                    <point x="9.121323529411764" y="8.468750000000004" cp1x="9.121323529411764" cp1y="8.468750000000004" cp2x="9.121323529411764" cp2y="8.468750000000004"/>
151.6608 +                                    <point x="14.0" y="5.0" cp1x="14.0" cp1y="5.0" cp2x="14.0" cp2y="5.0"/>
151.6609 +                                    <point x="14.0" y="12.0" cp1x="14.0" cp1y="12.0" cp2x="14.0" cp2y="12.0"/>
151.6610 +                                 </points>
151.6611 +                              </path>
151.6612 +                           </shapes>
151.6613 +                           <effects/>
151.6614 +                        </layer>
151.6615 +                        <templateLayer fileName="114d861c1b2.png">
151.6616 +                           <layer name="Template" type="template">
151.6617 +                              <opacity>1.0</opacity>
151.6618 +                              <fillOpacity>1.0</fillOpacity>
151.6619 +                              <blendingMode>NORMAL</blendingMode>
151.6620 +                              <locked>false</locked>
151.6621 +                              <visible>false</visible>
151.6622 +                              <shapes/>
151.6623 +                              <effects/>
151.6624 +                           </layer>
151.6625 +                        </templateLayer>
151.6626 +                     </canvas>
151.6627 +                  </state>
151.6628 +                  <state stateKeys="Selected" inverted="true">
151.6629 +                     <style>
151.6630 +                        <textForeground/>
151.6631 +                        <textBackground/>
151.6632 +                        <background/>
151.6633 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.6634 +                        <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.6635 +                        <uiproperties/>
151.6636 +                     </style>
151.6637 +                     <canvas>
151.6638 +                        <size width="24" height="19"/>
151.6639 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.6640 +                        <stretchingInsets top="6" bottom="6" left="9" right="10"/>
151.6641 +                        <layer name="Arrow">
151.6642 +                           <opacity>1.0</opacity>
151.6643 +                           <fillOpacity>1.0</fillOpacity>
151.6644 +                           <blendingMode>NORMAL</blendingMode>
151.6645 +                           <locked>false</locked>
151.6646 +                           <visible>true</visible>
151.6647 +                           <shapes>
151.6648 +                              <path>
151.6649 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="0"/>
151.6650 +                                 <paintPoints x1="1.0" y1="0.5" x2="0.0" y2="0.5"/>
151.6651 +                                 <points>
151.6652 +                                    <point x="9.058823529411764" y="8.531250000000004" cp1x="9.058823529411764" cp1y="8.531250000000004" cp2x="9.058823529411764" cp2y="8.531250000000004"/>
151.6653 +                                    <point x="14.0" y="5.0" cp1x="14.0" cp1y="5.0" cp2x="14.0" cp2y="5.0"/>
151.6654 +                                    <point x="14.0" y="12.0" cp1x="14.0" cp1y="12.0" cp2x="14.0" cp2y="12.0"/>
151.6655 +                                 </points>
151.6656 +                              </path>
151.6657 +                           </shapes>
151.6658 +                           <effects/>
151.6659 +                        </layer>
151.6660 +                        <templateLayer fileName="114d861c1b2.png">
151.6661 +                           <layer name="Template" type="template">
151.6662 +                              <opacity>1.0</opacity>
151.6663 +                              <fillOpacity>1.0</fillOpacity>
151.6664 +                              <blendingMode>NORMAL</blendingMode>
151.6665 +                              <locked>false</locked>
151.6666 +                              <visible>false</visible>
151.6667 +                              <shapes/>
151.6668 +                              <effects/>
151.6669 +                           </layer>
151.6670 +                        </templateLayer>
151.6671 +                     </canvas>
151.6672 +                  </state>
151.6673 +               </foregroundStates>
151.6674 +               <borderStates/>
151.6675 +               <regions/>
151.6676 +            </uiComponent>
151.6677 +            <uiComponent opaque="true" componentName="ComboBox.listRenderer" type="javax.swing.JLabel" name="Label" ui="LabelUI" subregion="true">
151.6678 +               <stateTypes/>
151.6679 +               <contentMargins top="2" bottom="2" left="4" right="4"/>
151.6680 +               <style>
151.6681 +                  <textForeground/>
151.6682 +                  <textBackground/>
151.6683 +                  <background>
151.6684 +                     <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.6685 +                  </background>
151.6686 +                  <inherit-background>false</inherit-background>
151.6687 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.6688 +                  <cacheMode>NO_CACHING</cacheMode>
151.6689 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.6690 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.6691 +                  <uiproperties/>
151.6692 +               </style>
151.6693 +               <backgroundStates>
151.6694 +                  <state stateKeys="Disabled">
151.6695 +                     <style>
151.6696 +                        <textForeground>
151.6697 +                           <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.6698 +                        </textForeground>
151.6699 +                        <textBackground/>
151.6700 +                        <background/>
151.6701 +                        <inherit-textForeground>false</inherit-textForeground>
151.6702 +                        <uiproperties/>
151.6703 +                     </style>
151.6704 +                     <canvas>
151.6705 +                        <size width="100" height="30"/>
151.6706 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.6707 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.6708 +                        <layer name="Layer 1">
151.6709 +                           <opacity>1.0</opacity>
151.6710 +                           <fillOpacity>1.0</fillOpacity>
151.6711 +                           <blendingMode>NORMAL</blendingMode>
151.6712 +                           <locked>false</locked>
151.6713 +                           <visible>true</visible>
151.6714 +                           <shapes/>
151.6715 +                           <effects/>
151.6716 +                        </layer>
151.6717 +                     </canvas>
151.6718 +                  </state>
151.6719 +                  <state stateKeys="Selected">
151.6720 +                     <style>
151.6721 +                        <textForeground>
151.6722 +                           <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusSelectedText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.6723 +                        </textForeground>
151.6724 +                        <textBackground/>
151.6725 +                        <background>
151.6726 +                           <matte red="57" green="105" blue="138" alpha="255" uiDefaultParentName="nimbusSelectionBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.6727 +                        </background>
151.6728 +                        <inherit-textForeground>false</inherit-textForeground>
151.6729 +                        <inherit-background>false</inherit-background>
151.6730 +                        <uiproperties/>
151.6731 +                     </style>
151.6732 +                     <canvas>
151.6733 +                        <size width="100" height="30"/>
151.6734 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.6735 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.6736 +                        <layer name="Layer 1">
151.6737 +                           <opacity>1.0</opacity>
151.6738 +                           <fillOpacity>1.0</fillOpacity>
151.6739 +                           <blendingMode>NORMAL</blendingMode>
151.6740 +                           <locked>false</locked>
151.6741 +                           <visible>true</visible>
151.6742 +                           <shapes/>
151.6743 +                           <effects/>
151.6744 +                        </layer>
151.6745 +                     </canvas>
151.6746 +                  </state>
151.6747 +               </backgroundStates>
151.6748 +               <foregroundStates/>
151.6749 +               <borderStates/>
151.6750 +               <regions/>
151.6751 +            </uiComponent>
151.6752 +            <uiComponent opaque="false" componentName="ComboBox.renderer" type="javax.swing.JLabel" name="Label" ui="LabelUI" subregion="true">
151.6753 +               <stateTypes/>
151.6754 +               <contentMargins top="2" bottom="2" left="4" right="4"/>
151.6755 +               <style>
151.6756 +                  <textForeground/>
151.6757 +                  <textBackground/>
151.6758 +                  <background/>
151.6759 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.6760 +                  <cacheMode>NO_CACHING</cacheMode>
151.6761 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.6762 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.6763 +                  <uiproperties/>
151.6764 +               </style>
151.6765 +               <backgroundStates>
151.6766 +                  <state stateKeys="Disabled">
151.6767 +                     <style>
151.6768 +                        <textForeground>
151.6769 +                           <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.6770 +                        </textForeground>
151.6771 +                        <textBackground/>
151.6772 +                        <background/>
151.6773 +                        <inherit-textForeground>false</inherit-textForeground>
151.6774 +                        <uiproperties/>
151.6775 +                     </style>
151.6776 +                     <canvas>
151.6777 +                        <size width="100" height="30"/>
151.6778 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.6779 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.6780 +                        <layer name="Layer 1">
151.6781 +                           <opacity>1.0</opacity>
151.6782 +                           <fillOpacity>1.0</fillOpacity>
151.6783 +                           <blendingMode>NORMAL</blendingMode>
151.6784 +                           <locked>false</locked>
151.6785 +                           <visible>true</visible>
151.6786 +                           <shapes/>
151.6787 +                           <effects/>
151.6788 +                        </layer>
151.6789 +                     </canvas>
151.6790 +                  </state>
151.6791 +                  <state stateKeys="Selected">
151.6792 +                     <style>
151.6793 +                        <textForeground>
151.6794 +                           <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusSelectedText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.6795 +                        </textForeground>
151.6796 +                        <textBackground/>
151.6797 +                        <background>
151.6798 +                           <matte red="57" green="105" blue="138" alpha="255" uiDefaultParentName="nimbusSelectionBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.6799 +                        </background>
151.6800 +                        <inherit-textForeground>false</inherit-textForeground>
151.6801 +                        <inherit-background>false</inherit-background>
151.6802 +                        <uiproperties/>
151.6803 +                     </style>
151.6804 +                     <canvas>
151.6805 +                        <size width="100" height="30"/>
151.6806 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.6807 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.6808 +                        <layer name="Layer 1">
151.6809 +                           <opacity>1.0</opacity>
151.6810 +                           <fillOpacity>1.0</fillOpacity>
151.6811 +                           <blendingMode>NORMAL</blendingMode>
151.6812 +                           <locked>false</locked>
151.6813 +                           <visible>true</visible>
151.6814 +                           <shapes/>
151.6815 +                           <effects/>
151.6816 +                        </layer>
151.6817 +                     </canvas>
151.6818 +                  </state>
151.6819 +               </backgroundStates>
151.6820 +               <foregroundStates/>
151.6821 +               <borderStates/>
151.6822 +               <regions/>
151.6823 +            </uiComponent>
151.6824 +         </regions>
151.6825 +      </uiComponent>
151.6826 +      <uiComponent opaque="false" componentName="ComboBox.scrollPane" type="javax.swing.JScrollPane" name="ScrollPane" ui="ScrollPaneUI" subregion="false">
151.6827 +         <stateTypes/>
151.6828 +         <contentMargins top="0" bottom="0" left="0" right="0"/>
151.6829 +         <style>
151.6830 +            <textForeground/>
151.6831 +            <textBackground/>
151.6832 +            <background/>
151.6833 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.6834 +            <cacheMode>NO_CACHING</cacheMode>
151.6835 +            <uiproperties/>
151.6836 +         </style>
151.6837 +         <backgroundStates>
151.6838 +            <state stateKeys="Enabled">
151.6839 +               <style>
151.6840 +                  <textForeground/>
151.6841 +                  <textBackground/>
151.6842 +                  <background/>
151.6843 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.6844 +                  <uiproperties/>
151.6845 +               </style>
151.6846 +               <canvas>
151.6847 +                  <size width="100" height="30"/>
151.6848 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.6849 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.6850 +                  <layer name="Layer 1">
151.6851 +                     <opacity>1.0</opacity>
151.6852 +                     <fillOpacity>1.0</fillOpacity>
151.6853 +                     <blendingMode>NORMAL</blendingMode>
151.6854 +                     <locked>false</locked>
151.6855 +                     <visible>true</visible>
151.6856 +                     <shapes/>
151.6857 +                     <effects/>
151.6858 +                  </layer>
151.6859 +               </canvas>
151.6860 +            </state>
151.6861 +         </backgroundStates>
151.6862 +         <foregroundStates/>
151.6863 +         <borderStates/>
151.6864 +         <regions/>
151.6865 +      </uiComponent>
151.6866 +      <uiComponent opaque="true" type="javax.swing.JFileChooser" name="FileChooser" ui="FileChooserUI" subregion="false">
151.6867 +         <stateTypes/>
151.6868 +         <contentMargins top="10" bottom="10" left="10" right="10"/>
151.6869 +         <style>
151.6870 +            <textForeground/>
151.6871 +            <textBackground/>
151.6872 +            <background/>
151.6873 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.6874 +            <cacheMode>NO_CACHING</cacheMode>
151.6875 +            <uiproperties>
151.6876 +               <uiProperty name="usesSingleFilePane" type="BOOLEAN" value="true"/>
151.6877 +            </uiproperties>
151.6878 +         </style>
151.6879 +         <backgroundStates>
151.6880 +            <state stateKeys="Enabled">
151.6881 +               <style>
151.6882 +                  <textForeground/>
151.6883 +                  <textBackground/>
151.6884 +                  <background/>
151.6885 +                  <uiproperties/>
151.6886 +               </style>
151.6887 +               <canvas>
151.6888 +                  <size width="100" height="30"/>
151.6889 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.6890 +                  <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.6891 +                  <layer name="Layer 1">
151.6892 +                     <opacity>1.0</opacity>
151.6893 +                     <fillOpacity>1.0</fillOpacity>
151.6894 +                     <blendingMode>NORMAL</blendingMode>
151.6895 +                     <locked>false</locked>
151.6896 +                     <visible>true</visible>
151.6897 +                     <shapes>
151.6898 +                        <rectangle x1="0.0" x2="100.0" y1="0.0" y2="30.0" rounding="0.0">
151.6899 +                           <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="control" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.6900 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.6901 +                        </rectangle>
151.6902 +                     </shapes>
151.6903 +                     <effects/>
151.6904 +                  </layer>
151.6905 +               </canvas>
151.6906 +            </state>
151.6907 +         </backgroundStates>
151.6908 +         <foregroundStates/>
151.6909 +         <borderStates/>
151.6910 +         <regions>
151.6911 +            <uiIconRegion name="fileIcon" subregion="true" key="fileIcon">
151.6912 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.6913 +               <style>
151.6914 +                  <textForeground/>
151.6915 +                  <textBackground/>
151.6916 +                  <background/>
151.6917 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.6918 +                  <uiproperties/>
151.6919 +               </style>
151.6920 +               <backgroundStates>
151.6921 +                  <state stateKeys="Enabled">
151.6922 +                     <style>
151.6923 +                        <textForeground/>
151.6924 +                        <textBackground/>
151.6925 +                        <background/>
151.6926 +                        <uiproperties/>
151.6927 +                     </style>
151.6928 +                     <canvas>
151.6929 +                        <size width="16" height="16"/>
151.6930 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.6931 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.6932 +                        <layer name="Button">
151.6933 +                           <opacity>1.0</opacity>
151.6934 +                           <fillOpacity>1.0</fillOpacity>
151.6935 +                           <blendingMode>NORMAL</blendingMode>
151.6936 +                           <locked>false</locked>
151.6937 +                           <visible>true</visible>
151.6938 +                           <shapes>
151.6939 +                              <path>
151.6940 +                                 <matte red="255" green="255" blue="255" alpha="128" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="-127"/>
151.6941 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.6942 +                                 <points>
151.6943 +                                    <point x="10.0" y="2.0" cp1x="10.0" cp1y="2.0" cp2x="10.0" cp2y="2.0"/>
151.6944 +                                    <point x="10.0" y="1.0" cp1x="10.0" cp1y="1.0" cp2x="10.0" cp2y="1.0"/>
151.6945 +                                    <point x="2.0" y="1.0" cp1x="2.0" cp1y="1.0" cp2x="2.0" cp2y="1.0"/>
151.6946 +                                    <point x="2.0" y="15.0" cp1x="2.0" cp1y="15.0" cp2x="2.0" cp2y="15.0"/>
151.6947 +                                    <point x="14.0" y="15.0" cp1x="14.0" cp1y="15.0" cp2x="14.0" cp2y="15.0"/>
151.6948 +                                    <point x="14.0" y="5.0" cp1x="14.0" cp1y="5.0" cp2x="14.0" cp2y="5.0"/>
151.6949 +                                    <point x="13.0" y="5.0" cp1x="13.0" cp1y="5.0" cp2x="13.0" cp2y="5.0"/>
151.6950 +                                    <point x="13.0" y="14.0" cp1x="13.0" cp1y="14.0" cp2x="13.0" cp2y="14.0"/>
151.6951 +                                    <point x="3.0" y="14.0" cp1x="3.0" cp1y="14.0" cp2x="3.0" cp2y="14.0"/>
151.6952 +                                    <point x="3.0" y="2.0" cp1x="3.0" cp1y="2.0" cp2x="3.0" cp2y="2.0"/>
151.6953 +                                 </points>
151.6954 +                              </path>
151.6955 +                              <path>
151.6956 +                                 <matte red="138" green="157" blue="176" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.4198052" brightnessOffset="0.14117646" alphaOffset="0"/>
151.6957 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.6958 +                                 <points>
151.6959 +                                    <point x="10.0" y="1.0" cp1x="10.0" cp1y="1.0" cp2x="10.0" cp2y="1.0"/>
151.6960 +                                    <point x="8.74074074074074" y="1.0" cp1x="8.74074074074074" cp1y="1.0" cp2x="8.74074074074074" cp2y="1.0"/>
151.6961 +                                    <point x="8.777777777777777" y="6.222222222222219" cp1x="8.777777777777777" cp1y="6.222222222222219" cp2x="8.777777777777777" cp2y="6.222222222222219"/>
151.6962 +                                    <point x="14.0" y="6.2037037037037" cp1x="14.0" cp1y="6.2037037037037" cp2x="14.0" cp2y="6.2037037037037"/>
151.6963 +                                    <point x="14.0" y="5.0" cp1x="14.0" cp1y="5.0" cp2x="14.0" cp2y="5.0"/>
151.6964 +                                    <point x="10.0" y="5.0" cp1x="10.0" cp1y="5.0" cp2x="10.0" cp2y="5.0"/>
151.6965 +                                 </points>
151.6966 +                              </path>
151.6967 +                              <path>
151.6968 +                                 <gradient cycleMethod="NO_CYCLE">
151.6969 +                                    <stop position="0.0" midpoint="0.5">
151.6970 +                                       <matte red="202" green="215" blue="229" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0077680945" saturationOffset="-0.51781034" brightnessOffset="0.3490196" alphaOffset="0"/>
151.6971 +                                    </stop>
151.6972 +                                    <stop position="1.0" midpoint="0.5">
151.6973 +                                       <matte red="238" green="242" blue="247" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.013940871" saturationOffset="-0.599277" brightnessOffset="0.41960782" alphaOffset="0"/>
151.6974 +                                    </stop>
151.6975 +                                 </gradient>
151.6976 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.6977 +                                 <points>
151.6978 +                                    <point x="10.0" y="1.0" cp1x="10.0" cp1y="1.0" cp2x="10.0" cp2y="1.0"/>
151.6979 +                                    <point x="2.0" y="1.0" cp1x="2.0" cp1y="1.0" cp2x="2.0" cp2y="1.0"/>
151.6980 +                                    <point x="2.0" y="15.0" cp1x="2.0" cp1y="15.0" cp2x="2.0" cp2y="15.0"/>
151.6981 +                                    <point x="14.0" y="15.0" cp1x="14.0" cp1y="15.0" cp2x="14.0" cp2y="15.0"/>
151.6982 +                                    <point x="14.0" y="5.0" cp1x="14.0" cp1y="5.0" cp2x="14.0" cp2y="5.0"/>
151.6983 +                                    <point x="10.0" y="5.0" cp1x="10.0" cp1y="5.0" cp2x="10.0" cp2y="5.0"/>
151.6984 +                                 </points>
151.6985 +                              </path>
151.6986 +                              <path>
151.6987 +                                 <gradient cycleMethod="NO_CYCLE">
151.6988 +                                    <stop position="0.0" midpoint="0.5">
151.6989 +                                       <matte red="236" green="245" blue="253" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.032679737" saturationOffset="-0.043332636" brightnessOffset="0.24705881" alphaOffset="0"/>
151.6990 +                                    </stop>
151.6991 +                                    <stop position="1.0" midpoint="0.5">
151.6992 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.6993 +                                    </stop>
151.6994 +                                 </gradient>
151.6995 +                                 <paintPoints x1="0.04629629629629636" y1="0.9675925925925929" x2="0.48611111111111094" y2="0.5324074074074074"/>
151.6996 +                                 <points>
151.6997 +                                    <point x="10.0" y="1.0" cp1x="10.0" cp1y="1.0" cp2x="10.0" cp2y="1.0"/>
151.6998 +                                    <point x="10.0" y="5.0" cp1x="10.0" cp1y="5.0" cp2x="10.0" cp2y="5.0"/>
151.6999 +                                    <point x="14.0" y="5.0" cp1x="14.0" cp1y="5.0" cp2x="14.0" cp2y="5.0"/>
151.7000 +                                 </points>
151.7001 +                              </path>
151.7002 +                              <rectangle x1="2.0" x2="14.0" y1="15.0" y2="16.0" rounding="0.0">
151.7003 +                                 <matte red="97" green="98" blue="102" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7004 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7005 +                              </rectangle>
151.7006 +                              <path>
151.7007 +                                 <matte red="149" green="151" blue="156" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.065654516" brightnessOffset="-0.13333333" alphaOffset="0"/>
151.7008 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7009 +                                 <points>
151.7010 +                                    <point x="1.0" y="0.0" cp1x="1.0" cp1y="0.0" cp2x="1.0" cp2y="0.0"/>
151.7011 +                                    <point x="1.0" y="16.0" cp1x="1.0" cp1y="16.0" cp2x="1.0" cp2y="16.0"/>
151.7012 +                                    <point x="2.0" y="16.0" cp1x="2.0" cp1y="16.0" cp2x="2.0" cp2y="16.0"/>
151.7013 +                                    <point x="2.0" y="1.0" cp1x="2.0" cp1y="1.0" cp2x="2.0" cp2y="1.0"/>
151.7014 +                                    <point x="10.518518518518523" y="0.9999999999999999" cp1x="10.518518518518523" cp1y="0.9999999999999999" cp2x="10.518518518518523" cp2y="0.9999999999999999"/>
151.7015 +                                    <point x="14.000000000000002" y="4.5" cp1x="14.000000000000002" cp1y="4.5" cp2x="14.000000000000002" cp2y="4.5"/>
151.7016 +                                    <point x="14.0" y="16.0" cp1x="14.0" cp1y="16.0" cp2x="14.0" cp2y="16.0"/>
151.7017 +                                    <point x="15.0" y="16.0" cp1x="15.0" cp1y="16.0" cp2x="15.0" cp2y="16.0"/>
151.7018 +                                    <point x="15.0" y="4.444444444444441" cp1x="15.0" cp1y="4.444444444444441" cp2x="15.0" cp2y="4.444444444444441"/>
151.7019 +                                    <point x="10.722222222222225" y="0.0" cp1x="10.722222222222225" cp1y="0.0" cp2x="10.722222222222225" cp2y="0.0"/>
151.7020 +                                 </points>
151.7021 +                              </path>
151.7022 +                           </shapes>
151.7023 +                           <effects/>
151.7024 +                        </layer>
151.7025 +                     </canvas>
151.7026 +                  </state>
151.7027 +               </backgroundStates>
151.7028 +               <foregroundStates/>
151.7029 +               <borderStates/>
151.7030 +               <regions/>
151.7031 +            </uiIconRegion>
151.7032 +            <uiIconRegion name="directoryIcon" subregion="true" key="directoryIcon">
151.7033 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.7034 +               <style>
151.7035 +                  <textForeground/>
151.7036 +                  <textBackground/>
151.7037 +                  <background/>
151.7038 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.7039 +                  <uiproperties/>
151.7040 +               </style>
151.7041 +               <backgroundStates>
151.7042 +                  <state stateKeys="Enabled">
151.7043 +                     <style>
151.7044 +                        <textForeground/>
151.7045 +                        <textBackground/>
151.7046 +                        <background/>
151.7047 +                        <uiproperties/>
151.7048 +                     </style>
151.7049 +                     <canvas>
151.7050 +                        <size width="16" height="16"/>
151.7051 +                        <nextLayerNameIndex>4</nextLayerNameIndex>
151.7052 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.7053 +                        <layer name="Button">
151.7054 +                           <opacity>1.0</opacity>
151.7055 +                           <fillOpacity>1.0</fillOpacity>
151.7056 +                           <blendingMode>NORMAL</blendingMode>
151.7057 +                           <locked>false</locked>
151.7058 +                           <visible>true</visible>
151.7059 +                           <shapes>
151.7060 +                              <path>
151.7061 +                                 <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7062 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7063 +                                 <points>
151.7064 +                                    <point x="12.0" y="12.0" cp1x="12.0" cp1y="12.0" cp2x="12.0" cp2y="12.0"/>
151.7065 +                                 </points>
151.7066 +                              </path>
151.7067 +                              <path>
151.7068 +                                 <gradient cycleMethod="NO_CYCLE">
151.7069 +                                    <stop position="0.0" midpoint="0.5">
151.7070 +                                       <matte red="100" green="122" blue="143" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0027436614" saturationOffset="-0.335015" brightnessOffset="0.011764705" alphaOffset="0"/>
151.7071 +                                    </stop>
151.7072 +                                    <stop position="0.25449103" midpoint="0.5">
151.7073 +                                       <matte red="111" green="130" blue="148" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0024294257" saturationOffset="-0.3857143" brightnessOffset="0.031372547" alphaOffset="0"/>
151.7074 +                                    </stop>
151.7075 +                                    <stop position="1.0" midpoint="0.5">
151.7076 +                                       <matte red="76" green="91" blue="105" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0018081069" saturationOffset="-0.3595238" brightnessOffset="-0.13725492" alphaOffset="0"/>
151.7077 +                                    </stop>
151.7078 +                                 </gradient>
151.7079 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.7080 +                                 <points>
151.7081 +                                    <point x="13.0" y="5.0" cp1x="13.0" cp1y="5.0" cp2x="13.0" cp2y="5.0"/>
151.7082 +                                    <point x="13.0" y="4.0" cp1x="13.0" cp1y="4.0" cp2x="13.0" cp2y="4.0"/>
151.7083 +                                    <point x="3.7407407407407405" y="3.9999999999999996" cp1x="3.7407407407407405" cp1y="3.9999999999999996" cp2x="3.7407407407407405" cp2y="3.9999999999999996"/>
151.7084 +                                    <point x="2.0185185185185137" y="10.05555555555555" cp1x="2.0185185185185137" cp1y="10.05555555555555" cp2x="2.0185185185185137" cp2y="10.05555555555555"/>
151.7085 +                                    <point x="2.0" y="14.0" cp1x="2.0" cp1y="14.0" cp2x="2.0" cp2y="14.0"/>
151.7086 +                                    <point x="3.0" y="14.0" cp1x="3.0" cp1y="14.0" cp2x="3.0" cp2y="14.0"/>
151.7087 +                                    <point x="2.9629629629629632" y="12.129629629629632" cp1x="2.9629629629629632" cp1y="12.129629629629632" cp2x="2.9629629629629632" cp2y="12.129629629629632"/>
151.7088 +                                    <point x="4.579999999999991" y="4.98" cp1x="4.579999999999991" cp1y="4.98" cp2x="4.579999999999991" cp2y="4.98"/>
151.7089 +                                 </points>
151.7090 +                              </path>
151.7091 +                              <path>
151.7092 +                                 <gradient cycleMethod="NO_CYCLE">
151.7093 +                                    <stop position="0.0" midpoint="0.5">
151.7094 +                                       <matte red="72" green="97" blue="120" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0012094378" saturationOffset="-0.23571429" brightnessOffset="-0.0784314" alphaOffset="0"/>
151.7095 +                                    </stop>
151.7096 +                                    <stop position="1.0" midpoint="0.5">
151.7097 +                                       <matte red="35" green="55" blue="73" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="-0.115166366" brightnessOffset="-0.2627451" alphaOffset="0"/>
151.7098 +                                    </stop>
151.7099 +                                 </gradient>
151.7100 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.7101 +                                 <points>
151.7102 +                                    <point x="16.0" y="4.0" cp1x="16.0" cp1y="4.0" cp2x="16.0" cp2y="4.0"/>
151.7103 +                                    <point x="16.0" y="5.0" cp1x="16.0" cp1y="5.0" cp2x="16.0" cp2y="5.0"/>
151.7104 +                                    <point x="13.0" y="5.0" cp1x="13.0" cp1y="5.0" cp2x="13.0" cp2y="5.0"/>
151.7105 +                                    <point x="13.0" y="3.0" cp1x="13.0" cp1y="3.0" cp2x="13.0" cp2y="3.0"/>
151.7106 +                                    <point x="8.0" y="3.0" cp1x="8.0" cp1y="3.0" cp2x="8.0" cp2y="3.0"/>
151.7107 +                                    <point x="7.0" y="2.0" cp1x="7.0" cp1y="2.0" cp2x="7.0" cp2y="2.0"/>
151.7108 +                                    <point x="7.0" y="1.0" cp1x="7.0" cp1y="1.0" cp2x="7.0" cp2y="1.0"/>
151.7109 +                                    <point x="2.9444444444444438" y="1.0185185185185186" cp1x="2.9444444444444438" cp1y="1.0185185185185186" cp2x="2.9444444444444438" cp2y="1.0185185185185186"/>
151.7110 +                                    <point x="2.9814814814814814" y="1.7407407407407403" cp1x="2.9814814814814814" cp1y="1.7407407407407403" cp2x="2.9814814814814814" cp2y="1.7407407407407403"/>
151.7111 +                                    <point x="1.7407407407407407" y="3.0" cp1x="1.7407407407407407" cp1y="3.0" cp2x="1.7407407407407407" cp2y="3.0"/>
151.7112 +                                    <point x="1.0" y="3.0" cp1x="1.0" cp1y="3.0" cp2x="1.0" cp2y="3.0"/>
151.7113 +                                    <point x="1.0" y="14.0" cp1x="1.0" cp1y="14.0" cp2x="1.0" cp2y="14.0"/>
151.7114 +                                    <point x="14.0" y="14.0" cp1x="14.0" cp1y="14.0" cp2x="14.0" cp2y="14.0"/>
151.7115 +                                    <point x="14.0" y="7.0" cp1x="14.0" cp1y="7.0" cp2x="14.0" cp2y="7.0"/>
151.7116 +                                    <point x="14.87037037037037" y="5.962962962962965" cp1x="14.87037037037037" cp1y="5.962962962962965" cp2x="14.87037037037037" cp2y="5.962962962962965"/>
151.7117 +                                    <point x="15.0" y="5.0" cp1x="15.0" cp1y="5.0" cp2x="15.0" cp2y="5.0"/>
151.7118 +                                    <point x="16.0" y="5.0" cp1x="16.0" cp1y="5.0" cp2x="16.0" cp2y="5.0"/>
151.7119 +                                    <point x="15.462962962962967" y="6.129629629629629" cp1x="15.462962962962967" cp1y="6.129629629629629" cp2x="15.462962962962967" cp2y="6.129629629629629"/>
151.7120 +                                    <point x="15.0" y="7.0" cp1x="15.0" cp1y="7.0" cp2x="15.0" cp2y="7.0"/>
151.7121 +                                    <point x="15.0" y="14.0" cp1x="15.0" cp1y="14.0" cp2x="15.0" cp2y="14.0"/>
151.7122 +                                    <point x="14.0" y="15.0" cp1x="14.0" cp1y="15.0" cp2x="14.0" cp2y="15.0"/>
151.7123 +                                    <point x="1.0" y="15.0" cp1x="1.0" cp1y="15.0" cp2x="1.0" cp2y="15.0"/>
151.7124 +                                    <point x="0.0" y="14.0" cp1x="0.0" cp1y="14.0" cp2x="0.0" cp2y="14.0"/>
151.7125 +                                    <point x="0.0" y="3.25925925925926" cp1x="0.0" cp1y="3.25925925925926" cp2x="0.0" cp2y="3.25925925925926"/>
151.7126 +                                    <point x="3.1851851851851856" y="0.0" cp1x="3.1851851851851856" cp1y="0.0" cp2x="3.1851851851851856" cp2y="0.0"/>
151.7127 +                                    <point x="7.0" y="0.0" cp1x="7.0" cp1y="0.0" cp2x="7.0" cp2y="0.0"/>
151.7128 +                                    <point x="8.55555555555555" y="2.0000000000000004" cp1x="8.55555555555555" cp1y="2.0000000000000004" cp2x="8.55555555555555" cp2y="2.0000000000000004"/>
151.7129 +                                    <point x="13.0" y="2.0" cp1x="13.0" cp1y="2.0" cp2x="13.0" cp2y="2.0"/>
151.7130 +                                    <point x="14.0" y="3.0" cp1x="14.0" cp1y="3.0" cp2x="14.0" cp2y="3.0"/>
151.7131 +                                    <point x="14.0" y="4.0" cp1x="14.0" cp1y="4.0" cp2x="14.0" cp2y="4.0"/>
151.7132 +                                 </points>
151.7133 +                              </path>
151.7134 +                           </shapes>
151.7135 +                           <effects/>
151.7136 +                        </layer>
151.7137 +                        <layer name="Layer 3">
151.7138 +                           <opacity>1.0</opacity>
151.7139 +                           <fillOpacity>1.0</fillOpacity>
151.7140 +                           <blendingMode>NORMAL</blendingMode>
151.7141 +                           <locked>false</locked>
151.7142 +                           <visible>true</visible>
151.7143 +                           <shapes>
151.7144 +                              <rectangle x1="8.0" x2="13.0" y1="3.0" y2="4.0" rounding="0.0">
151.7145 +                                 <matte red="255" green="255" blue="255" alpha="155" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="-100"/>
151.7146 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7147 +                              </rectangle>
151.7148 +                              <rectangle x1="3.0" x2="7.0" y1="1.0" y2="2.0" rounding="0.0">
151.7149 +                                 <matte red="255" green="255" blue="255" alpha="205" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="-50"/>
151.7150 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7151 +                              </rectangle>
151.7152 +                              <rectangle x1="1.0" x2="2.0" y1="3.0" y2="4.0" rounding="0.0">
151.7153 +                                 <matte red="255" green="255" blue="255" alpha="130" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="-125"/>
151.7154 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7155 +                              </rectangle>
151.7156 +                              <path>
151.7157 +                                 <gradient cycleMethod="NO_CYCLE">
151.7158 +                                    <stop position="0.0" midpoint="0.5">
151.7159 +                                       <matte red="202" green="215" blue="229" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0077680945" saturationOffset="-0.51781034" brightnessOffset="0.3490196" alphaOffset="0"/>
151.7160 +                                    </stop>
151.7161 +                                    <stop position="1.0" midpoint="0.5">
151.7162 +                                       <matte red="248" green="250" blue="252" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6198413" brightnessOffset="0.43921566" alphaOffset="0"/>
151.7163 +                                    </stop>
151.7164 +                                 </gradient>
151.7165 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.7166 +                                 <points>
151.7167 +                                    <point x="1.0" y="14.0" cp1x="1.0" cp1y="14.0" cp2x="1.0" cp2y="14.0"/>
151.7168 +                                    <point x="2.0" y="14.0" cp1x="2.0" cp1y="14.0" cp2x="2.0" cp2y="14.0"/>
151.7169 +                                    <point x="2.041666666666667" y="10.187499999999998" cp1x="2.041666666666667" cp1y="10.187499999999998" cp2x="2.041666666666667" cp2y="10.187499999999998"/>
151.7170 +                                    <point x="3.979166666666668" y="4.0" cp1x="3.979166666666668" cp1y="4.0" cp2x="3.979166666666668" cp2y="4.0"/>
151.7171 +                                    <point x="13.0" y="4.0" cp1x="13.0" cp1y="4.0" cp2x="13.0" cp2y="4.0"/>
151.7172 +                                    <point x="13.0" y="3.0" cp1x="13.0" cp1y="3.0" cp2x="13.0" cp2y="3.0"/>
151.7173 +                                    <point x="8.0" y="3.0" cp1x="8.0" cp1y="3.0" cp2x="8.0" cp2y="3.0"/>
151.7174 +                                    <point x="7.0" y="2.0" cp1x="7.0" cp1y="2.0" cp2x="7.0" cp2y="2.0"/>
151.7175 +                                    <point x="7.0" y="1.0" cp1x="7.0" cp1y="1.0" cp2x="7.0" cp2y="1.0"/>
151.7176 +                                    <point x="3.0" y="1.0" cp1x="3.0" cp1y="1.0" cp2x="3.0" cp2y="1.0"/>
151.7177 +                                    <point x="3.0" y="2.0" cp1x="3.0" cp1y="2.0" cp2x="3.0" cp2y="2.0"/>
151.7178 +                                    <point x="2.0" y="3.0" cp1x="2.0" cp1y="3.0" cp2x="2.0" cp2y="3.0"/>
151.7179 +                                    <point x="1.0" y="3.0" cp1x="1.0" cp1y="3.0" cp2x="1.0" cp2y="3.0"/>
151.7180 +                                 </points>
151.7181 +                              </path>
151.7182 +                              <path>
151.7183 +                                 <gradient cycleMethod="NO_CYCLE">
151.7184 +                                    <stop position="0.04191617" midpoint="0.5">
151.7185 +                                       <matte red="178" green="198" blue="216" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="-0.45978838" brightnessOffset="0.2980392" alphaOffset="0"/>
151.7186 +                                    </stop>
151.7187 +                                    <stop position="0.16467066" midpoint="0.5">
151.7188 +                                       <matte red="134" green="162" blue="188" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0015952587" saturationOffset="-0.34848025" brightnessOffset="0.18823528" alphaOffset="0"/>
151.7189 +                                    </stop>
151.7190 +                                    <stop position="0.3263473" midpoint="0.5">
151.7191 +                                       <matte red="111" green="139" blue="165" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0015952587" saturationOffset="-0.30844158" brightnessOffset="0.09803921" alphaOffset="0"/>
151.7192 +                                    </stop>
151.7193 +                                    <stop position="1.0" midpoint="0.5">
151.7194 +                                       <matte red="95" green="123" blue="149" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0015952587" saturationOffset="-0.27329817" brightnessOffset="0.035294116" alphaOffset="0"/>
151.7195 +                                    </stop>
151.7196 +                                 </gradient>
151.7197 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.7198 +                                 <points>
151.7199 +                                    <point x="3.0" y="14.0" cp1x="3.0" cp1y="14.0" cp2x="3.0" cp2y="14.0"/>
151.7200 +                                    <point x="3.0185185185185186" y="10.055555555555559" cp1x="3.0185185185185186" cp1y="10.055555555555559" cp2x="3.0185185185185186" cp2y="10.055555555555559"/>
151.7201 +                                    <point x="4.0" y="5.0" cp1x="4.0" cp1y="5.0" cp2x="4.0" cp2y="5.0"/>
151.7202 +                                    <point x="15.0" y="5.0" cp1x="15.0" cp1y="5.0" cp2x="15.0" cp2y="5.0"/>
151.7203 +                                    <point x="15.0" y="7.0" cp1x="15.0" cp1y="7.0" cp2x="15.0" cp2y="7.0"/>
151.7204 +                                    <point x="14.0" y="14.0" cp1x="14.0" cp1y="14.0" cp2x="14.0" cp2y="14.0"/>
151.7205 +                                 </points>
151.7206 +                              </path>
151.7207 +                              <path>
151.7208 +                                 <matte red="121" green="126" blue="136" alpha="156" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="-0.21" alphaOffset="-99"/>
151.7209 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7210 +                                 <points>
151.7211 +                                    <point x="0.0" y="13.0" cp1x="0.0" cp1y="13.0" cp2x="0.0" cp2y="13.0"/>
151.7212 +                                    <point x="0.0" y="14.0" cp1x="0.0" cp1y="14.0" cp2x="0.0" cp2y="14.0"/>
151.7213 +                                    <point x="1.0" y="16.0" cp1x="1.0" cp1y="16.0" cp2x="1.0" cp2y="16.0"/>
151.7214 +                                    <point x="14.0" y="16.0" cp1x="14.0" cp1y="16.0" cp2x="14.0" cp2y="16.0"/>
151.7215 +                                    <point x="15.0" y="14.0" cp1x="15.0" cp1y="14.0" cp2x="15.0" cp2y="14.0"/>
151.7216 +                                    <point x="15.0" y="13.0" cp1x="15.0" cp1y="13.0" cp2x="15.0" cp2y="13.0"/>
151.7217 +                                 </points>
151.7218 +                              </path>
151.7219 +                           </shapes>
151.7220 +                           <effects/>
151.7221 +                        </layer>
151.7222 +                     </canvas>
151.7223 +                  </state>
151.7224 +               </backgroundStates>
151.7225 +               <foregroundStates/>
151.7226 +               <borderStates/>
151.7227 +               <regions/>
151.7228 +            </uiIconRegion>
151.7229 +            <uiIconRegion name="upFolderIcon" subregion="true" key="upFolderIcon">
151.7230 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.7231 +               <style>
151.7232 +                  <textForeground/>
151.7233 +                  <textBackground/>
151.7234 +                  <background/>
151.7235 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.7236 +                  <uiproperties/>
151.7237 +               </style>
151.7238 +               <backgroundStates>
151.7239 +                  <state stateKeys="Enabled">
151.7240 +                     <style>
151.7241 +                        <textForeground/>
151.7242 +                        <textBackground/>
151.7243 +                        <background/>
151.7244 +                        <uiproperties/>
151.7245 +                     </style>
151.7246 +                     <canvas>
151.7247 +                        <size width="16" height="16"/>
151.7248 +                        <nextLayerNameIndex>12</nextLayerNameIndex>
151.7249 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.7250 +                        <layer name="Icon">
151.7251 +                           <opacity>1.0</opacity>
151.7252 +                           <fillOpacity>1.0</fillOpacity>
151.7253 +                           <blendingMode>NORMAL</blendingMode>
151.7254 +                           <locked>false</locked>
151.7255 +                           <visible>true</visible>
151.7256 +                           <shapes>
151.7257 +                              <path>
151.7258 +                                 <gradient cycleMethod="NO_CYCLE">
151.7259 +                                    <stop position="0.0" midpoint="0.5">
151.7260 +                                       <matte red="154" green="211" blue="255" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.006044388" saturationOffset="-0.23963585" brightnessOffset="0.45098037" alphaOffset="0"/>
151.7261 +                                    </stop>
151.7262 +                                    <stop position="1.0" midpoint="0.5">
151.7263 +                                       <matte red="85" green="175" blue="244" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0063245893" saturationOffset="0.01592505" brightnessOffset="0.4078431" alphaOffset="0"/>
151.7264 +                                    </stop>
151.7265 +                                 </gradient>
151.7266 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.7267 +                                 <points>
151.7268 +                                    <point x="10.0" y="9.0" cp1x="10.0" cp1y="9.0" cp2x="10.0" cp2y="9.0"/>
151.7269 +                                    <point x="10.0" y="5.0" cp1x="10.0" cp1y="5.0" cp2x="10.0" cp2y="5.0"/>
151.7270 +                                    <point x="7.3478260869565215" y="5.0" cp1x="7.3478260869565215" cp1y="5.0" cp2x="7.3478260869565215" cp2y="5.0"/>
151.7271 +                                    <point x="10.978260869565217" y="1.2826086956521732" cp1x="10.978260869565217" cp1y="1.2826086956521732" cp2x="10.978260869565217" cp2y="1.2826086956521732"/>
151.7272 +                                    <point x="14.304347826086948" y="4.999999999999999" cp1x="14.304347826086948" cp1y="4.999999999999999" cp2x="14.304347826086948" cp2y="4.999999999999999"/>
151.7273 +                                    <point x="12.0" y="5.0" cp1x="12.0" cp1y="5.0" cp2x="12.0" cp2y="5.0"/>
151.7274 +                                    <point x="12.0" y="9.0" cp1x="12.0" cp1y="9.0" cp2x="12.0" cp2y="9.0"/>
151.7275 +                                 </points>
151.7276 +                              </path>
151.7277 +                              <path>
151.7278 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="0"/>
151.7279 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.7280 +                                 <points>
151.7281 +                                    <point x="6.630434782608702" y="4.978260869565218" cp1x="6.630434782608702" cp1y="4.978260869565218" cp2x="6.630434782608702" cp2y="4.978260869565218"/>
151.7282 +                                    <point x="10.0" y="5.0" cp1x="10.0" cp1y="5.0" cp2x="10.0" cp2y="5.0"/>
151.7283 +                                    <point x="10.0" y="9.0" cp1x="10.0" cp1y="9.0" cp2x="10.0" cp2y="9.0"/>
151.7284 +                                    <point x="12.0" y="9.0" cp1x="12.0" cp1y="9.0" cp2x="12.0" cp2y="9.0"/>
151.7285 +                                    <point x="12.0" y="5.0" cp1x="12.0" cp1y="5.0" cp2x="12.0" cp2y="5.0"/>
151.7286 +                                    <point x="15.326086956521742" y="5.0" cp1x="15.326086956521742" cp1y="5.0" cp2x="15.326086956521742" cp2y="5.0"/>
151.7287 +                                    <point x="11.0" y="0.6521739130434785" cp1x="11.0" cp1y="0.6521739130434785" cp2x="11.0" cp2y="0.6521739130434785"/>
151.7288 +                                 </points>
151.7289 +                              </path>
151.7290 +                              <path>
151.7291 +                                 <gradient cycleMethod="NO_CYCLE">
151.7292 +                                    <stop position="0.0" midpoint="0.5">
151.7293 +                                       <matte red="0" green="100" blue="177" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0061469674" saturationOffset="0.3642857" brightnessOffset="0.14509803" alphaOffset="0"/>
151.7294 +                                    </stop>
151.7295 +                                    <stop position="1.0" midpoint="0.5">
151.7296 +                                       <matte red="0" green="58" blue="117" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0053939223" saturationOffset="0.3642857" brightnessOffset="-0.0901961" alphaOffset="0"/>
151.7297 +                                    </stop>
151.7298 +                                 </gradient>
151.7299 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.7300 +                                 <points>
151.7301 +                                    <point x="6.0" y="6.0" cp1x="6.0" cp1y="6.0" cp2x="6.0" cp2y="6.0"/>
151.7302 +                                    <point x="6.0" y="4.565217391304342" cp1x="6.0" cp1y="4.565217391304342" cp2x="6.0" cp2y="4.565217391304342"/>
151.7303 +                                    <point x="10.673913043478265" y="0.0" cp1x="10.673913043478265" cp1y="0.0" cp2x="10.673913043478265" cp2y="0.0"/>
151.7304 +                                    <point x="11.304347826086955" y="-8.326672684688674E-17" cp1x="11.304347826086955" cp1y="-8.326672684688674E-17" cp2x="11.304347826086955" cp2y="-8.326672684688674E-17"/>
151.7305 +                                    <point x="15.978260869565217" y="4.565217391304343" cp1x="15.978260869565217" cp1y="4.565217391304343" cp2x="15.978260869565217" cp2y="4.565217391304343"/>
151.7306 +                                    <point x="16.0" y="6.0" cp1x="16.0" cp1y="6.0" cp2x="16.0" cp2y="6.0"/>
151.7307 +                                    <point x="13.0" y="6.0" cp1x="13.0" cp1y="6.0" cp2x="13.0" cp2y="6.0"/>
151.7308 +                                    <point x="13.0" y="9.0" cp1x="13.0" cp1y="9.0" cp2x="13.0" cp2y="9.0"/>
151.7309 +                                    <point x="12.0" y="10.0" cp1x="12.0" cp1y="10.0" cp2x="12.0" cp2y="10.0"/>
151.7310 +                                    <point x="10.0" y="10.0" cp1x="10.0" cp1y="10.0" cp2x="10.0" cp2y="10.0"/>
151.7311 +                                    <point x="9.0" y="9.0" cp1x="9.0" cp1y="9.0" cp2x="9.0" cp2y="9.0"/>
151.7312 +                                    <point x="9.0" y="6.0" cp1x="9.0" cp1y="6.0" cp2x="9.0" cp2y="6.0"/>
151.7313 +                                 </points>
151.7314 +                              </path>
151.7315 +                              <path>
151.7316 +                                 <matte red="120" green="125" blue="135" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="5.847961E-4" brightnessOffset="-0.21568626" alphaOffset="0"/>
151.7317 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7318 +                                 <points>
151.7319 +                                    <point x="6.021739130434783" y="6.521739130434782" cp1x="6.021739130434783" cp1y="6.521739130434782" cp2x="6.021739130434783" cp2y="6.521739130434782"/>
151.7320 +                                    <point x="6.0" y="5.369565217391304" cp1x="6.0" cp1y="5.369565217391304" cp2x="6.0" cp2y="5.369565217391304"/>
151.7321 +                                    <point x="16.0" y="5.58695652173913" cp1x="16.0" cp1y="5.58695652173913" cp2x="16.0" cp2y="5.58695652173913"/>
151.7322 +                                    <point x="14.891304347826086" y="6.499999999999999" cp1x="14.891304347826086" cp1y="6.499999999999999" cp2x="14.891304347826086" cp2y="6.499999999999999"/>
151.7323 +                                    <point x="12.956521739130434" y="6.91304347826087" cp1x="12.956521739130434" cp1y="6.91304347826087" cp2x="12.956521739130434" cp2y="6.91304347826087"/>
151.7324 +                                    <point x="12.91304347826087" y="9.34782608695652" cp1x="12.91304347826087" cp1y="9.34782608695652" cp2x="12.91304347826087" cp2y="9.34782608695652"/>
151.7325 +                                    <point x="11.869565217391303" y="10.608695652173914" cp1x="11.869565217391303" cp1y="10.608695652173914" cp2x="11.869565217391303" cp2y="10.608695652173914"/>
151.7326 +                                    <point x="10.217391304347826" y="10.543478260869566" cp1x="10.217391304347826" cp1y="10.543478260869566" cp2x="10.217391304347826" cp2y="10.543478260869566"/>
151.7327 +                                    <point x="9.26086956521739" y="9.34782608695652" cp1x="9.26086956521739" cp1y="9.34782608695652" cp2x="9.26086956521739" cp2y="9.34782608695652"/>
151.7328 +                                    <point x="9.26086956521739" y="6.869565217391304" cp1x="9.26086956521739" cp1y="6.869565217391304" cp2x="9.26086956521739" cp2y="6.869565217391304"/>
151.7329 +                                 </points>
151.7330 +                              </path>
151.7331 +                              <path>
151.7332 +                                 <gradient cycleMethod="NO_CYCLE">
151.7333 +                                    <stop position="0.0" midpoint="0.5">
151.7334 +                                       <matte red="178" green="198" blue="216" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="-0.45978838" brightnessOffset="0.2980392" alphaOffset="0"/>
151.7335 +                                    </stop>
151.7336 +                                    <stop position="0.13068181" midpoint="0.5">
151.7337 +                                       <matte red="134" green="162" blue="188" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0015952587" saturationOffset="-0.34848025" brightnessOffset="0.18823528" alphaOffset="0"/>
151.7338 +                                    </stop>
151.7339 +                                    <stop position="0.48863637" midpoint="0.5">
151.7340 +                                       <matte red="98" green="126" blue="152" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0015952587" saturationOffset="-0.28045115" brightnessOffset="0.04705882" alphaOffset="0"/>
151.7341 +                                    </stop>
151.7342 +                                    <stop position="1.0" midpoint="0.5">
151.7343 +                                       <matte red="95" green="123" blue="149" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0015952587" saturationOffset="-0.27329817" brightnessOffset="0.035294116" alphaOffset="0"/>
151.7344 +                                    </stop>
151.7345 +                                 </gradient>
151.7346 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.7347 +                                 <points>
151.7348 +                                    <point x="3.0" y="15.0" cp1x="3.0" cp1y="15.0" cp2x="3.0" cp2y="15.0"/>
151.7349 +                                    <point x="3.0" y="11.0" cp1x="3.0" cp1y="11.0" cp2x="3.0" cp2y="11.0"/>
151.7350 +                                    <point x="4.0" y="6.0" cp1x="4.0" cp1y="6.0" cp2x="4.0" cp2y="6.0"/>
151.7351 +                                    <point x="15.0" y="6.0" cp1x="15.0" cp1y="6.0" cp2x="15.0" cp2y="6.0"/>
151.7352 +                                    <point x="14.0" y="11.0" cp1x="14.0" cp1y="11.0" cp2x="14.0" cp2y="11.0"/>
151.7353 +                                    <point x="14.0" y="15.0" cp1x="14.0" cp1y="15.0" cp2x="14.0" cp2y="15.0"/>
151.7354 +                                 </points>
151.7355 +                              </path>
151.7356 +                              <path>
151.7357 +                                 <gradient cycleMethod="NO_CYCLE">
151.7358 +                                    <stop position="0.0" midpoint="0.5">
151.7359 +                                       <matte red="87" green="112" blue="135" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0012094378" saturationOffset="-0.28015873" brightnessOffset="-0.019607842" alphaOffset="0"/>
151.7360 +                                    </stop>
151.7361 +                                    <stop position="1.0" midpoint="0.5">
151.7362 +                                       <matte red="30" green="50" blue="69" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.00254488" saturationOffset="-0.07049692" brightnessOffset="-0.2784314" alphaOffset="0"/>
151.7363 +                                    </stop>
151.7364 +                                 </gradient>
151.7365 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.7366 +                                 <points>
151.7367 +                                    <point x="2.0" y="11.0" cp1x="2.0" cp1y="11.0" cp2x="2.0" cp2y="11.0"/>
151.7368 +                                    <point x="3.0" y="6.0" cp1x="3.0" cp1y="6.0" cp2x="3.0" cp2y="6.0"/>
151.7369 +                                    <point x="4.0" y="5.0" cp1x="4.0" cp1y="5.0" cp2x="4.0" cp2y="5.0"/>
151.7370 +                                    <point x="15.0" y="5.0" cp1x="15.0" cp1y="5.0" cp2x="15.0" cp2y="5.0"/>
151.7371 +                                    <point x="15.0" y="15.0" cp1x="15.0" cp1y="15.0" cp2x="15.0" cp2y="15.0"/>
151.7372 +                                    <point x="13.0" y="16.0" cp1x="13.0" cp1y="16.0" cp2x="13.0" cp2y="16.0"/>
151.7373 +                                    <point x="2.0" y="16.0" cp1x="2.0" cp1y="16.0" cp2x="2.0" cp2y="16.0"/>
151.7374 +                                 </points>
151.7375 +                              </path>
151.7376 +                              <path>
151.7377 +                                 <gradient cycleMethod="NO_CYCLE">
151.7378 +                                    <stop position="0.0" midpoint="0.5">
151.7379 +                                       <matte red="244" green="247" blue="250" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6117143" brightnessOffset="0.43137252" alphaOffset="0"/>
151.7380 +                                    </stop>
151.7381 +                                    <stop position="0.09659091" midpoint="0.5">
151.7382 +                                       <matte red="202" green="215" blue="229" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0077680945" saturationOffset="-0.51781034" brightnessOffset="0.3490196" alphaOffset="0"/>
151.7383 +                                    </stop>
151.7384 +                                    <stop position="1.0" midpoint="0.5">
151.7385 +                                       <matte red="248" green="250" blue="252" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6198413" brightnessOffset="0.43921566" alphaOffset="0"/>
151.7386 +                                    </stop>
151.7387 +                                 </gradient>
151.7388 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.7389 +                                 <points>
151.7390 +                                    <point x="1.0" y="15.0" cp1x="1.0" cp1y="15.0" cp2x="1.0" cp2y="15.0"/>
151.7391 +                                    <point x="1.0" y="4.0" cp1x="1.0" cp1y="4.0" cp2x="1.0" cp2y="4.0"/>
151.7392 +                                    <point x="2.0" y="4.0" cp1x="2.0" cp1y="4.0" cp2x="2.0" cp2y="4.0"/>
151.7393 +                                    <point x="3.0" y="3.0" cp1x="3.0" cp1y="3.0" cp2x="3.0" cp2y="3.0"/>
151.7394 +                                    <point x="3.0" y="2.0" cp1x="3.0" cp1y="2.0" cp2x="3.0" cp2y="2.0"/>
151.7395 +                                    <point x="7.0" y="2.0" cp1x="7.0" cp1y="2.0" cp2x="7.0" cp2y="2.0"/>
151.7396 +                                    <point x="7.0" y="3.0" cp1x="7.0" cp1y="3.0" cp2x="7.0" cp2y="3.0"/>
151.7397 +                                    <point x="8.0" y="3.0" cp1x="8.0" cp1y="3.0" cp2x="8.0" cp2y="3.0"/>
151.7398 +                                    <point x="8.0" y="15.0" cp1x="8.0" cp1y="15.0" cp2x="8.0" cp2y="15.0"/>
151.7399 +                                 </points>
151.7400 +                              </path>
151.7401 +                              <path>
151.7402 +                                 <gradient cycleMethod="NO_CYCLE">
151.7403 +                                    <stop position="0.0" midpoint="0.5">
151.7404 +                                       <matte red="122" green="136" blue="150" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.44904763" brightnessOffset="0.039215684" alphaOffset="0"/>
151.7405 +                                    </stop>
151.7406 +                                    <stop position="0.1278409" midpoint="0.5">
151.7407 +                                       <matte red="109" green="123" blue="136" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0015952587" saturationOffset="-0.43718487" brightnessOffset="-0.015686274" alphaOffset="0"/>
151.7408 +                                    </stop>
151.7409 +                                    <stop position="0.91477275" midpoint="0.5">
151.7410 +                                       <matte red="59" green="69" blue="78" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="-0.39212453" brightnessOffset="-0.24313727" alphaOffset="0"/>
151.7411 +                                    </stop>
151.7412 +                                 </gradient>
151.7413 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.7414 +                                 <points>
151.7415 +                                    <point x="0.0" y="15.0" cp1x="0.0" cp1y="15.0" cp2x="0.0" cp2y="15.0"/>
151.7416 +                                    <point x="1.0" y="16.0" cp1x="1.0" cp1y="16.0" cp2x="1.0" cp2y="16.0"/>
151.7417 +                                    <point x="14.0" y="16.0" cp1x="14.0" cp1y="16.0" cp2x="14.0" cp2y="16.0"/>
151.7418 +                                    <point x="15.0" y="15.0" cp1x="15.0" cp1y="15.0" cp2x="15.0" cp2y="15.0"/>
151.7419 +                                    <point x="15.0" y="10.0" cp1x="15.0" cp1y="10.0" cp2x="15.0" cp2y="10.0"/>
151.7420 +                                    <point x="16.0" y="7.0" cp1x="16.0" cp1y="7.0" cp2x="16.0" cp2y="7.0"/>
151.7421 +                                    <point x="16.0" y="5.0" cp1x="16.0" cp1y="5.0" cp2x="16.0" cp2y="5.0"/>
151.7422 +                                    <point x="8.0" y="5.0" cp1x="8.0" cp1y="5.0" cp2x="8.0" cp2y="5.0"/>
151.7423 +                                    <point x="8.0" y="2.0" cp1x="8.0" cp1y="2.0" cp2x="8.0" cp2y="2.0"/>
151.7424 +                                    <point x="7.0" y="1.0" cp1x="7.0" cp1y="1.0" cp2x="7.0" cp2y="1.0"/>
151.7425 +                                    <point x="3.0" y="1.0" cp1x="3.0" cp1y="1.0" cp2x="3.0" cp2y="1.0"/>
151.7426 +                                    <point x="2.0" y="2.0" cp1x="2.0" cp1y="2.0" cp2x="2.0" cp2y="2.0"/>
151.7427 +                                    <point x="2.0" y="3.0" cp1x="2.0" cp1y="3.0" cp2x="2.0" cp2y="3.0"/>
151.7428 +                                    <point x="1.0" y="3.0" cp1x="1.0" cp1y="3.0" cp2x="1.0" cp2y="3.0"/>
151.7429 +                                    <point x="0.0" y="4.0" cp1x="0.0" cp1y="4.0" cp2x="0.0" cp2y="4.0"/>
151.7430 +                                 </points>
151.7431 +                              </path>
151.7432 +                           </shapes>
151.7433 +                           <effects/>
151.7434 +                        </layer>
151.7435 +                        <templateLayer fileName="11498ffda35.png">
151.7436 +                           <layer name="Template" type="template">
151.7437 +                              <opacity>1.0</opacity>
151.7438 +                              <fillOpacity>1.0</fillOpacity>
151.7439 +                              <blendingMode>NORMAL</blendingMode>
151.7440 +                              <locked>false</locked>
151.7441 +                              <visible>false</visible>
151.7442 +                              <shapes/>
151.7443 +                              <effects/>
151.7444 +                           </layer>
151.7445 +                        </templateLayer>
151.7446 +                     </canvas>
151.7447 +                  </state>
151.7448 +               </backgroundStates>
151.7449 +               <foregroundStates/>
151.7450 +               <borderStates/>
151.7451 +               <regions/>
151.7452 +            </uiIconRegion>
151.7453 +            <uiIconRegion name="newFolderIcon" subregion="true" key="newFolderIcon">
151.7454 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.7455 +               <style>
151.7456 +                  <textForeground/>
151.7457 +                  <textBackground/>
151.7458 +                  <background/>
151.7459 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.7460 +                  <uiproperties/>
151.7461 +               </style>
151.7462 +               <backgroundStates>
151.7463 +                  <state stateKeys="Enabled">
151.7464 +                     <style>
151.7465 +                        <textForeground/>
151.7466 +                        <textBackground/>
151.7467 +                        <background/>
151.7468 +                        <uiproperties/>
151.7469 +                     </style>
151.7470 +                     <canvas>
151.7471 +                        <size width="16" height="16"/>
151.7472 +                        <nextLayerNameIndex>5</nextLayerNameIndex>
151.7473 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.7474 +                        <layer name="Layer 4">
151.7475 +                           <opacity>1.0</opacity>
151.7476 +                           <fillOpacity>1.0</fillOpacity>
151.7477 +                           <blendingMode>NORMAL</blendingMode>
151.7478 +                           <locked>false</locked>
151.7479 +                           <visible>true</visible>
151.7480 +                           <shapes>
151.7481 +                              <path>
151.7482 +                                 <radialGradient cycleMethod="NO_CYCLE">
151.7483 +                                    <stop position="0.11290322" midpoint="0.5">
151.7484 +                                       <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7485 +                                    </stop>
151.7486 +                                    <stop position="0.23548387" midpoint="0.5">
151.7487 +                                       <matte red="252" green="255" blue="92" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7488 +                                    </stop>
151.7489 +                                    <stop position="0.38709676" midpoint="0.5">
151.7490 +                                       <matte red="252" green="255" blue="92" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7491 +                                    </stop>
151.7492 +                                    <stop position="0.57096773" midpoint="0.5">
151.7493 +                                       <matte red="253" green="191" blue="4" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7494 +                                    </stop>
151.7495 +                                 </radialGradient>
151.7496 +                                 <paintPoints x1="0.5" y1="1.0" x2="0.4491017940819012" y2="0.46327683734537634"/>
151.7497 +                                 <points>
151.7498 +                                    <point x="2.9230769230769225" y="3.307692307692308" cp1x="2.9230769230769225" cp1y="3.307692307692308" cp2x="2.9230769230769225" cp2y="3.307692307692308"/>
151.7499 +                                    <point x="3.4423076923076916" y="2.8461538461538463" cp1x="3.4423076923076916" cp1y="2.8461538461538463" cp2x="3.4423076923076916" cp2y="2.8461538461538463"/>
151.7500 +                                    <point x="4.9423076923076925" y="4.038461538461538" cp1x="4.9423076923076925" cp1y="4.038461538461538" cp2x="4.9423076923076925" cp2y="4.038461538461538"/>
151.7501 +                                    <point x="5.211538461538462" y="2.153846153846154" cp1x="5.211538461538462" cp1y="2.153846153846154" cp2x="5.211538461538462" cp2y="2.153846153846154"/>
151.7502 +                                    <point x="5.76923076923077" y="2.1923076923076925" cp1x="5.76923076923077" cp1y="2.1923076923076925" cp2x="5.76923076923077" cp2y="2.1923076923076925"/>
151.7503 +                                    <point x="6.134615384615385" y="4.038461538461538" cp1x="6.134615384615385" cp1y="4.038461538461538" cp2x="6.134615384615385" cp2y="4.038461538461538"/>
151.7504 +                                    <point x="7.403846153846154" y="2.9807692307692313" cp1x="7.403846153846154" cp1y="2.9807692307692313" cp2x="7.403846153846154" cp2y="2.9807692307692313"/>
151.7505 +                                    <point x="7.980769230769231" y="3.5192307692307696" cp1x="7.980769230769231" cp1y="3.5192307692307696" cp2x="7.980769230769231" cp2y="3.5192307692307696"/>
151.7506 +                                    <point x="6.903846153846154" y="4.6923076923076925" cp1x="6.903846153846154" cp1y="4.6923076923076925" cp2x="6.903846153846154" cp2y="4.6923076923076925"/>
151.7507 +                                    <point x="8.750000000000007" y="5.153846153846154" cp1x="8.750000000000007" cp1y="5.153846153846154" cp2x="8.750000000000007" cp2y="5.153846153846154"/>
151.7508 +                                    <point x="8.769230769230775" y="5.8076923076923075" cp1x="8.769230769230775" cp1y="5.8076923076923075" cp2x="8.769230769230775" cp2y="5.8076923076923075"/>
151.7509 +                                    <point x="6.538461538461539" y="6.057692307692308" cp1x="6.538461538461539" cp1y="6.057692307692308" cp2x="6.538461538461539" cp2y="6.057692307692308"/>
151.7510 +                                    <point x="7.826923076923079" y="7.346153846153846" cp1x="7.826923076923079" cp1y="7.346153846153846" cp2x="7.826923076923079" cp2y="7.346153846153846"/>
151.7511 +                                    <point x="7.442307692307692" y="7.884615384615384" cp1x="7.442307692307692" cp1y="7.884615384615384" cp2x="7.442307692307692" cp2y="7.884615384615384"/>
151.7512 +                                    <point x="6.115384615384617" y="6.634615384615385" cp1x="6.115384615384617" cp1y="6.634615384615385" cp2x="6.115384615384617" cp2y="6.634615384615385"/>
151.7513 +                                    <point x="5.884615384615385" y="8.961538461538462" cp1x="5.884615384615385" cp1y="8.961538461538462" cp2x="5.884615384615385" cp2y="8.961538461538462"/>
151.7514 +                                    <point x="5.25" y="8.961538461538462" cp1x="5.25" cp1y="8.961538461538462" cp2x="5.25" cp2y="8.961538461538462"/>
151.7515 +                                    <point x="4.884615384615385" y="6.730769230769231" cp1x="4.884615384615385" cp1y="6.730769230769231" cp2x="4.884615384615385" cp2y="6.730769230769231"/>
151.7516 +                                    <point x="3.461538461538461" y="8.0" cp1x="3.461538461538461" cp1y="8.0" cp2x="3.461538461538461" cp2y="8.0"/>
151.7517 +                                    <point x="3.211538461538461" y="7.269230769230769" cp1x="3.211538461538461" cp1y="7.269230769230769" cp2x="3.211538461538461" cp2y="7.269230769230769"/>
151.7518 +                                    <point x="4.153846153846153" y="6.0576923076923075" cp1x="4.153846153846153" cp1y="6.0576923076923075" cp2x="4.153846153846153" cp2y="6.0576923076923075"/>
151.7519 +                                    <point x="2.3461538461538454" y="5.884615384615385" cp1x="2.3461538461538454" cp1y="5.884615384615385" cp2x="2.3461538461538454" cp2y="5.884615384615385"/>
151.7520 +                                    <point x="2.4038461538461533" y="5.038461538461538" cp1x="2.4038461538461533" cp1y="5.038461538461538" cp2x="2.4038461538461533" cp2y="5.038461538461538"/>
151.7521 +                                    <point x="4.115384615384615" y="4.923076923076923" cp1x="4.115384615384615" cp1y="4.923076923076923" cp2x="4.115384615384615" cp2y="4.923076923076923"/>
151.7522 +                                 </points>
151.7523 +                              </path>
151.7524 +                              <path>
151.7525 +                                 <matte red="255" green="85" blue="10" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.032758567" saturationOffset="-0.018273294" brightnessOffset="0.25098038" alphaOffset="0"/>
151.7526 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7527 +                                 <points>
151.7528 +                                    <point x="1.1730769230769234" y="1.653846153846154" cp1x="1.1730769230769234" cp1y="1.653846153846154" cp2x="1.1730769230769234" cp2y="1.653846153846154"/>
151.7529 +                                    <point x="1.6346153846153852" y="1.0769230769230773" cp1x="1.6346153846153852" cp1y="1.0769230769230773" cp2x="1.6346153846153852" cp2y="1.0769230769230773"/>
151.7530 +                                    <point x="4.826923076923077" y="3.7307692307692313" cp1x="4.826923076923077" cp1y="3.7307692307692313" cp2x="4.826923076923077" cp2y="3.7307692307692313"/>
151.7531 +                                    <point x="5.096153846153847" y="0.09615384615384615" cp1x="5.096153846153847" cp1y="0.09615384615384615" cp2x="5.096153846153847" cp2y="0.09615384615384615"/>
151.7532 +                                    <point x="5.903846153846154" y="0.09615384615384615" cp1x="5.903846153846154" cp1y="0.09615384615384615" cp2x="5.903846153846154" cp2y="0.09615384615384615"/>
151.7533 +                                    <point x="6.365384615384615" y="3.6153846153846154" cp1x="6.365384615384615" cp1y="3.6153846153846154" cp2x="6.365384615384615" cp2y="3.6153846153846154"/>
151.7534 +                                    <point x="9.192307692307693" y="1.0384615384615385" cp1x="9.192307692307693" cp1y="1.0384615384615385" cp2x="9.192307692307693" cp2y="1.0384615384615385"/>
151.7535 +                                    <point x="9.942307692307693" y="1.8846153846153846" cp1x="9.942307692307693" cp1y="1.8846153846153846" cp2x="9.942307692307693" cp2y="1.8846153846153846"/>
151.7536 +                                    <point x="7.326923076923077" y="4.711538461538463" cp1x="7.326923076923077" cp1y="4.711538461538463" cp2x="7.326923076923077" cp2y="4.711538461538463"/>
151.7537 +                                    <point x="10.865384615384613" y="5.153846153846153" cp1x="10.865384615384613" cp1y="5.153846153846153" cp2x="10.865384615384613" cp2y="5.153846153846153"/>
151.7538 +                                    <point x="10.903846153846155" y="5.884615384615384" cp1x="10.903846153846155" cp1y="5.884615384615384" cp2x="10.903846153846155" cp2y="5.884615384615384"/>
151.7539 +                                    <point x="7.4423076923076925" y="6.25" cp1x="7.4423076923076925" cp1y="6.25" cp2x="7.4423076923076925" cp2y="6.25"/>
151.7540 +                                    <point x="9.788461538461547" y="9.384615384615397" cp1x="9.788461538461547" cp1y="9.384615384615397" cp2x="9.788461538461547" cp2y="9.384615384615397"/>
151.7541 +                                    <point x="9.519230769230782" y="9.961538461538474" cp1x="9.519230769230782" cp1y="9.961538461538474" cp2x="9.519230769230782" cp2y="9.961538461538474"/>
151.7542 +                                    <point x="6.3269230769230775" y="7.019230769230769" cp1x="6.3269230769230775" cp1y="7.019230769230769" cp2x="6.3269230769230775" cp2y="7.019230769230769"/>
151.7543 +                                    <point x="5.903846153846154" y="10.903846153846153" cp1x="5.903846153846154" cp1y="10.903846153846153" cp2x="5.903846153846154" cp2y="10.903846153846153"/>
151.7544 +                                    <point x="5.173076923076923" y="10.865384615384615" cp1x="5.173076923076923" cp1y="10.865384615384615" cp2x="5.173076923076923" cp2y="10.865384615384615"/>
151.7545 +                                    <point x="4.76923076923077" y="7.0576923076923075" cp1x="4.76923076923077" cp1y="7.0576923076923075" cp2x="4.76923076923077" cp2y="7.0576923076923075"/>
151.7546 +                                    <point x="1.442307692307693" y="9.807692307692314" cp1x="1.442307692307693" cp1y="9.807692307692314" cp2x="1.442307692307693" cp2y="9.807692307692314"/>
151.7547 +                                    <point x="1.0384615384615392" y="9.423076923076923" cp1x="1.0384615384615392" cp1y="9.423076923076923" cp2x="1.0384615384615392" cp2y="9.423076923076923"/>
151.7548 +                                    <point x="3.75" y="6.038461538461538" cp1x="3.75" cp1y="6.038461538461538" cp2x="3.75" cp2y="6.038461538461538"/>
151.7549 +                                    <point x="0.05769230769230782" y="5.980769230769231" cp1x="0.05769230769230782" cp1y="5.980769230769231" cp2x="0.05769230769230782" cp2y="5.980769230769231"/>
151.7550 +                                    <point x="0.07692307692307698" y="5.134615384615384" cp1x="0.07692307692307698" cp1y="5.134615384615384" cp2x="0.07692307692307698" cp2y="5.134615384615384"/>
151.7551 +                                    <point x="3.980769230769231" y="4.711538461538461" cp1x="3.980769230769231" cp1y="4.711538461538461" cp2x="3.980769230769231" cp2y="4.711538461538461"/>
151.7552 +                                 </points>
151.7553 +                              </path>
151.7554 +                              <path>
151.7555 +                                 <matte red="255" green="255" blue="255" alpha="85" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-170"/>
151.7556 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7557 +                                 <points>
151.7558 +                                    <point x="1.1346153846153861" y="0.30769230769230765" cp1x="1.1346153846153861" cp1y="0.30769230769230765" cp2x="1.1346153846153861" cp2y="0.30769230769230765"/>
151.7559 +                                    <point x="3.769230769230771" y="1.8846153846153846" cp1x="3.769230769230771" cp1y="1.8846153846153846" cp2x="3.769230769230771" cp2y="1.8846153846153846"/>
151.7560 +                                    <point x="4.596153846153848" y="0.09615384615384615" cp1x="4.596153846153848" cp1y="0.09615384615384615" cp2x="4.596153846153848" cp2y="0.09615384615384615"/>
151.7561 +                                    <point x="6.519230769230771" y="2.0384615384615388" cp1x="6.519230769230771" cp1y="2.0384615384615388" cp2x="6.519230769230771" cp2y="2.0384615384615388"/>
151.7562 +                                    <point x="9.269230769230756" y="0.6923076923076925" cp1x="9.269230769230756" cp1y="0.6923076923076925" cp2x="9.269230769230756" cp2y="0.6923076923076925"/>
151.7563 +                                    <point x="9.15384615384614" y="4.25" cp1x="9.15384615384614" cp1y="4.25" cp2x="9.15384615384614" cp2y="4.25"/>
151.7564 +                                    <point x="11.846153846153834" y="4.5576923076923075" cp1x="11.846153846153834" cp1y="4.5576923076923075" cp2x="11.846153846153834" cp2y="4.5576923076923075"/>
151.7565 +                                    <point x="9.71153846153845" y="7.0" cp1x="9.71153846153845" cp1y="7.0" cp2x="9.71153846153845" cp2y="7.0"/>
151.7566 +                                    <point x="10.499999999999988" y="10.807692307692308" cp1x="10.499999999999988" cp1y="10.807692307692308" cp2x="10.499999999999988" cp2y="10.807692307692308"/>
151.7567 +                                    <point x="7.2115384615384635" y="9.980769230769232" cp1x="7.2115384615384635" cp1y="9.980769230769232" cp2x="7.2115384615384635" cp2y="9.980769230769232"/>
151.7568 +                                    <point x="5.78846153846154" y="12.057692307692308" cp1x="5.78846153846154" cp1y="12.057692307692308" cp2x="5.78846153846154" cp2y="12.057692307692308"/>
151.7569 +                                    <point x="3.153846153846155" y="9.923076923076923" cp1x="3.153846153846155" cp1y="9.923076923076923" cp2x="3.153846153846155" cp2y="9.923076923076923"/>
151.7570 +                                    <point x="1.1346153846153861" y="10.557692307692308" cp1x="1.1346153846153861" cp1y="10.557692307692308" cp2x="1.1346153846153861" cp2y="10.557692307692308"/>
151.7571 +                                    <point x="1.5576923076923088" y="7.923076923076923" cp1x="1.5576923076923088" cp1y="7.923076923076923" cp2x="1.5576923076923088" cp2y="7.923076923076923"/>
151.7572 +                                    <point x="0.0" y="5.923076923076923" cp1x="0.0" cp1y="5.923076923076923" cp2x="0.0" cp2y="5.923076923076923"/>
151.7573 +                                    <point x="1.9230769230769242" y="3.403846153846154" cp1x="1.9230769230769242" cp1y="3.403846153846154" cp2x="1.9230769230769242" cp2y="3.403846153846154"/>
151.7574 +                                 </points>
151.7575 +                              </path>
151.7576 +                           </shapes>
151.7577 +                           <effects/>
151.7578 +                        </layer>
151.7579 +                        <layer name="Button">
151.7580 +                           <opacity>1.0</opacity>
151.7581 +                           <fillOpacity>1.0</fillOpacity>
151.7582 +                           <blendingMode>NORMAL</blendingMode>
151.7583 +                           <locked>false</locked>
151.7584 +                           <visible>true</visible>
151.7585 +                           <shapes>
151.7586 +                              <path>
151.7587 +                                 <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7588 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7589 +                                 <points>
151.7590 +                                    <point x="12.0" y="12.0" cp1x="12.0" cp1y="12.0" cp2x="12.0" cp2y="12.0"/>
151.7591 +                                 </points>
151.7592 +                              </path>
151.7593 +                              <path>
151.7594 +                                 <gradient cycleMethod="NO_CYCLE">
151.7595 +                                    <stop position="0.0" midpoint="0.5">
151.7596 +                                       <matte red="100" green="122" blue="143" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0027436614" saturationOffset="-0.335015" brightnessOffset="0.011764705" alphaOffset="0"/>
151.7597 +                                    </stop>
151.7598 +                                    <stop position="0.25449103" midpoint="0.5">
151.7599 +                                       <matte red="111" green="130" blue="148" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0024294257" saturationOffset="-0.3857143" brightnessOffset="0.031372547" alphaOffset="0"/>
151.7600 +                                    </stop>
151.7601 +                                    <stop position="1.0" midpoint="0.5">
151.7602 +                                       <matte red="76" green="91" blue="105" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0018081069" saturationOffset="-0.3595238" brightnessOffset="-0.13725492" alphaOffset="0"/>
151.7603 +                                    </stop>
151.7604 +                                 </gradient>
151.7605 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.7606 +                                 <points>
151.7607 +                                    <point x="13.0" y="5.0" cp1x="13.0" cp1y="5.0" cp2x="13.0" cp2y="5.0"/>
151.7608 +                                    <point x="13.0" y="4.0" cp1x="13.0" cp1y="4.0" cp2x="13.0" cp2y="4.0"/>
151.7609 +                                    <point x="3.7407407407407405" y="3.9999999999999996" cp1x="3.7407407407407405" cp1y="3.9999999999999996" cp2x="3.7407407407407405" cp2y="3.9999999999999996"/>
151.7610 +                                    <point x="2.0185185185185137" y="10.05555555555555" cp1x="2.0185185185185137" cp1y="10.05555555555555" cp2x="2.0185185185185137" cp2y="10.05555555555555"/>
151.7611 +                                    <point x="2.0" y="14.0" cp1x="2.0" cp1y="14.0" cp2x="2.0" cp2y="14.0"/>
151.7612 +                                    <point x="3.0" y="14.0" cp1x="3.0" cp1y="14.0" cp2x="3.0" cp2y="14.0"/>
151.7613 +                                    <point x="2.9629629629629632" y="12.129629629629632" cp1x="2.9629629629629632" cp1y="12.129629629629632" cp2x="2.9629629629629632" cp2y="12.129629629629632"/>
151.7614 +                                    <point x="4.579999999999991" y="4.98" cp1x="4.579999999999991" cp1y="4.98" cp2x="4.579999999999991" cp2y="4.98"/>
151.7615 +                                 </points>
151.7616 +                              </path>
151.7617 +                              <path>
151.7618 +                                 <gradient cycleMethod="NO_CYCLE">
151.7619 +                                    <stop position="0.0" midpoint="0.5">
151.7620 +                                       <matte red="72" green="97" blue="120" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0012094378" saturationOffset="-0.23571429" brightnessOffset="-0.0784314" alphaOffset="0"/>
151.7621 +                                    </stop>
151.7622 +                                    <stop position="1.0" midpoint="0.5">
151.7623 +                                       <matte red="35" green="55" blue="73" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="-0.115166366" brightnessOffset="-0.2627451" alphaOffset="0"/>
151.7624 +                                    </stop>
151.7625 +                                 </gradient>
151.7626 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.7627 +                                 <points>
151.7628 +                                    <point x="16.0" y="4.0" cp1x="16.0" cp1y="4.0" cp2x="16.0" cp2y="4.0"/>
151.7629 +                                    <point x="16.0" y="5.0" cp1x="16.0" cp1y="5.0" cp2x="16.0" cp2y="5.0"/>
151.7630 +                                    <point x="13.0" y="5.0" cp1x="13.0" cp1y="5.0" cp2x="13.0" cp2y="5.0"/>
151.7631 +                                    <point x="13.0" y="3.0" cp1x="13.0" cp1y="3.0" cp2x="13.0" cp2y="3.0"/>
151.7632 +                                    <point x="8.0" y="3.0" cp1x="8.0" cp1y="3.0" cp2x="8.0" cp2y="3.0"/>
151.7633 +                                    <point x="7.0" y="2.0" cp1x="7.0" cp1y="2.0" cp2x="7.0" cp2y="2.0"/>
151.7634 +                                    <point x="7.0" y="1.0" cp1x="7.0" cp1y="1.0" cp2x="7.0" cp2y="1.0"/>
151.7635 +                                    <point x="2.9444444444444438" y="1.0185185185185186" cp1x="2.9444444444444438" cp1y="1.0185185185185186" cp2x="2.9444444444444438" cp2y="1.0185185185185186"/>
151.7636 +                                    <point x="2.9814814814814814" y="1.7407407407407403" cp1x="2.9814814814814814" cp1y="1.7407407407407403" cp2x="2.9814814814814814" cp2y="1.7407407407407403"/>
151.7637 +                                    <point x="1.7407407407407407" y="3.0" cp1x="1.7407407407407407" cp1y="3.0" cp2x="1.7407407407407407" cp2y="3.0"/>
151.7638 +                                    <point x="1.0" y="3.0" cp1x="1.0" cp1y="3.0" cp2x="1.0" cp2y="3.0"/>
151.7639 +                                    <point x="1.0" y="14.0" cp1x="1.0" cp1y="14.0" cp2x="1.0" cp2y="14.0"/>
151.7640 +                                    <point x="14.0" y="14.0" cp1x="14.0" cp1y="14.0" cp2x="14.0" cp2y="14.0"/>
151.7641 +                                    <point x="14.0" y="7.0" cp1x="14.0" cp1y="7.0" cp2x="14.0" cp2y="7.0"/>
151.7642 +                                    <point x="14.87037037037037" y="5.962962962962965" cp1x="14.87037037037037" cp1y="5.962962962962965" cp2x="14.87037037037037" cp2y="5.962962962962965"/>
151.7643 +                                    <point x="15.0" y="5.0" cp1x="15.0" cp1y="5.0" cp2x="15.0" cp2y="5.0"/>
151.7644 +                                    <point x="16.0" y="5.0" cp1x="16.0" cp1y="5.0" cp2x="16.0" cp2y="5.0"/>
151.7645 +                                    <point x="15.462962962962967" y="6.129629629629629" cp1x="15.462962962962967" cp1y="6.129629629629629" cp2x="15.462962962962967" cp2y="6.129629629629629"/>
151.7646 +                                    <point x="15.0" y="7.0" cp1x="15.0" cp1y="7.0" cp2x="15.0" cp2y="7.0"/>
151.7647 +                                    <point x="15.0" y="14.0" cp1x="15.0" cp1y="14.0" cp2x="15.0" cp2y="14.0"/>
151.7648 +                                    <point x="14.0" y="15.0" cp1x="14.0" cp1y="15.0" cp2x="14.0" cp2y="15.0"/>
151.7649 +                                    <point x="1.0" y="15.0" cp1x="1.0" cp1y="15.0" cp2x="1.0" cp2y="15.0"/>
151.7650 +                                    <point x="0.0" y="14.0" cp1x="0.0" cp1y="14.0" cp2x="0.0" cp2y="14.0"/>
151.7651 +                                    <point x="0.0" y="3.25925925925926" cp1x="0.0" cp1y="3.25925925925926" cp2x="0.0" cp2y="3.25925925925926"/>
151.7652 +                                    <point x="3.1851851851851856" y="0.0" cp1x="3.1851851851851856" cp1y="0.0" cp2x="3.1851851851851856" cp2y="0.0"/>
151.7653 +                                    <point x="7.0" y="0.0" cp1x="7.0" cp1y="0.0" cp2x="7.0" cp2y="0.0"/>
151.7654 +                                    <point x="8.55555555555555" y="2.0000000000000004" cp1x="8.55555555555555" cp1y="2.0000000000000004" cp2x="8.55555555555555" cp2y="2.0000000000000004"/>
151.7655 +                                    <point x="13.0" y="2.0" cp1x="13.0" cp1y="2.0" cp2x="13.0" cp2y="2.0"/>
151.7656 +                                    <point x="14.0" y="3.0" cp1x="14.0" cp1y="3.0" cp2x="14.0" cp2y="3.0"/>
151.7657 +                                    <point x="14.0" y="4.0" cp1x="14.0" cp1y="4.0" cp2x="14.0" cp2y="4.0"/>
151.7658 +                                 </points>
151.7659 +                              </path>
151.7660 +                           </shapes>
151.7661 +                           <effects/>
151.7662 +                        </layer>
151.7663 +                        <layer name="Layer 3">
151.7664 +                           <opacity>1.0</opacity>
151.7665 +                           <fillOpacity>1.0</fillOpacity>
151.7666 +                           <blendingMode>NORMAL</blendingMode>
151.7667 +                           <locked>false</locked>
151.7668 +                           <visible>true</visible>
151.7669 +                           <shapes>
151.7670 +                              <rectangle x1="8.0" x2="13.0" y1="3.0" y2="4.0" rounding="0.0">
151.7671 +                                 <matte red="255" green="255" blue="255" alpha="155" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="-100"/>
151.7672 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7673 +                              </rectangle>
151.7674 +                              <rectangle x1="3.0" x2="7.0" y1="1.0" y2="2.0" rounding="0.0">
151.7675 +                                 <matte red="255" green="255" blue="255" alpha="205" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="-50"/>
151.7676 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7677 +                              </rectangle>
151.7678 +                              <rectangle x1="1.0" x2="2.0" y1="3.0" y2="4.0" rounding="0.0">
151.7679 +                                 <matte red="255" green="255" blue="255" alpha="130" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="-125"/>
151.7680 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7681 +                              </rectangle>
151.7682 +                              <path>
151.7683 +                                 <gradient cycleMethod="NO_CYCLE">
151.7684 +                                    <stop position="0.0" midpoint="0.5">
151.7685 +                                       <matte red="202" green="215" blue="229" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0077680945" saturationOffset="-0.51781034" brightnessOffset="0.3490196" alphaOffset="0"/>
151.7686 +                                    </stop>
151.7687 +                                    <stop position="1.0" midpoint="0.5">
151.7688 +                                       <matte red="248" green="250" blue="252" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6198413" brightnessOffset="0.43921566" alphaOffset="0"/>
151.7689 +                                    </stop>
151.7690 +                                 </gradient>
151.7691 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.7692 +                                 <points>
151.7693 +                                    <point x="1.0" y="14.0" cp1x="1.0" cp1y="14.0" cp2x="1.0" cp2y="14.0"/>
151.7694 +                                    <point x="2.0" y="14.0" cp1x="2.0" cp1y="14.0" cp2x="2.0" cp2y="14.0"/>
151.7695 +                                    <point x="2.041666666666667" y="10.187499999999998" cp1x="2.041666666666667" cp1y="10.187499999999998" cp2x="2.041666666666667" cp2y="10.187499999999998"/>
151.7696 +                                    <point x="3.979166666666668" y="4.0" cp1x="3.979166666666668" cp1y="4.0" cp2x="3.979166666666668" cp2y="4.0"/>
151.7697 +                                    <point x="13.0" y="4.0" cp1x="13.0" cp1y="4.0" cp2x="13.0" cp2y="4.0"/>
151.7698 +                                    <point x="13.0" y="3.0" cp1x="13.0" cp1y="3.0" cp2x="13.0" cp2y="3.0"/>
151.7699 +                                    <point x="8.0" y="3.0" cp1x="8.0" cp1y="3.0" cp2x="8.0" cp2y="3.0"/>
151.7700 +                                    <point x="7.0" y="2.0" cp1x="7.0" cp1y="2.0" cp2x="7.0" cp2y="2.0"/>
151.7701 +                                    <point x="7.0" y="1.0" cp1x="7.0" cp1y="1.0" cp2x="7.0" cp2y="1.0"/>
151.7702 +                                    <point x="3.0" y="1.0" cp1x="3.0" cp1y="1.0" cp2x="3.0" cp2y="1.0"/>
151.7703 +                                    <point x="3.0" y="2.0" cp1x="3.0" cp1y="2.0" cp2x="3.0" cp2y="2.0"/>
151.7704 +                                    <point x="2.0" y="3.0" cp1x="2.0" cp1y="3.0" cp2x="2.0" cp2y="3.0"/>
151.7705 +                                    <point x="1.0" y="3.0" cp1x="1.0" cp1y="3.0" cp2x="1.0" cp2y="3.0"/>
151.7706 +                                 </points>
151.7707 +                              </path>
151.7708 +                              <path>
151.7709 +                                 <gradient cycleMethod="NO_CYCLE">
151.7710 +                                    <stop position="0.04191617" midpoint="0.5">
151.7711 +                                       <matte red="178" green="198" blue="216" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="-0.45978838" brightnessOffset="0.2980392" alphaOffset="0"/>
151.7712 +                                    </stop>
151.7713 +                                    <stop position="0.16467066" midpoint="0.5">
151.7714 +                                       <matte red="134" green="162" blue="188" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0015952587" saturationOffset="-0.34848025" brightnessOffset="0.18823528" alphaOffset="0"/>
151.7715 +                                    </stop>
151.7716 +                                    <stop position="0.3263473" midpoint="0.5">
151.7717 +                                       <matte red="111" green="139" blue="165" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0015952587" saturationOffset="-0.30844158" brightnessOffset="0.09803921" alphaOffset="0"/>
151.7718 +                                    </stop>
151.7719 +                                    <stop position="1.0" midpoint="0.5">
151.7720 +                                       <matte red="95" green="123" blue="149" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0015952587" saturationOffset="-0.27329817" brightnessOffset="0.035294116" alphaOffset="0"/>
151.7721 +                                    </stop>
151.7722 +                                 </gradient>
151.7723 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.7724 +                                 <points>
151.7725 +                                    <point x="3.0" y="14.0" cp1x="3.0" cp1y="14.0" cp2x="3.0" cp2y="14.0"/>
151.7726 +                                    <point x="3.0185185185185186" y="10.055555555555559" cp1x="3.0185185185185186" cp1y="10.055555555555559" cp2x="3.0185185185185186" cp2y="10.055555555555559"/>
151.7727 +                                    <point x="4.0" y="5.0" cp1x="4.0" cp1y="5.0" cp2x="4.0" cp2y="5.0"/>
151.7728 +                                    <point x="15.0" y="5.0" cp1x="15.0" cp1y="5.0" cp2x="15.0" cp2y="5.0"/>
151.7729 +                                    <point x="15.0" y="7.0" cp1x="15.0" cp1y="7.0" cp2x="15.0" cp2y="7.0"/>
151.7730 +                                    <point x="14.0" y="14.0" cp1x="14.0" cp1y="14.0" cp2x="14.0" cp2y="14.0"/>
151.7731 +                                 </points>
151.7732 +                              </path>
151.7733 +                              <path>
151.7734 +                                 <matte red="121" green="126" blue="136" alpha="156" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="-0.21" alphaOffset="-99"/>
151.7735 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7736 +                                 <points>
151.7737 +                                    <point x="0.0" y="13.0" cp1x="0.0" cp1y="13.0" cp2x="0.0" cp2y="13.0"/>
151.7738 +                                    <point x="0.0" y="14.0" cp1x="0.0" cp1y="14.0" cp2x="0.0" cp2y="14.0"/>
151.7739 +                                    <point x="1.0" y="16.0" cp1x="1.0" cp1y="16.0" cp2x="1.0" cp2y="16.0"/>
151.7740 +                                    <point x="14.0" y="16.0" cp1x="14.0" cp1y="16.0" cp2x="14.0" cp2y="16.0"/>
151.7741 +                                    <point x="15.0" y="14.0" cp1x="15.0" cp1y="14.0" cp2x="15.0" cp2y="14.0"/>
151.7742 +                                    <point x="15.0" y="13.0" cp1x="15.0" cp1y="13.0" cp2x="15.0" cp2y="13.0"/>
151.7743 +                                 </points>
151.7744 +                              </path>
151.7745 +                           </shapes>
151.7746 +                           <effects/>
151.7747 +                        </layer>
151.7748 +                        <templateLayer fileName="1140f3e73ba.png">
151.7749 +                           <layer name="Template" type="template">
151.7750 +                              <opacity>1.0</opacity>
151.7751 +                              <fillOpacity>1.0</fillOpacity>
151.7752 +                              <blendingMode>NORMAL</blendingMode>
151.7753 +                              <locked>false</locked>
151.7754 +                              <visible>false</visible>
151.7755 +                              <shapes/>
151.7756 +                              <effects/>
151.7757 +                           </layer>
151.7758 +                        </templateLayer>
151.7759 +                     </canvas>
151.7760 +                  </state>
151.7761 +               </backgroundStates>
151.7762 +               <foregroundStates/>
151.7763 +               <borderStates/>
151.7764 +               <regions/>
151.7765 +            </uiIconRegion>
151.7766 +            <uiIconRegion name="computerIcon" subregion="true" key="computerIcon">
151.7767 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.7768 +               <style>
151.7769 +                  <textForeground/>
151.7770 +                  <textBackground/>
151.7771 +                  <background/>
151.7772 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.7773 +                  <uiproperties/>
151.7774 +               </style>
151.7775 +               <backgroundStates>
151.7776 +                  <state stateKeys="Enabled">
151.7777 +                     <style>
151.7778 +                        <textForeground/>
151.7779 +                        <textBackground/>
151.7780 +                        <background/>
151.7781 +                        <uiproperties/>
151.7782 +                     </style>
151.7783 +                     <canvas>
151.7784 +                        <size width="16" height="16"/>
151.7785 +                        <nextLayerNameIndex>4</nextLayerNameIndex>
151.7786 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.7787 +                        <layer name="Button">
151.7788 +                           <opacity>1.0</opacity>
151.7789 +                           <fillOpacity>1.0</fillOpacity>
151.7790 +                           <blendingMode>NORMAL</blendingMode>
151.7791 +                           <locked>false</locked>
151.7792 +                           <visible>true</visible>
151.7793 +                           <shapes/>
151.7794 +                           <effects/>
151.7795 +                        </layer>
151.7796 +                     </canvas>
151.7797 +                  </state>
151.7798 +               </backgroundStates>
151.7799 +               <foregroundStates/>
151.7800 +               <borderStates/>
151.7801 +               <regions/>
151.7802 +            </uiIconRegion>
151.7803 +            <uiIconRegion name="hardDriveIcon" subregion="true" key="hardDriveIcon">
151.7804 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.7805 +               <style>
151.7806 +                  <textForeground/>
151.7807 +                  <textBackground/>
151.7808 +                  <background/>
151.7809 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.7810 +                  <uiproperties/>
151.7811 +               </style>
151.7812 +               <backgroundStates>
151.7813 +                  <state stateKeys="Enabled">
151.7814 +                     <style>
151.7815 +                        <textForeground/>
151.7816 +                        <textBackground/>
151.7817 +                        <background/>
151.7818 +                        <uiproperties/>
151.7819 +                     </style>
151.7820 +                     <canvas>
151.7821 +                        <size width="16" height="16"/>
151.7822 +                        <nextLayerNameIndex>6</nextLayerNameIndex>
151.7823 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.7824 +                        <layer name="Layer 5">
151.7825 +                           <opacity>1.0</opacity>
151.7826 +                           <fillOpacity>1.0</fillOpacity>
151.7827 +                           <blendingMode>NORMAL</blendingMode>
151.7828 +                           <locked>false</locked>
151.7829 +                           <visible>true</visible>
151.7830 +                           <shapes>
151.7831 +                              <rectangle x1="8.0" x2="9.0" y1="12.0" y2="14.0" rounding="0.0">
151.7832 +                                 <matte red="59" green="62" blue="66" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7833 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7834 +                              </rectangle>
151.7835 +                              <rectangle x1="6.0" x2="7.0" y1="12.0" y2="14.0" rounding="0.0">
151.7836 +                                 <matte red="59" green="62" blue="66" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7837 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7838 +                              </rectangle>
151.7839 +                              <rectangle x1="4.0" x2="5.0" y1="12.0" y2="14.0" rounding="0.0">
151.7840 +                                 <matte red="59" green="62" blue="66" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7841 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7842 +                              </rectangle>
151.7843 +                              <ellipse x1="3.0" x2="4.0" y1="5.0" y2="6.0">
151.7844 +                                 <matte red="152" green="155" blue="158" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7845 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7846 +                              </ellipse>
151.7847 +                              <ellipse x1="3.0" x2="4.0" y1="9.0" y2="10.0">
151.7848 +                                 <matte red="152" green="155" blue="158" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7849 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7850 +                              </ellipse>
151.7851 +                              <ellipse x1="12.0" x2="13.0" y1="9.0" y2="10.0">
151.7852 +                                 <matte red="152" green="155" blue="158" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7853 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7854 +                              </ellipse>
151.7855 +                              <ellipse x1="12.0" x2="13.0" y1="5.0" y2="6.0">
151.7856 +                                 <matte red="170" green="172" blue="175" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7857 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7858 +                              </ellipse>
151.7859 +                              <ellipse x1="12.0" x2="13.0" y1="1.0" y2="2.0">
151.7860 +                                 <matte red="191" green="193" blue="194" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7861 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7862 +                              </ellipse>
151.7863 +                              <ellipse x1="3.0" x2="4.0" y1="1.0" y2="2.0">
151.7864 +                                 <matte red="191" green="193" blue="194" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7865 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7866 +                              </ellipse>
151.7867 +                           </shapes>
151.7868 +                           <effects/>
151.7869 +                        </layer>
151.7870 +                        <layer name="Layer 4">
151.7871 +                           <opacity>1.0</opacity>
151.7872 +                           <fillOpacity>1.0</fillOpacity>
151.7873 +                           <blendingMode>NORMAL</blendingMode>
151.7874 +                           <locked>false</locked>
151.7875 +                           <visible>true</visible>
151.7876 +                           <shapes>
151.7877 +                              <path>
151.7878 +                                 <gradient cycleMethod="NO_CYCLE">
151.7879 +                                    <stop position="0.0" midpoint="0.5">
151.7880 +                                       <matte red="243" green="245" blue="246" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7881 +                                    </stop>
151.7882 +                                    <stop position="0.7967742" midpoint="0.5">
151.7883 +                                       <matte red="208" green="212" blue="216" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7884 +                                    </stop>
151.7885 +                                    <stop position="1.0" midpoint="0.5">
151.7886 +                                       <matte red="243" green="245" blue="246" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7887 +                                    </stop>
151.7888 +                                 </gradient>
151.7889 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.7890 +                                 <points>
151.7891 +                                    <point x="5.0" y="2.0" cp1x="4.0" cp1y="3.0" cp2x="6.0" cp2y="1.0"/>
151.7892 +                                    <point x="11.0" y="2.0" cp1x="10.0" cp1y="1.0" cp2x="12.0" cp2y="3.0"/>
151.7893 +                                    <point x="12.0" y="5.0" cp1x="12.0" cp1y="4.0" cp2x="12.0" cp2y="6.0"/>
151.7894 +                                    <point x="12.0" y="8.0" cp1x="12.0" cp1y="6.0" cp2x="12.0" cp2y="10.0"/>
151.7895 +                                    <point x="9.0" y="10.0" cp1x="10.0" cp1y="10.0" cp2x="8.0" cp2y="10.0"/>
151.7896 +                                    <point x="7.0" y="10.0" cp1x="8.0" cp1y="10.0" cp2x="6.0" cp2y="10.0"/>
151.7897 +                                    <point x="4.0" y="8.0" cp1x="4.0" cp1y="10.0" cp2x="4.0" cp2y="6.0"/>
151.7898 +                                    <point x="4.0" y="5.0" cp1x="4.0" cp1y="6.0" cp2x="4.0" cp2y="4.0"/>
151.7899 +                                 </points>
151.7900 +                              </path>
151.7901 +                           </shapes>
151.7902 +                           <effects>
151.7903 +                              <dropShadow blendingMode="NORMAL" opacity="0.4" angle="135" distance="0" spread="0" size="4">
151.7904 +                                 <matte red="0" green="0" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7905 +                              </dropShadow>
151.7906 +                              <innerShadow blendingMode="NORMAL" opacity="0.51" angle="291" distance="3" spread="0" size="2">
151.7907 +                                 <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7908 +                              </innerShadow>
151.7909 +                           </effects>
151.7910 +                        </layer>
151.7911 +                        <layer name="Button">
151.7912 +                           <opacity>1.0</opacity>
151.7913 +                           <fillOpacity>1.0</fillOpacity>
151.7914 +                           <blendingMode>NORMAL</blendingMode>
151.7915 +                           <locked>false</locked>
151.7916 +                           <visible>true</visible>
151.7917 +                           <shapes>
151.7918 +                              <ellipse x1="3.0" x2="4.0" y1="13.0" y2="14.0">
151.7919 +                                 <matte red="144" green="255" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7920 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7921 +                              </ellipse>
151.7922 +                              <rectangle x1="10.0" x2="13.0" y1="15.0" y2="16.0" rounding="0.0">
151.7923 +                                 <matte red="56" green="51" blue="25" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7924 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7925 +                              </rectangle>
151.7926 +                              <rectangle x1="3.0" x2="9.0" y1="15.0" y2="16.0" rounding="0.0">
151.7927 +                                 <matte red="56" green="51" blue="25" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7928 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7929 +                              </rectangle>
151.7930 +                              <path>
151.7931 +                                 <gradient cycleMethod="NO_CYCLE">
151.7932 +                                    <stop position="0.0" midpoint="0.5">
151.7933 +                                       <matte red="105" green="110" blue="118" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7934 +                                    </stop>
151.7935 +                                    <stop position="1.0" midpoint="0.5">
151.7936 +                                       <matte red="63" green="67" blue="72" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7937 +                                    </stop>
151.7938 +                                 </gradient>
151.7939 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.7940 +                                 <points>
151.7941 +                                    <point x="2.0" y="12.0" cp1x="2.0" cp1y="12.0" cp2x="2.0" cp2y="12.0"/>
151.7942 +                                    <point x="2.0" y="15.0" cp1x="2.0" cp1y="15.0" cp2x="2.0" cp2y="15.0"/>
151.7943 +                                    <point x="3.0" y="15.0" cp1x="3.0" cp1y="15.0" cp2x="3.0" cp2y="15.0"/>
151.7944 +                                    <point x="3.0" y="14.0" cp1x="3.0" cp1y="14.0" cp2x="3.0" cp2y="14.0"/>
151.7945 +                                    <point x="13.0" y="14.0" cp1x="13.0" cp1y="14.0" cp2x="13.0" cp2y="14.0"/>
151.7946 +                                    <point x="13.0" y="15.0" cp1x="13.0" cp1y="15.0" cp2x="13.0" cp2y="15.0"/>
151.7947 +                                    <point x="14.0" y="15.0" cp1x="14.0" cp1y="15.0" cp2x="14.0" cp2y="15.0"/>
151.7948 +                                    <point x="14.0" y="12.0" cp1x="14.0" cp1y="12.0" cp2x="14.0" cp2y="12.0"/>
151.7949 +                                 </points>
151.7950 +                              </path>
151.7951 +                              <rectangle x1="2.0" x2="14.0" y1="1.0" y2="12.0" rounding="0.0">
151.7952 +                                 <gradient cycleMethod="NO_CYCLE">
151.7953 +                                    <stop position="0.0" midpoint="0.5">
151.7954 +                                       <matte red="239" green="241" blue="243" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7955 +                                    </stop>
151.7956 +                                    <stop position="1.0" midpoint="0.5">
151.7957 +                                       <matte red="197" green="201" blue="205" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7958 +                                    </stop>
151.7959 +                                 </gradient>
151.7960 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.7961 +                              </rectangle>
151.7962 +                              <rectangle x1="1.0" x2="15.0" y1="12.0" y2="16.0" rounding="0.0">
151.7963 +                                 <matte red="0" green="0" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7964 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7965 +                              </rectangle>
151.7966 +                              <rectangle x1="1.0" x2="15.0" y1="0.0" y2="12.0" rounding="0.0">
151.7967 +                                 <matte red="160" green="161" blue="163" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.7968 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.7969 +                              </rectangle>
151.7970 +                           </shapes>
151.7971 +                           <effects/>
151.7972 +                        </layer>
151.7973 +                        <templateLayer fileName="1140f48945c.png">
151.7974 +                           <layer name="Template" type="template">
151.7975 +                              <opacity>1.0</opacity>
151.7976 +                              <fillOpacity>1.0</fillOpacity>
151.7977 +                              <blendingMode>NORMAL</blendingMode>
151.7978 +                              <locked>false</locked>
151.7979 +                              <visible>true</visible>
151.7980 +                              <shapes/>
151.7981 +                              <effects/>
151.7982 +                           </layer>
151.7983 +                        </templateLayer>
151.7984 +                     </canvas>
151.7985 +                  </state>
151.7986 +               </backgroundStates>
151.7987 +               <foregroundStates/>
151.7988 +               <borderStates/>
151.7989 +               <regions/>
151.7990 +            </uiIconRegion>
151.7991 +            <uiIconRegion name="floppyDriveIcon" subregion="true" key="floppyDriveIcon">
151.7992 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.7993 +               <style>
151.7994 +                  <textForeground/>
151.7995 +                  <textBackground/>
151.7996 +                  <background/>
151.7997 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.7998 +                  <uiproperties/>
151.7999 +               </style>
151.8000 +               <backgroundStates>
151.8001 +                  <state stateKeys="Enabled">
151.8002 +                     <style>
151.8003 +                        <textForeground/>
151.8004 +                        <textBackground/>
151.8005 +                        <background/>
151.8006 +                        <uiproperties/>
151.8007 +                     </style>
151.8008 +                     <canvas>
151.8009 +                        <size width="16" height="16"/>
151.8010 +                        <nextLayerNameIndex>4</nextLayerNameIndex>
151.8011 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.8012 +                        <layer name="Button">
151.8013 +                           <opacity>1.0</opacity>
151.8014 +                           <fillOpacity>1.0</fillOpacity>
151.8015 +                           <blendingMode>NORMAL</blendingMode>
151.8016 +                           <locked>false</locked>
151.8017 +                           <visible>true</visible>
151.8018 +                           <shapes>
151.8019 +                              <rectangle x1="13.0" x2="14.0" y1="13.0" y2="14.0" rounding="0.0">
151.8020 +                                 <matte red="0" green="0" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8021 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8022 +                              </rectangle>
151.8023 +                              <rectangle x1="2.0" x2="3.0" y1="13.0" y2="14.0" rounding="0.0">
151.8024 +                                 <matte red="54" green="78" blue="122" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8025 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8026 +                              </rectangle>
151.8027 +                              <rectangle x1="12.884615384615381" x2="14.192307692307693" y1="12.903846153846153" y2="14.423076923076929" rounding="0.0">
151.8028 +                                 <matte red="231" green="234" blue="237" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8029 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8030 +                              </rectangle>
151.8031 +                              <rectangle x1="1.807692307692308" x2="3.1730769230769234" y1="12.78846153846154" y2="14.403846153846157" rounding="0.0">
151.8032 +                                 <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8033 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8034 +                              </rectangle>
151.8035 +                              <rectangle x1="4.0" x2="12.0" y1="14.0" y2="15.0" rounding="0.0">
151.8036 +                                 <matte red="255" green="122" blue="101" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8037 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8038 +                              </rectangle>
151.8039 +                              <path>
151.8040 +                                 <matte red="149" green="153" blue="156" alpha="54" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8041 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8042 +                                 <points>
151.8043 +                                    <point x="4.0" y="1.0" cp1x="4.0" cp1y="1.0" cp2x="4.0" cp2y="1.0"/>
151.8044 +                                    <point x="5.0" y="1.0" cp1x="5.0" cp1y="1.0" cp2x="5.0" cp2y="1.0"/>
151.8045 +                                    <point x="5.0" y="5.0" cp1x="5.0" cp1y="5.0" cp2x="5.0" cp2y="5.0"/>
151.8046 +                                    <point x="7.0" y="5.0" cp1x="7.0" cp1y="5.0" cp2x="7.0" cp2y="5.0"/>
151.8047 +                                    <point x="7.0" y="1.0" cp1x="7.0" cp1y="1.0" cp2x="7.0" cp2y="1.0"/>
151.8048 +                                    <point x="8.0" y="1.0" cp1x="8.0" cp1y="1.0" cp2x="8.0" cp2y="1.0"/>
151.8049 +                                    <point x="8.0" y="5.0" cp1x="8.0" cp1y="5.0" cp2x="8.0" cp2y="5.0"/>
151.8050 +                                    <point x="9.0" y="5.0" cp1x="9.0" cp1y="5.0" cp2x="9.0" cp2y="5.0"/>
151.8051 +                                    <point x="9.0" y="6.0" cp1x="9.0" cp1y="6.0" cp2x="9.0" cp2y="6.0"/>
151.8052 +                                    <point x="4.0" y="6.0" cp1x="4.0" cp1y="6.0" cp2x="4.0" cp2y="6.0"/>
151.8053 +                                 </points>
151.8054 +                              </path>
151.8055 +                              <path>
151.8056 +                                 <gradient cycleMethod="NO_CYCLE">
151.8057 +                                    <stop position="0.0" midpoint="0.5">
151.8058 +                                       <matte red="231" green="234" blue="237" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8059 +                                    </stop>
151.8060 +                                    <stop position="1.0" midpoint="0.5">
151.8061 +                                       <matte red="231" green="234" blue="237" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8062 +                                    </stop>
151.8063 +                                    <stop position="1.0" midpoint="0.5">
151.8064 +                                       <matte red="205" green="211" blue="215" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8065 +                                    </stop>
151.8066 +                                 </gradient>
151.8067 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.8068 +                                 <points>
151.8069 +                                    <point x="6.0" y="1.0" cp1x="6.0" cp1y="1.0" cp2x="6.0" cp2y="1.0"/>
151.8070 +                                    <point x="6.0" y="6.0" cp1x="6.0" cp1y="6.0" cp2x="6.0" cp2y="6.0"/>
151.8071 +                                    <point x="12.0" y="6.0" cp1x="12.0" cp1y="6.0" cp2x="12.0" cp2y="6.0"/>
151.8072 +                                    <point x="12.0" y="2.0" cp1x="12.0" cp1y="2.0" cp2x="12.0" cp2y="2.0"/>
151.8073 +                                    <point x="11.0" y="2.0" cp1x="11.0" cp1y="2.0" cp2x="11.0" cp2y="2.0"/>
151.8074 +                                    <point x="11.0" y="5.0" cp1x="11.0" cp1y="5.0" cp2x="11.0" cp2y="5.0"/>
151.8075 +                                    <point x="9.0" y="5.0" cp1x="9.0" cp1y="5.0" cp2x="9.0" cp2y="5.0"/>
151.8076 +                                    <point x="9.0" y="2.0" cp1x="9.0" cp1y="2.0" cp2x="9.0" cp2y="2.0"/>
151.8077 +                                    <point x="12.0" y="2.0" cp1x="12.0" cp1y="2.0" cp2x="12.0" cp2y="2.0"/>
151.8078 +                                    <point x="12.0" y="1.0" cp1x="12.0" cp1y="1.0" cp2x="12.0" cp2y="1.0"/>
151.8079 +                                 </points>
151.8080 +                              </path>
151.8081 +                              <path>
151.8082 +                                 <gradient cycleMethod="NO_CYCLE">
151.8083 +                                    <stop position="0.058064517" midpoint="0.5">
151.8084 +                                       <matte red="224" green="224" blue="224" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8085 +                                    </stop>
151.8086 +                                    <stop position="0.12258065" midpoint="0.5">
151.8087 +                                       <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8088 +                                    </stop>
151.8089 +                                    <stop position="0.19032258" midpoint="0.5">
151.8090 +                                       <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8091 +                                    </stop>
151.8092 +                                    <stop position="0.26451612" midpoint="0.5">
151.8093 +                                       <matte red="224" green="224" blue="224" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8094 +                                    </stop>
151.8095 +                                    <stop position="0.36129034" midpoint="0.5">
151.8096 +                                       <matte red="224" green="224" blue="224" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8097 +                                    </stop>
151.8098 +                                    <stop position="0.4032258" midpoint="0.5">
151.8099 +                                       <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8100 +                                    </stop>
151.8101 +                                    <stop position="0.516129" midpoint="0.5">
151.8102 +                                       <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8103 +                                    </stop>
151.8104 +                                    <stop position="0.56774193" midpoint="0.5">
151.8105 +                                       <matte red="232" green="232" blue="232" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8106 +                                    </stop>
151.8107 +                                    <stop position="0.66129035" midpoint="0.5">
151.8108 +                                       <matte red="232" green="232" blue="232" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8109 +                                    </stop>
151.8110 +                                    <stop position="0.7516129" midpoint="0.5">
151.8111 +                                       <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8112 +                                    </stop>
151.8113 +                                 </gradient>
151.8114 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.8115 +                                 <points>
151.8116 +                                    <point x="4.0" y="9.0" cp1x="4.0" cp1y="9.0" cp2x="4.0" cp2y="9.0"/>
151.8117 +                                    <point x="5.0" y="8.0" cp1x="5.0" cp1y="8.0" cp2x="5.0" cp2y="8.0"/>
151.8118 +                                    <point x="11.0" y="8.0" cp1x="11.0" cp1y="8.0" cp2x="11.0" cp2y="8.0"/>
151.8119 +                                    <point x="12.0" y="9.0" cp1x="12.0" cp1y="9.0" cp2x="12.0" cp2y="9.0"/>
151.8120 +                                    <point x="12.0" y="14.0" cp1x="12.0" cp1y="14.0" cp2x="12.0" cp2y="14.0"/>
151.8121 +                                    <point x="4.0" y="14.0" cp1x="4.0" cp1y="14.0" cp2x="4.0" cp2y="14.0"/>
151.8122 +                                 </points>
151.8123 +                              </path>
151.8124 +                              <path>
151.8125 +                                 <gradient cycleMethod="NO_CYCLE">
151.8126 +                                    <stop position="0.0" midpoint="0.5">
151.8127 +                                       <matte red="164" green="179" blue="206" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8128 +                                    </stop>
151.8129 +                                    <stop position="0.1" midpoint="0.5">
151.8130 +                                       <matte red="97" green="123" blue="170" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8131 +                                    </stop>
151.8132 +                                    <stop position="0.28387097" midpoint="0.5">
151.8133 +                                       <matte red="53" green="86" blue="146" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8134 +                                    </stop>
151.8135 +                                    <stop position="0.7580645" midpoint="0.5">
151.8136 +                                       <matte red="48" green="82" blue="144" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8137 +                                    </stop>
151.8138 +                                    <stop position="1.0" midpoint="0.5">
151.8139 +                                       <matte red="71" green="99" blue="150" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8140 +                                    </stop>
151.8141 +                                 </gradient>
151.8142 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.8143 +                                 <points>
151.8144 +                                    <point x="1.0" y="2.0" cp1x="1.0" cp1y="2.0" cp2x="1.0" cp2y="2.0"/>
151.8145 +                                    <point x="2.0" y="1.0" cp1x="2.0" cp1y="1.0" cp2x="2.0" cp2y="1.0"/>
151.8146 +                                    <point x="13.0" y="1.0" cp1x="13.0" cp1y="1.0" cp2x="13.0" cp2y="1.0"/>
151.8147 +                                    <point x="15.0" y="3.0" cp1x="15.0" cp1y="3.0" cp2x="15.0" cp2y="3.0"/>
151.8148 +                                    <point x="15.0" y="15.0" cp1x="15.0" cp1y="15.0" cp2x="15.0" cp2y="15.0"/>
151.8149 +                                    <point x="1.0" y="15.0" cp1x="1.0" cp1y="15.0" cp2x="1.0" cp2y="15.0"/>
151.8150 +                                 </points>
151.8151 +                              </path>
151.8152 +                              <path>
151.8153 +                                 <gradient cycleMethod="NO_CYCLE">
151.8154 +                                    <stop position="0.0" midpoint="0.5">
151.8155 +                                       <matte red="46" green="46" blue="46" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8156 +                                    </stop>
151.8157 +                                    <stop position="0.12258065" midpoint="0.5">
151.8158 +                                       <matte red="64" green="64" blue="64" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8159 +                                    </stop>
151.8160 +                                    <stop position="0.88064516" midpoint="0.5">
151.8161 +                                       <matte red="43" green="43" blue="43" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8162 +                                    </stop>
151.8163 +                                    <stop position="1.0" midpoint="0.5">
151.8164 +                                       <matte red="0" green="0" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8165 +                                    </stop>
151.8166 +                                 </gradient>
151.8167 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.8168 +                                 <points>
151.8169 +                                    <point x="0.0" y="1.0" cp1x="0.0" cp1y="1.0" cp2x="0.0" cp2y="1.0"/>
151.8170 +                                    <point x="1.0" y="0.0" cp1x="1.0" cp1y="0.0" cp2x="1.0" cp2y="0.0"/>
151.8171 +                                    <point x="14.0" y="0.0" cp1x="14.0" cp1y="0.0" cp2x="14.0" cp2y="0.0"/>
151.8172 +                                    <point x="16.0" y="2.0" cp1x="16.0" cp1y="2.0" cp2x="16.0" cp2y="2.0"/>
151.8173 +                                    <point x="16.0" y="15.0" cp1x="16.0" cp1y="15.0" cp2x="16.0" cp2y="15.0"/>
151.8174 +                                    <point x="15.0" y="16.0" cp1x="15.0" cp1y="16.0" cp2x="15.0" cp2y="16.0"/>
151.8175 +                                    <point x="1.0" y="16.0" cp1x="1.0" cp1y="16.0" cp2x="1.0" cp2y="16.0"/>
151.8176 +                                    <point x="0.0" y="15.0" cp1x="0.0" cp1y="15.0" cp2x="0.0" cp2y="15.0"/>
151.8177 +                                 </points>
151.8178 +                              </path>
151.8179 +                           </shapes>
151.8180 +                           <effects/>
151.8181 +                        </layer>
151.8182 +                        <templateLayer fileName="1140f577f59.png">
151.8183 +                           <layer name="Template" type="template">
151.8184 +                              <opacity>1.0</opacity>
151.8185 +                              <fillOpacity>1.0</fillOpacity>
151.8186 +                              <blendingMode>NORMAL</blendingMode>
151.8187 +                              <locked>false</locked>
151.8188 +                              <visible>false</visible>
151.8189 +                              <shapes/>
151.8190 +                              <effects/>
151.8191 +                           </layer>
151.8192 +                        </templateLayer>
151.8193 +                     </canvas>
151.8194 +                  </state>
151.8195 +               </backgroundStates>
151.8196 +               <foregroundStates/>
151.8197 +               <borderStates/>
151.8198 +               <regions/>
151.8199 +            </uiIconRegion>
151.8200 +            <uiIconRegion name="homeFolderIcon" subregion="true" key="homeFolderIcon">
151.8201 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.8202 +               <style>
151.8203 +                  <textForeground/>
151.8204 +                  <textBackground/>
151.8205 +                  <background/>
151.8206 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.8207 +                  <uiproperties/>
151.8208 +               </style>
151.8209 +               <backgroundStates>
151.8210 +                  <state stateKeys="Enabled">
151.8211 +                     <style>
151.8212 +                        <textForeground/>
151.8213 +                        <textBackground/>
151.8214 +                        <background/>
151.8215 +                        <uiproperties/>
151.8216 +                     </style>
151.8217 +                     <canvas>
151.8218 +                        <size width="16" height="16"/>
151.8219 +                        <nextLayerNameIndex>5</nextLayerNameIndex>
151.8220 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.8221 +                        <layer name="Button">
151.8222 +                           <opacity>1.0</opacity>
151.8223 +                           <fillOpacity>1.0</fillOpacity>
151.8224 +                           <blendingMode>NORMAL</blendingMode>
151.8225 +                           <locked>false</locked>
151.8226 +                           <visible>true</visible>
151.8227 +                           <shapes>
151.8228 +                              <path>
151.8229 +                                 <gradient cycleMethod="NO_CYCLE">
151.8230 +                                    <stop position="0.0" midpoint="0.5">
151.8231 +                                       <matte red="160" green="161" blue="162" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8232 +                                    </stop>
151.8233 +                                    <stop position="1.0" midpoint="0.5">
151.8234 +                                       <matte red="221" green="225" blue="230" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8235 +                                    </stop>
151.8236 +                                 </gradient>
151.8237 +                                 <paintPoints x1="0.630769230769231" y1="0.36217948717948706" x2="0.28846153846153844" y2="0.7339743589743591"/>
151.8238 +                                 <points>
151.8239 +                                    <point x="9.0" y="3.0" cp1x="9.0" cp1y="3.0" cp2x="9.0" cp2y="3.0"/>
151.8240 +                                    <point x="8.0" y="3.0" cp1x="8.0" cp1y="3.0" cp2x="8.0" cp2y="3.0"/>
151.8241 +                                    <point x="8.0" y="6.0" cp1x="8.0" cp1y="6.0" cp2x="8.0" cp2y="6.0"/>
151.8242 +                                    <point x="11.0" y="9.0" cp1x="11.0" cp1y="9.0" cp2x="11.0" cp2y="9.0"/>
151.8243 +                                    <point x="13.0" y="9.0" cp1x="13.0" cp1y="9.0" cp2x="13.0" cp2y="9.0"/>
151.8244 +                                    <point x="13.0" y="7.0" cp1x="13.0" cp1y="7.0" cp2x="13.0" cp2y="7.0"/>
151.8245 +                                 </points>
151.8246 +                              </path>
151.8247 +                              <path>
151.8248 +                                 <gradient cycleMethod="NO_CYCLE">
151.8249 +                                    <stop position="0.0" midpoint="0.5">
151.8250 +                                       <matte red="160" green="161" blue="162" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8251 +                                    </stop>
151.8252 +                                    <stop position="1.0" midpoint="0.5">
151.8253 +                                       <matte red="226" green="230" blue="233" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8254 +                                    </stop>
151.8255 +                                 </gradient>
151.8256 +                                 <paintPoints x1="0.4307692307692308" y1="0.3782051282051281" x2="0.7076923076923081" y2="0.6730769230769232"/>
151.8257 +                                 <points>
151.8258 +                                    <point x="3.0" y="8.0" cp1x="3.0" cp1y="8.0" cp2x="3.0" cp2y="8.0"/>
151.8259 +                                    <point x="7.0" y="3.0" cp1x="7.0" cp1y="3.0" cp2x="7.0" cp2y="3.0"/>
151.8260 +                                    <point x="8.0" y="3.0" cp1x="8.0" cp1y="3.0" cp2x="8.0" cp2y="3.0"/>
151.8261 +                                    <point x="8.0" y="6.0" cp1x="8.0" cp1y="6.0" cp2x="8.0" cp2y="6.0"/>
151.8262 +                                    <point x="5.0" y="9.0" cp1x="5.0" cp1y="9.0" cp2x="5.0" cp2y="9.0"/>
151.8263 +                                    <point x="3.0" y="9.0" cp1x="3.0" cp1y="9.0" cp2x="3.0" cp2y="9.0"/>
151.8264 +                                 </points>
151.8265 +                              </path>
151.8266 +                              <path>
151.8267 +                                 <matte red="244" green="222" blue="143" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8268 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8269 +                                 <points>
151.8270 +                                    <point x="1.2884615384615383" y="7.23076923076923" cp1x="1.2884615384615383" cp1y="7.23076923076923" cp2x="1.2884615384615383" cp2y="7.23076923076923"/>
151.8271 +                                    <point x="1.0" y="8.0" cp1x="1.0" cp1y="8.0" cp2x="1.0" cp2y="8.0"/>
151.8272 +                                    <point x="1.6153846153846154" y="7.8269230769230775" cp1x="1.6153846153846154" cp1y="7.8269230769230775" cp2x="1.6153846153846154" cp2y="7.8269230769230775"/>
151.8273 +                                    <point x="7.403846153846156" y="2.019230769230769" cp1x="7.403846153846156" cp1y="2.019230769230769" cp2x="7.403846153846156" cp2y="2.019230769230769"/>
151.8274 +                                    <point x="8.557692307692301" y="2.0" cp1x="8.557692307692301" cp1y="2.0" cp2x="8.557692307692301" cp2y="2.0"/>
151.8275 +                                    <point x="14.30769230769231" y="7.76923076923077" cp1x="14.30769230769231" cp1y="7.76923076923077" cp2x="14.30769230769231" cp2y="7.76923076923077"/>
151.8276 +                                    <point x="15.0" y="8.0" cp1x="15.0" cp1y="8.0" cp2x="15.0" cp2y="8.0"/>
151.8277 +                                    <point x="14.730769230769223" y="7.192307692307692" cp1x="14.730769230769223" cp1y="7.192307692307692" cp2x="14.730769230769223" cp2y="7.192307692307692"/>
151.8278 +                                    <point x="8.65384615384615" y="0.9807692307692306" cp1x="8.65384615384615" cp1y="0.9807692307692306" cp2x="8.65384615384615" cp2y="0.9807692307692306"/>
151.8279 +                                    <point x="7.442307692307691" y="1.0" cp1x="7.442307692307691" cp1y="1.0" cp2x="7.442307692307691" cp2y="1.0"/>
151.8280 +                                 </points>
151.8281 +                              </path>
151.8282 +                              <path>
151.8283 +                                 <gradient cycleMethod="NO_CYCLE">
151.8284 +                                    <stop position="0.0" midpoint="0.5">
151.8285 +                                       <matte red="114" green="92" blue="13" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8286 +                                    </stop>
151.8287 +                                    <stop position="1.0" midpoint="0.5">
151.8288 +                                       <matte red="64" green="48" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8289 +                                    </stop>
151.8290 +                                 </gradient>
151.8291 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.8292 +                                 <points>
151.8293 +                                    <point x="0.0" y="7.0" cp1x="0.0" cp1y="7.0" cp2x="0.0" cp2y="7.0"/>
151.8294 +                                    <point x="0.0" y="9.0" cp1x="0.0" cp1y="9.0" cp2x="0.0" cp2y="9.0"/>
151.8295 +                                    <point x="2.0" y="9.0" cp1x="2.0" cp1y="9.0" cp2x="2.0" cp2y="9.0"/>
151.8296 +                                    <point x="7.384615384615392" y="2.9999999999999987" cp1x="7.384615384615392" cp1y="2.9999999999999987" cp2x="7.384615384615392" cp2y="2.9999999999999987"/>
151.8297 +                                    <point x="8.576923076923077" y="3.0" cp1x="8.576923076923077" cp1y="3.0" cp2x="8.576923076923077" cp2y="3.0"/>
151.8298 +                                    <point x="14.0" y="9.0" cp1x="14.0" cp1y="9.0" cp2x="14.0" cp2y="9.0"/>
151.8299 +                                    <point x="16.0" y="9.0" cp1x="16.0" cp1y="9.0" cp2x="16.0" cp2y="9.0"/>
151.8300 +                                    <point x="16.0" y="7.0" cp1x="16.0" cp1y="7.0" cp2x="16.0" cp2y="7.0"/>
151.8301 +                                    <point x="9.0" y="0.0" cp1x="9.0" cp1y="0.0" cp2x="9.0" cp2y="0.0"/>
151.8302 +                                    <point x="7.0" y="0.0" cp1x="7.0" cp1y="0.0" cp2x="7.0" cp2y="0.0"/>
151.8303 +                                 </points>
151.8304 +                              </path>
151.8305 +                           </shapes>
151.8306 +                           <effects/>
151.8307 +                        </layer>
151.8308 +                        <layer name="Layer 4">
151.8309 +                           <opacity>1.0</opacity>
151.8310 +                           <fillOpacity>1.0</fillOpacity>
151.8311 +                           <blendingMode>NORMAL</blendingMode>
151.8312 +                           <locked>false</locked>
151.8313 +                           <visible>true</visible>
151.8314 +                           <shapes>
151.8315 +                              <rectangle x1="6.0" x2="7.0" y1="10.0" y2="14.0" rounding="0.0">
151.8316 +                                 <gradient cycleMethod="NO_CYCLE">
151.8317 +                                    <stop position="0.0" midpoint="0.5">
151.8318 +                                       <matte red="137" green="115" blue="60" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8319 +                                    </stop>
151.8320 +                                    <stop position="1.0" midpoint="0.5">
151.8321 +                                       <matte red="174" green="151" blue="91" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8322 +                                    </stop>
151.8323 +                                 </gradient>
151.8324 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.8325 +                              </rectangle>
151.8326 +                              <path>
151.8327 +                                 <gradient cycleMethod="NO_CYCLE">
151.8328 +                                    <stop position="0.0" midpoint="0.5">
151.8329 +                                       <matte red="81" green="59" blue="7" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8330 +                                    </stop>
151.8331 +                                    <stop position="1.0" midpoint="0.5">
151.8332 +                                       <matte red="97" green="74" blue="18" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8333 +                                    </stop>
151.8334 +                                 </gradient>
151.8335 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.8336 +                                 <points>
151.8337 +                                    <point x="5.0" y="15.0" cp1x="5.0" cp1y="15.0" cp2x="5.0" cp2y="15.0"/>
151.8338 +                                    <point x="8.0" y="15.0" cp1x="8.0" cp1y="15.0" cp2x="8.0" cp2y="15.0"/>
151.8339 +                                    <point x="8.0" y="10.0" cp1x="8.0" cp1y="10.0" cp2x="8.0" cp2y="10.0"/>
151.8340 +                                    <point x="7.0" y="9.0" cp1x="7.0" cp1y="9.0" cp2x="7.0" cp2y="9.0"/>
151.8341 +                                    <point x="6.0" y="9.0" cp1x="6.0" cp1y="9.0" cp2x="6.0" cp2y="9.0"/>
151.8342 +                                    <point x="5.0" y="10.0" cp1x="5.0" cp1y="10.0" cp2x="5.0" cp2y="10.0"/>
151.8343 +                                 </points>
151.8344 +                              </path>
151.8345 +                              <rectangle x1="10.0" x2="11.0" y1="10.0" y2="11.0" rounding="0.0">
151.8346 +                                 <matte red="77" green="133" blue="185" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8347 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8348 +                              </rectangle>
151.8349 +                              <rectangle x1="9.0" x2="12.0" y1="9.0" y2="12.0" rounding="0.0">
151.8350 +                                 <gradient cycleMethod="NO_CYCLE">
151.8351 +                                    <stop position="0.0" midpoint="0.5">
151.8352 +                                       <matte red="27" green="57" blue="87" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8353 +                                    </stop>
151.8354 +                                    <stop position="1.0" midpoint="0.5">
151.8355 +                                       <matte red="75" green="109" blue="137" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8356 +                                    </stop>
151.8357 +                                 </gradient>
151.8358 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.8359 +                              </rectangle>
151.8360 +                              <path>
151.8361 +                                 <matte red="228" green="232" blue="237" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8362 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8363 +                                 <points>
151.8364 +                                    <point x="3.0" y="8.0" cp1x="3.0" cp1y="8.0" cp2x="3.0" cp2y="8.0"/>
151.8365 +                                    <point x="3.0" y="14.0" cp1x="3.0" cp1y="14.0" cp2x="3.0" cp2y="14.0"/>
151.8366 +                                    <point x="13.0" y="14.0" cp1x="13.0" cp1y="14.0" cp2x="13.0" cp2y="14.0"/>
151.8367 +                                    <point x="13.0" y="8.0" cp1x="13.0" cp1y="8.0" cp2x="13.0" cp2y="8.0"/>
151.8368 +                                    <point x="8.0" y="4.0" cp1x="8.0" cp1y="4.0" cp2x="8.0" cp2y="4.0"/>
151.8369 +                                 </points>
151.8370 +                              </path>
151.8371 +                              <path>
151.8372 +                                 <matte red="51" green="60" blue="70" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8373 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8374 +                                 <points>
151.8375 +                                    <point x="2.0" y="8.0" cp1x="2.0" cp1y="8.0" cp2x="2.0" cp2y="8.0"/>
151.8376 +                                    <point x="2.0" y="14.0" cp1x="2.0" cp1y="14.0" cp2x="2.0" cp2y="14.0"/>
151.8377 +                                    <point x="3.0" y="15.0" cp1x="3.0" cp1y="15.0" cp2x="3.0" cp2y="15.0"/>
151.8378 +                                    <point x="13.0" y="15.0" cp1x="13.0" cp1y="15.0" cp2x="13.0" cp2y="15.0"/>
151.8379 +                                    <point x="14.0" y="14.0" cp1x="14.0" cp1y="14.0" cp2x="14.0" cp2y="14.0"/>
151.8380 +                                    <point x="14.0" y="8.0" cp1x="14.0" cp1y="8.0" cp2x="14.0" cp2y="8.0"/>
151.8381 +                                 </points>
151.8382 +                              </path>
151.8383 +                           </shapes>
151.8384 +                           <effects/>
151.8385 +                        </layer>
151.8386 +                        <templateLayer fileName="1140f660775.png">
151.8387 +                           <layer name="Template" type="template">
151.8388 +                              <opacity>1.0</opacity>
151.8389 +                              <fillOpacity>1.0</fillOpacity>
151.8390 +                              <blendingMode>NORMAL</blendingMode>
151.8391 +                              <locked>false</locked>
151.8392 +                              <visible>false</visible>
151.8393 +                              <shapes/>
151.8394 +                              <effects/>
151.8395 +                           </layer>
151.8396 +                        </templateLayer>
151.8397 +                     </canvas>
151.8398 +                  </state>
151.8399 +               </backgroundStates>
151.8400 +               <foregroundStates/>
151.8401 +               <borderStates/>
151.8402 +               <regions/>
151.8403 +            </uiIconRegion>
151.8404 +            <uiIconRegion name="detailsViewIcon" subregion="true" key="detailsViewIcon">
151.8405 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.8406 +               <style>
151.8407 +                  <textForeground/>
151.8408 +                  <textBackground/>
151.8409 +                  <background/>
151.8410 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.8411 +                  <uiproperties/>
151.8412 +               </style>
151.8413 +               <backgroundStates>
151.8414 +                  <state stateKeys="Enabled">
151.8415 +                     <style>
151.8416 +                        <textForeground/>
151.8417 +                        <textBackground/>
151.8418 +                        <background/>
151.8419 +                        <uiproperties/>
151.8420 +                     </style>
151.8421 +                     <canvas>
151.8422 +                        <size width="16" height="16"/>
151.8423 +                        <nextLayerNameIndex>7</nextLayerNameIndex>
151.8424 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.8425 +                        <layer name="Layer 6">
151.8426 +                           <opacity>1.0</opacity>
151.8427 +                           <fillOpacity>1.0</fillOpacity>
151.8428 +                           <blendingMode>NORMAL</blendingMode>
151.8429 +                           <locked>false</locked>
151.8430 +                           <visible>true</visible>
151.8431 +                           <shapes>
151.8432 +                              <rectangle x1="5.0" x2="7.0" y1="9.0" y2="10.0" rounding="0.0">
151.8433 +                                 <matte red="69" green="78" blue="85" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.00573498" saturationOffset="-0.447479" brightnessOffset="-0.21568629" alphaOffset="0"/>
151.8434 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8435 +                              </rectangle>
151.8436 +                              <rectangle x1="8.0" x2="10.0" y1="9.0" y2="10.0" rounding="0.0">
151.8437 +                                 <matte red="93" green="106" blue="117" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0022627711" saturationOffset="-0.4305861" brightnessOffset="-0.0901961" alphaOffset="0"/>
151.8438 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8439 +                              </rectangle>
151.8440 +                              <rectangle x1="8.0" x2="10.0" y1="7.0" y2="8.0" rounding="0.0">
151.8441 +                                 <matte red="103" green="109" blue="113" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.011985004" saturationOffset="-0.54721874" brightnessOffset="-0.10588238" alphaOffset="0"/>
151.8442 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8443 +                              </rectangle>
151.8444 +                              <rectangle x1="5.0" x2="7.0" y1="7.0" y2="8.0" rounding="0.0">
151.8445 +                                 <matte red="105" green="111" blue="116" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0028941035" saturationOffset="-0.5408867" brightnessOffset="-0.09411767" alphaOffset="0"/>
151.8446 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8447 +                              </rectangle>
151.8448 +                           </shapes>
151.8449 +                           <effects/>
151.8450 +                        </layer>
151.8451 +                        <layer name="Layer 5">
151.8452 +                           <opacity>1.0</opacity>
151.8453 +                           <fillOpacity>1.0</fillOpacity>
151.8454 +                           <blendingMode>NORMAL</blendingMode>
151.8455 +                           <locked>false</locked>
151.8456 +                           <visible>true</visible>
151.8457 +                           <shapes>
151.8458 +                              <path>
151.8459 +                                 <gradient cycleMethod="NO_CYCLE">
151.8460 +                                    <stop position="0.12215909" midpoint="0.5">
151.8461 +                                       <matte red="16" green="16" blue="16" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.48627454" alphaOffset="0"/>
151.8462 +                                    </stop>
151.8463 +                                    <stop position="0.19886364" midpoint="0.5">
151.8464 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="0"/>
151.8465 +                                    </stop>
151.8466 +                                    <stop position="0.32670453" midpoint="0.5">
151.8467 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="0"/>
151.8468 +                                    </stop>
151.8469 +                                    <stop position="0.53409094" midpoint="0.5">
151.8470 +                                       <matte red="138" green="138" blue="138" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.007843137" alphaOffset="0"/>
151.8471 +                                    </stop>
151.8472 +                                 </gradient>
151.8473 +                                 <paintPoints x1="1.0" y1="0.0" x2="0.0" y2="1.0"/>
151.8474 +                                 <points>
151.8475 +                                    <point x="0.9130434782608696" y="14.608695652173912" cp1x="0.9130434782608696" cp1y="14.608695652173912" cp2x="0.9130434782608696" cp2y="14.608695652173912"/>
151.8476 +                                    <point x="1.4130434782608694" y="15.108695652173912" cp1x="1.4130434782608694" cp1y="15.108695652173912" cp2x="1.4130434782608694" cp2y="15.108695652173912"/>
151.8477 +                                    <point x="5.108695652173911" y="11.478260869565219" cp1x="5.108695652173911" cp1y="11.478260869565219" cp2x="5.108695652173911" cp2y="11.478260869565219"/>
151.8478 +                                    <point x="4.5652173913043494" y="10.934782608695649" cp1x="4.5652173913043494" cp1y="10.934782608695649" cp2x="4.5652173913043494" cp2y="10.934782608695649"/>
151.8479 +                                 </points>
151.8480 +                              </path>
151.8481 +                              <path>
151.8482 +                                 <gradient cycleMethod="NO_CYCLE">
151.8483 +                                    <stop position="0.38352272" midpoint="0.5">
151.8484 +                                       <matte red="64" green="64" blue="64" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.29803923" alphaOffset="0"/>
151.8485 +                                    </stop>
151.8486 +                                    <stop position="0.45454547" midpoint="0.5">
151.8487 +                                       <matte red="171" green="171" blue="171" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="0.12156862" alphaOffset="0"/>
151.8488 +                                    </stop>
151.8489 +                                    <stop position="0.51420456" midpoint="0.5">
151.8490 +                                       <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.8491 +                                    </stop>
151.8492 +                                 </gradient>
151.8493 +                                 <paintPoints x1="0.0" y1="0.0" x2="1.0" y2="1.0"/>
151.8494 +                                 <points>
151.8495 +                                    <point x="0.0" y="15.0" cp1x="0.0" cp1y="15.0" cp2x="0.0" cp2y="15.0"/>
151.8496 +                                    <point x="0.0" y="16.0" cp1x="0.0" cp1y="16.0" cp2x="0.0" cp2y="16.0"/>
151.8497 +                                    <point x="2.0" y="16.0" cp1x="2.0" cp1y="16.0" cp2x="2.0" cp2y="16.0"/>
151.8498 +                                    <point x="5.0" y="12.0" cp1x="5.0" cp1y="12.0" cp2x="5.0" cp2y="12.0"/>
151.8499 +                                    <point x="4.0" y="10.0" cp1x="4.0" cp1y="10.0" cp2x="4.0" cp2y="10.0"/>
151.8500 +                                 </points>
151.8501 +                              </path>
151.8502 +                              <ellipse x1="4.0" x2="11.0" y1="5.0" y2="12.0">
151.8503 +                                 <radialGradient cycleMethod="NO_CYCLE">
151.8504 +                                    <stop position="0.0" midpoint="0.40625">
151.8505 +                                       <matte red="229" green="240" blue="249" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0036516786" saturationOffset="-0.555393" brightnessOffset="0.42745095" alphaOffset="0"/>
151.8506 +                                    </stop>
151.8507 +                                    <stop position="1.0" midpoint="0.5">
151.8508 +                                       <matte red="155" green="186" blue="213" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0010654926" saturationOffset="-0.3634138" brightnessOffset="0.2862745" alphaOffset="0"/>
151.8509 +                                    </stop>
151.8510 +                                 </radialGradient>
151.8511 +                                 <paintPoints x1="0.4922360248447207" y1="0.975155279503105" x2="0.47826086956521735" y2="0.23913043478260873"/>
151.8512 +                              </ellipse>
151.8513 +                              <ellipse x1="3.0" x2="12.0" y1="4.0" y2="13.0">
151.8514 +                                 <gradient cycleMethod="NO_CYCLE">
151.8515 +                                    <stop position="0.0" midpoint="0.5">
151.8516 +                                       <matte red="102" green="102" blue="104" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="-0.6164835" brightnessOffset="-0.14117649" alphaOffset="0"/>
151.8517 +                                    </stop>
151.8518 +                                    <stop position="1.0" midpoint="0.5">
151.8519 +                                       <matte red="12" green="12" blue="12" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.5019608" alphaOffset="0"/>
151.8520 +                                    </stop>
151.8521 +                                 </gradient>
151.8522 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8523 +                              </ellipse>
151.8524 +                           </shapes>
151.8525 +                           <effects/>
151.8526 +                        </layer>
151.8527 +                        <layer name="Icon">
151.8528 +                           <opacity>1.0</opacity>
151.8529 +                           <fillOpacity>1.0</fillOpacity>
151.8530 +                           <blendingMode>NORMAL</blendingMode>
151.8531 +                           <locked>false</locked>
151.8532 +                           <visible>true</visible>
151.8533 +                           <shapes>
151.8534 +                              <rectangle x1="8.0" x2="13.0" y1="11.0" y2="12.0" rounding="0.0">
151.8535 +                                 <matte red="178" green="183" blue="189" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.012257397" saturationOffset="-0.5775132" brightnessOffset="0.19215685" alphaOffset="0"/>
151.8536 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8537 +                              </rectangle>
151.8538 +                              <rectangle x1="8.0" x2="13.0" y1="7.0" y2="8.0" rounding="0.0">
151.8539 +                                 <matte red="163" green="174" blue="184" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="7.13408E-4" saturationOffset="-0.52158386" brightnessOffset="0.17254901" alphaOffset="0"/>
151.8540 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8541 +                              </rectangle>
151.8542 +                              <rectangle x1="8.0" x2="13.0" y1="3.0" y2="4.0" rounding="0.0">
151.8543 +                                 <matte red="163" green="174" blue="184" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="7.13408E-4" saturationOffset="-0.52158386" brightnessOffset="0.17254901" alphaOffset="0"/>
151.8544 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8545 +                              </rectangle>
151.8546 +                              <rectangle x1="5.0" x2="7.0" y1="3.0" y2="4.0" rounding="0.0">
151.8547 +                                 <matte red="163" green="174" blue="184" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="7.13408E-4" saturationOffset="-0.52158386" brightnessOffset="0.17254901" alphaOffset="0"/>
151.8548 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8549 +                              </rectangle>
151.8550 +                              <rectangle x1="2.0" x2="15.0" y1="1.0" y2="14.0" rounding="0.0">
151.8551 +                                 <gradient cycleMethod="NO_CYCLE">
151.8552 +                                    <stop position="0.0" midpoint="0.5">
151.8553 +                                       <matte red="233" green="239" blue="244" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0028941035" saturationOffset="-0.5906323" brightnessOffset="0.4078431" alphaOffset="0"/>
151.8554 +                                    </stop>
151.8555 +                                    <stop position="0.11363637" midpoint="0.5">
151.8556 +                                       <matte red="200" green="214" blue="228" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.51290727" brightnessOffset="0.34509802" alphaOffset="0"/>
151.8557 +                                    </stop>
151.8558 +                                    <stop position="0.57102275" midpoint="0.5">
151.8559 +                                       <matte red="221" green="229" blue="238" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.009583652" saturationOffset="-0.5642857" brightnessOffset="0.3843137" alphaOffset="0"/>
151.8560 +                                    </stop>
151.8561 +                                    <stop position="1.0" midpoint="0.5">
151.8562 +                                       <matte red="241" green="245" blue="248" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0072231293" saturationOffset="-0.6074885" brightnessOffset="0.4235294" alphaOffset="0"/>
151.8563 +                                    </stop>
151.8564 +                                 </gradient>
151.8565 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.8566 +                              </rectangle>
151.8567 +                              <rectangle x1="1.0" x2="16.0" y1="0.0" y2="15.0" rounding="0.0">
151.8568 +                                 <gradient cycleMethod="NO_CYCLE">
151.8569 +                                    <stop position="0.0" midpoint="0.5">
151.8570 +                                       <matte red="161" green="175" blue="189" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.48756614" brightnessOffset="0.19215685" alphaOffset="0"/>
151.8571 +                                    </stop>
151.8572 +                                    <stop position="1.0" midpoint="0.5">
151.8573 +                                       <matte red="123" green="134" blue="145" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.48399013" brightnessOffset="0.019607842" alphaOffset="0"/>
151.8574 +                                    </stop>
151.8575 +                                 </gradient>
151.8576 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.8577 +                              </rectangle>
151.8578 +                           </shapes>
151.8579 +                           <effects/>
151.8580 +                        </layer>
151.8581 +                        <templateLayer fileName="11499160af7.png">
151.8582 +                           <layer name="Template" type="template">
151.8583 +                              <opacity>1.0</opacity>
151.8584 +                              <fillOpacity>1.0</fillOpacity>
151.8585 +                              <blendingMode>NORMAL</blendingMode>
151.8586 +                              <locked>false</locked>
151.8587 +                              <visible>true</visible>
151.8588 +                              <shapes/>
151.8589 +                              <effects/>
151.8590 +                           </layer>
151.8591 +                        </templateLayer>
151.8592 +                     </canvas>
151.8593 +                  </state>
151.8594 +               </backgroundStates>
151.8595 +               <foregroundStates/>
151.8596 +               <borderStates/>
151.8597 +               <regions/>
151.8598 +            </uiIconRegion>
151.8599 +            <uiIconRegion name="listViewIcon" subregion="true" key="listViewIcon">
151.8600 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.8601 +               <style>
151.8602 +                  <textForeground/>
151.8603 +                  <textBackground/>
151.8604 +                  <background/>
151.8605 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.8606 +                  <uiproperties/>
151.8607 +               </style>
151.8608 +               <backgroundStates>
151.8609 +                  <state stateKeys="Enabled">
151.8610 +                     <style>
151.8611 +                        <textForeground/>
151.8612 +                        <textBackground/>
151.8613 +                        <background/>
151.8614 +                        <uiproperties/>
151.8615 +                     </style>
151.8616 +                     <canvas>
151.8617 +                        <size width="16" height="16"/>
151.8618 +                        <nextLayerNameIndex>5</nextLayerNameIndex>
151.8619 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.8620 +                        <layer name="Icon">
151.8621 +                           <opacity>1.0</opacity>
151.8622 +                           <fillOpacity>1.0</fillOpacity>
151.8623 +                           <blendingMode>NORMAL</blendingMode>
151.8624 +                           <locked>false</locked>
151.8625 +                           <visible>true</visible>
151.8626 +                           <shapes>
151.8627 +                              <rectangle x1="7.0" x2="12.0" y1="12.0" y2="13.0" rounding="0.0">
151.8628 +                                 <matte red="186" green="186" blue="186" alpha="40" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8629 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8630 +                              </rectangle>
151.8631 +                              <rectangle x1="4.0" x2="6.0" y1="12.0" y2="13.0" rounding="0.0">
151.8632 +                                 <matte red="186" green="186" blue="186" alpha="40" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8633 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8634 +                              </rectangle>
151.8635 +                              <rectangle x1="4.0" x2="6.0" y1="10.0" y2="11.0" rounding="0.0">
151.8636 +                                 <matte red="186" green="186" blue="186" alpha="50" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8637 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8638 +                              </rectangle>
151.8639 +                              <rectangle x1="7.0" x2="11.0" y1="10.0" y2="11.0" rounding="0.0">
151.8640 +                                 <matte red="186" green="186" blue="186" alpha="40" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8641 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8642 +                              </rectangle>
151.8643 +                              <rectangle x1="7.0" x2="12.0" y1="8.0" y2="9.0" rounding="0.0">
151.8644 +                                 <matte red="186" green="186" blue="186" alpha="40" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8645 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8646 +                              </rectangle>
151.8647 +                              <rectangle x1="4.0" x2="6.0" y1="8.0" y2="9.0" rounding="0.0">
151.8648 +                                 <matte red="186" green="186" blue="186" alpha="50" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8649 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8650 +                              </rectangle>
151.8651 +                              <rectangle x1="7.0" x2="11.0" y1="6.0" y2="7.0" rounding="0.0">
151.8652 +                                 <matte red="186" green="186" blue="186" alpha="40" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8653 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8654 +                              </rectangle>
151.8655 +                              <rectangle x1="4.0" x2="6.0" y1="6.0" y2="7.0" rounding="0.0">
151.8656 +                                 <matte red="186" green="186" blue="186" alpha="50" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8657 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8658 +                              </rectangle>
151.8659 +                              <rectangle x1="7.0" x2="12.0" y1="4.0" y2="5.0" rounding="0.0">
151.8660 +                                 <matte red="186" green="186" blue="186" alpha="50" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8661 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8662 +                              </rectangle>
151.8663 +                              <rectangle x1="4.0" x2="6.0" y1="4.0" y2="5.0" rounding="0.0">
151.8664 +                                 <matte red="186" green="186" blue="186" alpha="50" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8665 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8666 +                              </rectangle>
151.8667 +                              <rectangle x1="4.0" x2="6.0" y1="11.0" y2="12.0" rounding="0.0">
151.8668 +                                 <matte red="70" green="75" blue="79" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.004577577" saturationOffset="-0.52179027" brightnessOffset="-0.2392157" alphaOffset="0"/>
151.8669 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8670 +                              </rectangle>
151.8671 +                              <rectangle x1="7.0" x2="12.0" y1="11.0" y2="12.0" rounding="0.0">
151.8672 +                                 <gradient cycleMethod="NO_CYCLE">
151.8673 +                                    <stop position="0.0" midpoint="0.5">
151.8674 +                                       <matte red="70" green="75" blue="79" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.004577577" saturationOffset="-0.52179027" brightnessOffset="-0.2392157" alphaOffset="0"/>
151.8675 +                                    </stop>
151.8676 +                                    <stop position="0.42897728" midpoint="0.5">
151.8677 +                                       <matte red="93" green="98" blue="102" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.004577577" saturationOffset="-0.547479" brightnessOffset="-0.14901963" alphaOffset="0"/>
151.8678 +                                    </stop>
151.8679 +                                    <stop position="1.0" midpoint="0.5">
151.8680 +                                       <matte red="70" green="75" blue="79" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.004577577" saturationOffset="-0.52179027" brightnessOffset="-0.2392157" alphaOffset="0"/>
151.8681 +                                    </stop>
151.8682 +                                 </gradient>
151.8683 +                                 <paintPoints x1="0.0" y1="0.0" x2="1.0" y2="0.0"/>
151.8684 +                              </rectangle>
151.8685 +                              <rectangle x1="7.0" x2="11.0" y1="9.0" y2="10.0" rounding="0.0">
151.8686 +                                 <gradient cycleMethod="NO_CYCLE">
151.8687 +                                    <stop position="0.0" midpoint="0.5">
151.8688 +                                       <matte red="108" green="114" blue="120" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8689 +                                    </stop>
151.8690 +                                    <stop position="0.4346591" midpoint="0.5">
151.8691 +                                       <matte red="77" green="82" blue="87" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8692 +                                    </stop>
151.8693 +                                 </gradient>
151.8694 +                                 <paintPoints x1="0.0" y1="0.0" x2="1.0" y2="0.0"/>
151.8695 +                              </rectangle>
151.8696 +                              <rectangle x1="4.0" x2="6.0" y1="9.0" y2="10.0" rounding="0.0">
151.8697 +                                 <matte red="77" green="82" blue="87" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.52077174" brightnessOffset="-0.20784315" alphaOffset="0"/>
151.8698 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8699 +                              </rectangle>
151.8700 +                              <rectangle x1="7.0" x2="12.0" y1="7.0" y2="8.0" rounding="0.0">
151.8701 +                                 <gradient cycleMethod="NO_CYCLE">
151.8702 +                                    <stop position="0.0" midpoint="0.5">
151.8703 +                                       <matte red="87" green="93" blue="98" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0028941035" saturationOffset="-0.5234694" brightnessOffset="-0.1647059" alphaOffset="0"/>
151.8704 +                                    </stop>
151.8705 +                                    <stop position="0.48295453" midpoint="0.5">
151.8706 +                                       <matte red="106" green="112" blue="118" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.53401935" brightnessOffset="-0.086274534" alphaOffset="0"/>
151.8707 +                                    </stop>
151.8708 +                                    <stop position="1.0" midpoint="0.5">
151.8709 +                                       <matte red="87" green="93" blue="98" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0028941035" saturationOffset="-0.5234694" brightnessOffset="-0.1647059" alphaOffset="0"/>
151.8710 +                                    </stop>
151.8711 +                                 </gradient>
151.8712 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8713 +                              </rectangle>
151.8714 +                              <rectangle x1="4.0" x2="6.0" y1="7.0" y2="8.0" rounding="0.0">
151.8715 +                                 <matte red="90" green="95" blue="100" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.010526314" brightnessOffset="-0.3529412" alphaOffset="0"/>
151.8716 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8717 +                              </rectangle>
151.8718 +                              <rectangle x1="4.0" x2="6.0" y1="5.0" y2="6.0" rounding="0.0">
151.8719 +                                 <matte red="97" green="103" blue="108" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.03535354" saturationOffset="-0.008674465" brightnessOffset="-0.32156864" alphaOffset="0"/>
151.8720 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8721 +                              </rectangle>
151.8722 +                              <rectangle x1="7.0" x2="11.0" y1="5.0" y2="6.0" rounding="0.0">
151.8723 +                                 <matte red="97" green="103" blue="108" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0028941035" saturationOffset="-0.5338625" brightnessOffset="-0.12549022" alphaOffset="0"/>
151.8724 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8725 +                              </rectangle>
151.8726 +                              <rectangle x1="7.0" x2="12.0" y1="3.0" y2="4.0" rounding="0.0">
151.8727 +                                 <gradient cycleMethod="NO_CYCLE">
151.8728 +                                    <stop position="0.25" midpoint="0.5">
151.8729 +                                       <matte red="99" green="105" blue="111" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.5276062" brightnessOffset="-0.11372551" alphaOffset="0"/>
151.8730 +                                    </stop>
151.8731 +                                    <stop position="0.42045453" midpoint="0.5">
151.8732 +                                       <matte red="124" green="132" blue="139" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-8.738637E-4" saturationOffset="-0.5278006" brightnessOffset="-0.0039215684" alphaOffset="0"/>
151.8733 +                                    </stop>
151.8734 +                                    <stop position="0.5823864" midpoint="0.5">
151.8735 +                                       <matte red="99" green="105" blue="111" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.5276062" brightnessOffset="-0.11372551" alphaOffset="0"/>
151.8736 +                                    </stop>
151.8737 +                                 </gradient>
151.8738 +                                 <paintPoints x1="0.0" y1="0.0" x2="1.0" y2="1.0"/>
151.8739 +                              </rectangle>
151.8740 +                              <rectangle x1="4.0" x2="6.0" y1="3.0" y2="4.0" rounding="0.0">
151.8741 +                                 <matte red="99" green="105" blue="111" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.5276062" brightnessOffset="-0.11372551" alphaOffset="0"/>
151.8742 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8743 +                              </rectangle>
151.8744 +                              <rectangle x1="1.0" x2="15.0" y1="1.0" y2="14.0" rounding="0.0">
151.8745 +                                 <gradient cycleMethod="NO_CYCLE">
151.8746 +                                    <stop position="0.0" midpoint="0.5">
151.8747 +                                       <matte red="233" green="239" blue="244" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0028941035" saturationOffset="-0.5906323" brightnessOffset="0.4078431" alphaOffset="0"/>
151.8748 +                                    </stop>
151.8749 +                                    <stop position="0.07670455" midpoint="0.5">
151.8750 +                                       <matte red="200" green="214" blue="228" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.51290727" brightnessOffset="0.34509802" alphaOffset="0"/>
151.8751 +                                    </stop>
151.8752 +                                    <stop position="0.4090909" midpoint="0.5">
151.8753 +                                       <matte red="209" green="221" blue="233" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.53271" brightnessOffset="0.36470586" alphaOffset="0"/>
151.8754 +                                    </stop>
151.8755 +                                    <stop position="1.0" midpoint="0.5">
151.8756 +                                       <matte red="241" green="245" blue="248" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0072231293" saturationOffset="-0.6074885" brightnessOffset="0.4235294" alphaOffset="0"/>
151.8757 +                                    </stop>
151.8758 +                                 </gradient>
151.8759 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.8760 +                              </rectangle>
151.8761 +                              <rectangle x1="0.0" x2="16.0" y1="0.0" y2="15.0" rounding="0.0">
151.8762 +                                 <gradient cycleMethod="NO_CYCLE">
151.8763 +                                    <stop position="0.0" midpoint="0.5">
151.8764 +                                       <matte red="161" green="175" blue="189" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.48756614" brightnessOffset="0.19215685" alphaOffset="0"/>
151.8765 +                                    </stop>
151.8766 +                                    <stop position="1.0" midpoint="0.5">
151.8767 +                                       <matte red="123" green="134" blue="145" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.48399013" brightnessOffset="0.019607842" alphaOffset="0"/>
151.8768 +                                    </stop>
151.8769 +                                 </gradient>
151.8770 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.8771 +                              </rectangle>
151.8772 +                           </shapes>
151.8773 +                           <effects/>
151.8774 +                        </layer>
151.8775 +                        <templateLayer fileName="114997c75bc.png">
151.8776 +                           <layer name="Template" type="template">
151.8777 +                              <opacity>1.0</opacity>
151.8778 +                              <fillOpacity>1.0</fillOpacity>
151.8779 +                              <blendingMode>NORMAL</blendingMode>
151.8780 +                              <locked>false</locked>
151.8781 +                              <visible>false</visible>
151.8782 +                              <shapes/>
151.8783 +                              <effects/>
151.8784 +                           </layer>
151.8785 +                        </templateLayer>
151.8786 +                     </canvas>
151.8787 +                  </state>
151.8788 +               </backgroundStates>
151.8789 +               <foregroundStates/>
151.8790 +               <borderStates/>
151.8791 +               <regions/>
151.8792 +            </uiIconRegion>
151.8793 +         </regions>
151.8794 +      </uiComponent>
151.8795 +      <uiComponent opaque="false" type="javax.swing.plaf.synth.SynthInternalFrameTitlePane" name="InternalFrameTitlePane" ui="ComponentUI" subregion="false">
151.8796 +         <stateTypes/>
151.8797 +         <contentMargins top="0" bottom="0" left="0" right="0"/>
151.8798 +         <style>
151.8799 +            <textForeground/>
151.8800 +            <textBackground/>
151.8801 +            <background/>
151.8802 +            <uiproperties>
151.8803 +               <uiProperty name="maxFrameIconSize" type="DIMENSION">
151.8804 +                  <dimension width="18" height="18"/>
151.8805 +               </uiProperty>
151.8806 +           </uiproperties>
151.8807 +         </style>
151.8808 +         <backgroundStates/>
151.8809 +         <foregroundStates/>
151.8810 +         <borderStates/>
151.8811 +         <regions/>
151.8812 +      </uiComponent>
151.8813 +      <uiComponent opaque="false" type="javax.swing.JInternalFrame" name="InternalFrame" ui="InternalFrameUI" subregion="false">
151.8814 +         <stateTypes>
151.8815 +            <stateType key="Enabled"/>
151.8816 +            <stateType key="WindowFocused">
151.8817 +               <codeSnippet><![CDATA[
151.8818 +                         return c instanceof JInternalFrame && ((JInternalFrame)c).isSelected();]]></codeSnippet>
151.8819 +            </stateType>
151.8820 +         </stateTypes>
151.8821 +         <contentMargins top="1" bottom="6" left="6" right="6"/>
151.8822 +         <style>
151.8823 +            <textForeground/>
151.8824 +            <textBackground/>
151.8825 +            <background/>
151.8826 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.8827 +            <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.8828 +            <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.8829 +            <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.8830 +            <uiproperties/>
151.8831 +         </style>
151.8832 +         <backgroundStates>
151.8833 +            <state stateKeys="Enabled">
151.8834 +               <style>
151.8835 +                  <textForeground/>
151.8836 +                  <textBackground/>
151.8837 +                  <background/>
151.8838 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.8839 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.8840 +                  <uiproperties/>
151.8841 +               </style>
151.8842 +               <canvas>
151.8843 +                  <size width="25" height="36"/>
151.8844 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.8845 +                  <stretchingInsets top="25" bottom="6" left="6" right="6"/>
151.8846 +                  <layer name="Layer 1">
151.8847 +                     <opacity>1.0</opacity>
151.8848 +                     <fillOpacity>1.0</fillOpacity>
151.8849 +                     <blendingMode>NORMAL</blendingMode>
151.8850 +                     <locked>false</locked>
151.8851 +                     <visible>true</visible>
151.8852 +                     <shapes>
151.8853 +                        <rectangle x1="2.0" x2="23.0" y1="34.0" y2="35.0" rounding="0.0">
151.8854 +                           <matte red="211" green="214" blue="219" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.006944418" saturationOffset="-0.07399663" brightnessOffset="0.11372548" alphaOffset="0"/>
151.8855 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8856 +                        </rectangle>
151.8857 +                        <rectangle x1="6.0" x2="19.0" y1="25.0" y2="30.0" rounding="0.0">
151.8858 +                           <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="control" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8859 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8860 +                        </rectangle>
151.8861 +                        <path>
151.8862 +                           <matte red="158" green="163" blue="173" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.023821115" brightnessOffset="-0.06666666" alphaOffset="0"/>
151.8863 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8864 +                           <points>
151.8865 +                              <point x="20.0" y="25.0" cp1x="20.0" cp1y="25.0" cp2x="20.0" cp2y="25.0"/>
151.8866 +                              <point x="6.0" y="25.0" cp1x="6.0" cp1y="25.0" cp2x="6.0" cp2y="25.0"/>
151.8867 +                              <point x="6.0" y="30.0" cp1x="6.0" cp1y="30.0" cp2x="6.0" cp2y="30.0"/>
151.8868 +                              <point x="19.0" y="30.0" cp1x="19.0" cp1y="30.0" cp2x="19.0" cp2y="30.0"/>
151.8869 +                              <point x="19.0" y="25.0" cp1x="19.0" cp1y="25.0" cp2x="19.0" cp2y="25.0"/>
151.8870 +                              <point x="20.0" y="25.0" cp1x="20.0" cp1y="25.0" cp2x="20.0" cp2y="25.0"/>
151.8871 +                              <point x="20.0" y="31.0" cp1x="20.0" cp1y="31.0" cp2x="20.0" cp2y="31.0"/>
151.8872 +                              <point x="5.0" y="31.0" cp1x="5.0" cp1y="31.0" cp2x="5.0" cp2y="31.0"/>
151.8873 +                              <point x="5.0" y="24.0" cp1x="5.0" cp1y="24.0" cp2x="5.0" cp2y="24.0"/>
151.8874 +                              <point x="20.0" y="24.0" cp1x="20.0" cp1y="24.0" cp2x="20.0" cp2y="24.0"/>
151.8875 +                           </points>
151.8876 +                        </path>
151.8877 +                        <path>
151.8878 +                           <matte red="203" green="207" blue="213" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.01111114" saturationOffset="-0.06357796" brightnessOffset="0.09019607" alphaOffset="0"/>
151.8879 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8880 +                           <points>
151.8881 +                              <point x="5.0" y="24.0" cp1x="5.0" cp1y="24.0" cp2x="5.0" cp2y="24.0"/>
151.8882 +                              <point x="4.0" y="24.0" cp1x="4.0" cp1y="24.0" cp2x="4.0" cp2y="24.0"/>
151.8883 +                              <point x="4.0" y="32.0" cp1x="4.0" cp1y="32.0" cp2x="4.0" cp2y="32.0"/>
151.8884 +                              <point x="21.0" y="32.0" cp1x="21.0" cp1y="32.0" cp2x="21.0" cp2y="32.0"/>
151.8885 +                              <point x="21.0" y="24.0" cp1x="21.0" cp1y="24.0" cp2x="21.0" cp2y="24.0"/>
151.8886 +                              <point x="20.0" y="24.0" cp1x="20.0" cp1y="24.0" cp2x="20.0" cp2y="24.0"/>
151.8887 +                              <point x="20.0" y="31.0" cp1x="20.0" cp1y="31.0" cp2x="20.0" cp2y="31.0"/>
151.8888 +                              <point x="5.0" y="31.0" cp1x="5.0" cp1y="31.0" cp2x="5.0" cp2y="31.0"/>
151.8889 +                           </points>
151.8890 +                        </path>
151.8891 +                        <path>
151.8892 +                           <matte red="192" green="196" blue="203" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.00505054" saturationOffset="-0.056339122" brightnessOffset="0.05098039" alphaOffset="0"/>
151.8893 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8894 +                           <points>
151.8895 +                              <point x="4.0" y="24.0" cp1x="4.0" cp1y="24.0" cp2x="4.0" cp2y="24.0"/>
151.8896 +                              <point x="1.0" y="24.0" cp1x="1.0" cp1y="24.0" cp2x="1.0" cp2y="24.0"/>
151.8897 +                              <point x="1.0" y="33.0" cp1x="1.0" cp1y="32.0" cp2x="1.0" cp2y="34.0"/>
151.8898 +                              <point x="3.0" y="35.0" cp1x="2.0" cp1y="35.0" cp2x="4.0" cp2y="35.0"/>
151.8899 +                              <point x="22.0" y="35.0" cp1x="21.0" cp1y="35.0" cp2x="23.0" cp2y="35.0"/>
151.8900 +                              <point x="24.0" y="33.0" cp1x="24.0" cp1y="34.0" cp2x="24.0" cp2y="32.0"/>
151.8901 +                              <point x="24.0" y="24.0" cp1x="24.0" cp1y="24.0" cp2x="24.0" cp2y="24.0"/>
151.8902 +                              <point x="21.0" y="24.0" cp1x="21.0" cp1y="24.0" cp2x="21.0" cp2y="24.0"/>
151.8903 +                              <point x="21.0" y="32.0" cp1x="21.0" cp1y="32.0" cp2x="21.0" cp2y="32.0"/>
151.8904 +                              <point x="4.0" y="32.0" cp1x="4.0" cp1y="32.0" cp2x="4.0" cp2y="32.0"/>
151.8905 +                           </points>
151.8906 +                        </path>
151.8907 +                        <path>
151.8908 +                           <gradient cycleMethod="NO_CYCLE">
151.8909 +                              <stop position="0.0" midpoint="0.3203593">
151.8910 +                                 <matte red="170" green="174" blue="183" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.004273474" saturationOffset="-0.039488062" brightnessOffset="-0.027450979" alphaOffset="0"/>
151.8911 +                              </stop>
151.8912 +                              <stop position="1.0" midpoint="0.5">
151.8913 +                                 <matte red="192" green="196" blue="203" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.00505054" saturationOffset="-0.056339122" brightnessOffset="0.05098039" alphaOffset="0"/>
151.8914 +                              </stop>
151.8915 +                           </gradient>
151.8916 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.8917 +                           <points>
151.8918 +                              <point x="1.0" y="3.0" cp1x="1.0" cp1y="4.0" cp2x="1.0" cp2y="2.0"/>
151.8919 +                              <point x="3.0" y="1.0" cp1x="2.0" cp1y="1.0" cp2x="4.0" cp2y="1.0"/>
151.8920 +                              <point x="22.0" y="1.0" cp1x="21.0" cp1y="1.0" cp2x="23.0" cp2y="1.0"/>
151.8921 +                              <point x="24.0" y="3.0" cp1x="24.0" cp1y="2.0" cp2x="24.0" cp2y="4.0"/>
151.8922 +                              <point x="24.0" y="24.0" cp1x="24.0" cp1y="24.0" cp2x="24.0" cp2y="24.0"/>
151.8923 +                              <point x="1.0" y="24.0" cp1x="1.0" cp1y="24.0" cp2x="1.0" cp2y="24.0"/>
151.8924 +                           </points>
151.8925 +                        </path>
151.8926 +                        <rectangle x1="0.0" x2="25.0" y1="0.0" y2="36.0" rounding="4.666666666666666">
151.8927 +                           <matte red="136" green="141" blue="151" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.53637654" brightnessOffset="0.043137252" alphaOffset="0"/>
151.8928 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8929 +                        </rectangle>
151.8930 +                     </shapes>
151.8931 +                     <effects/>
151.8932 +                  </layer>
151.8933 +                  <templateLayer fileName="113e0dd2c60.png">
151.8934 +                     <layer name="Template" type="template">
151.8935 +                        <opacity>1.0</opacity>
151.8936 +                        <fillOpacity>1.0</fillOpacity>
151.8937 +                        <blendingMode>NORMAL</blendingMode>
151.8938 +                        <locked>false</locked>
151.8939 +                        <visible>false</visible>
151.8940 +                        <shapes/>
151.8941 +                        <effects/>
151.8942 +                     </layer>
151.8943 +                  </templateLayer>
151.8944 +               </canvas>
151.8945 +            </state>
151.8946 +            <state stateKeys="Enabled+WindowFocused">
151.8947 +               <style>
151.8948 +                  <textForeground/>
151.8949 +                  <textBackground/>
151.8950 +                  <background/>
151.8951 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.8952 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.8953 +                  <uiproperties/>
151.8954 +               </style>
151.8955 +               <canvas>
151.8956 +                  <size width="25" height="36"/>
151.8957 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.8958 +                  <stretchingInsets top="25" bottom="6" left="6" right="6"/>
151.8959 +                  <layer name="Layer 1">
151.8960 +                     <opacity>1.0</opacity>
151.8961 +                     <fillOpacity>1.0</fillOpacity>
151.8962 +                     <blendingMode>NORMAL</blendingMode>
151.8963 +                     <locked>false</locked>
151.8964 +                     <visible>true</visible>
151.8965 +                     <shapes>
151.8966 +                        <rectangle x1="2.0" x2="23.0" y1="34.0" y2="35.0" rounding="0.0">
151.8967 +                           <matte red="235" green="236" blue="238" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8968 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8969 +                        </rectangle>
151.8970 +                        <rectangle x1="2.0" x2="23.0" y1="2.0" y2="24.0" rounding="0.0">
151.8971 +                           <gradient cycleMethod="NO_CYCLE">
151.8972 +                              <stop position="0.0" midpoint="0.24251497">
151.8973 +                                 <matte red="227" green="229" blue="232" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.61416256" brightnessOffset="0.3607843" alphaOffset="0"/>
151.8974 +                              </stop>
151.8975 +                              <stop position="1.0" midpoint="0.5">
151.8976 +                                 <matte red="170" green="175" blue="185" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5546332" brightnessOffset="0.17647058" alphaOffset="0"/>
151.8977 +                              </stop>
151.8978 +                           </gradient>
151.8979 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.8980 +                        </rectangle>
151.8981 +                        <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.8982 +                           <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8983 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8984 +                        </rectangle>
151.8985 +                        <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.8986 +                           <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8987 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8988 +                        </rectangle>
151.8989 +                        <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.8990 +                           <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8991 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8992 +                        </rectangle>
151.8993 +                        <rectangle x1="6.0" x2="19.0" y1="25.0" y2="30.0" rounding="0.0">
151.8994 +                           <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="control" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.8995 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.8996 +                        </rectangle>
151.8997 +                        <path>
151.8998 +                           <matte red="108" green="114" blue="128" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.03801495" saturationOffset="-0.4794643" brightnessOffset="-0.04705882" alphaOffset="0"/>
151.8999 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9000 +                           <points>
151.9001 +                              <point x="5.0" y="25.0" cp1x="5.0" cp1y="25.0" cp2x="5.0" cp2y="25.0"/>
151.9002 +                              <point x="5.0" y="31.0" cp1x="5.0" cp1y="31.0" cp2x="5.0" cp2y="31.0"/>
151.9003 +                              <point x="20.0" y="31.0" cp1x="20.0" cp1y="31.0" cp2x="20.0" cp2y="31.0"/>
151.9004 +                              <point x="20.0" y="24.0" cp1x="20.0" cp1y="24.0" cp2x="20.0" cp2y="24.0"/>
151.9005 +                              <point x="5.0" y="24.0" cp1x="5.0" cp1y="24.0" cp2x="5.0" cp2y="24.0"/>
151.9006 +                              <point x="5.0" y="25.0" cp1x="5.0" cp1y="25.0" cp2x="5.0" cp2y="25.0"/>
151.9007 +                              <point x="19.0" y="25.0" cp1x="19.0" cp1y="25.0" cp2x="19.0" cp2y="25.0"/>
151.9008 +                              <point x="19.0" y="30.0" cp1x="19.0" cp1y="30.0" cp2x="19.0" cp2y="30.0"/>
151.9009 +                              <point x="6.0" y="30.0" cp1x="6.0" cp1y="30.0" cp2x="6.0" cp2y="30.0"/>
151.9010 +                              <point x="6.0" y="25.0" cp1x="6.0" cp1y="25.0" cp2x="6.0" cp2y="25.0"/>
151.9011 +                           </points>
151.9012 +                        </path>
151.9013 +                        <path>
151.9014 +                           <matte red="149" green="158" blue="167" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.52792984" brightnessOffset="0.10588235" alphaOffset="0"/>
151.9015 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9016 +                           <points>
151.9017 +                              <point x="21.0" y="24.0" cp1x="21.0" cp1y="24.0" cp2x="21.0" cp2y="24.0"/>
151.9018 +                              <point x="20.0" y="24.0" cp1x="20.0" cp1y="24.0" cp2x="20.0" cp2y="24.0"/>
151.9019 +                              <point x="20.0" y="31.0" cp1x="20.0" cp1y="31.0" cp2x="20.0" cp2y="31.0"/>
151.9020 +                              <point x="5.0" y="31.0" cp1x="5.0" cp1y="31.0" cp2x="5.0" cp2y="31.0"/>
151.9021 +                              <point x="5.0" y="24.0" cp1x="5.0" cp1y="24.0" cp2x="5.0" cp2y="24.0"/>
151.9022 +                              <point x="4.0" y="24.0" cp1x="4.0" cp1y="24.0" cp2x="4.0" cp2y="24.0"/>
151.9023 +                              <point x="4.0" y="32.0" cp1x="4.0" cp1y="32.0" cp2x="4.0" cp2y="32.0"/>
151.9024 +                              <point x="21.0" y="32.0" cp1x="21.0" cp1y="32.0" cp2x="21.0" cp2y="32.0"/>
151.9025 +                           </points>
151.9026 +                        </path>
151.9027 +                        <path>
151.9028 +                           <matte red="171" green="176" blue="186" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.55506915" brightnessOffset="0.18039215" alphaOffset="0"/>
151.9029 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9030 +                           <points>
151.9031 +                              <point x="4.0" y="24.0" cp1x="4.0" cp1y="24.0" cp2x="4.0" cp2y="24.0"/>
151.9032 +                              <point x="2.0" y="24.0" cp1x="2.0" cp1y="24.0" cp2x="2.0" cp2y="24.0"/>
151.9033 +                              <point x="2.0" y="32.0" cp1x="2.0" cp1y="31.0" cp2x="2.0" cp2y="33.0"/>
151.9034 +                              <point x="4.0" y="34.0" cp1x="3.0" cp1y="34.0" cp2x="5.0" cp2y="34.0"/>
151.9035 +                              <point x="21.0" y="34.0" cp1x="20.0" cp1y="34.0" cp2x="22.0" cp2y="34.0"/>
151.9036 +                              <point x="23.0" y="32.0" cp1x="23.0" cp1y="33.0" cp2x="23.0" cp2y="31.0"/>
151.9037 +                              <point x="23.0" y="24.0" cp1x="23.0" cp1y="24.0" cp2x="23.0" cp2y="24.0"/>
151.9038 +                              <point x="21.0" y="24.0" cp1x="21.0" cp1y="24.0" cp2x="21.0" cp2y="24.0"/>
151.9039 +                              <point x="21.0" y="32.0" cp1x="21.0" cp1y="32.0" cp2x="21.0" cp2y="32.0"/>
151.9040 +                              <point x="4.0" y="32.0" cp1x="4.0" cp1y="32.0" cp2x="4.0" cp2y="32.0"/>
151.9041 +                           </points>
151.9042 +                        </path>
151.9043 +                        <path>
151.9044 +                           <matte red="204" green="207" blue="213" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.9045 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9046 +                           <points>
151.9047 +                              <point x="3.0" y="24.0" cp1x="3.0" cp1y="24.0" cp2x="3.0" cp2y="24.0"/>
151.9048 +                              <point x="1.0" y="24.0" cp1x="1.0" cp1y="24.0" cp2x="1.0" cp2y="24.0"/>
151.9049 +                              <point x="1.0" y="33.0" cp1x="1.0" cp1y="32.0" cp2x="1.0" cp2y="34.0"/>
151.9050 +                              <point x="3.0" y="35.0" cp1x="2.0" cp1y="35.0" cp2x="4.0" cp2y="35.0"/>
151.9051 +                              <point x="22.0" y="35.0" cp1x="21.0" cp1y="35.0" cp2x="23.0" cp2y="35.0"/>
151.9052 +                              <point x="24.0" y="33.0" cp1x="24.0" cp1y="34.0" cp2x="24.0" cp2y="32.0"/>
151.9053 +                              <point x="24.0" y="24.0" cp1x="24.0" cp1y="24.0" cp2x="24.0" cp2y="24.0"/>
151.9054 +                              <point x="22.0" y="24.0" cp1x="22.0" cp1y="24.0" cp2x="22.0" cp2y="24.0"/>
151.9055 +                              <point x="22.0" y="33.0" cp1x="22.0" cp1y="33.0" cp2x="22.0" cp2y="33.0"/>
151.9056 +                              <point x="3.0" y="33.0" cp1x="3.0" cp1y="33.0" cp2x="3.0" cp2y="33.0"/>
151.9057 +                           </points>
151.9058 +                        </path>
151.9059 +                        <path>
151.9060 +                           <gradient cycleMethod="NO_CYCLE">
151.9061 +                              <stop position="0.0" midpoint="0.5">
151.9062 +                                 <matte red="240" green="241" blue="242" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6274498" brightnessOffset="0.39999998" alphaOffset="0"/>
151.9063 +                              </stop>
151.9064 +                              <stop position="1.0" midpoint="0.5">
151.9065 +                                 <matte red="204" green="207" blue="213" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5934608" brightnessOffset="0.2862745" alphaOffset="0"/>
151.9066 +                              </stop>
151.9067 +                           </gradient>
151.9068 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.9069 +                           <points>
151.9070 +                              <point x="1.0" y="3.0" cp1x="1.0" cp1y="4.0" cp2x="1.0" cp2y="2.0"/>
151.9071 +                              <point x="3.0" y="1.0" cp1x="2.0" cp1y="1.0" cp2x="4.0" cp2y="1.0"/>
151.9072 +                              <point x="22.0" y="1.0" cp1x="21.0" cp1y="1.0" cp2x="23.0" cp2y="1.0"/>
151.9073 +                              <point x="24.0" y="3.0" cp1x="24.0" cp1y="2.0" cp2x="24.0" cp2y="4.0"/>
151.9074 +                              <point x="24.0" y="24.0" cp1x="24.0" cp1y="24.0" cp2x="24.0" cp2y="24.0"/>
151.9075 +                              <point x="1.0" y="24.0" cp1x="1.0" cp1y="24.0" cp2x="1.0" cp2y="24.0"/>
151.9076 +                           </points>
151.9077 +                        </path>
151.9078 +                        <path>
151.9079 +                           <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.9080 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9081 +                           <points>
151.9082 +                              <point x="1.0" y="2.0" cp1x="1.0" cp1y="1.0" cp2x="1.0" cp2y="3.0"/>
151.9083 +                           </points>
151.9084 +                        </path>
151.9085 +                        <rectangle x1="0.0" x2="25.0" y1="0.0" y2="36.0" rounding="4.833333333333332">
151.9086 +                           <matte red="43" green="46" blue="51" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.02551502" saturationOffset="-0.47885156" brightnessOffset="-0.34901965" alphaOffset="0"/>
151.9087 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9088 +                        </rectangle>
151.9089 +                     </shapes>
151.9090 +                     <effects/>
151.9091 +                  </layer>
151.9092 +                  <templateLayer fileName="113e0e9b602.png">
151.9093 +                     <layer name="Template" type="template">
151.9094 +                        <opacity>1.0</opacity>
151.9095 +                        <fillOpacity>1.0</fillOpacity>
151.9096 +                        <blendingMode>NORMAL</blendingMode>
151.9097 +                        <locked>false</locked>
151.9098 +                        <visible>true</visible>
151.9099 +                        <shapes/>
151.9100 +                        <effects/>
151.9101 +                     </layer>
151.9102 +                  </templateLayer>
151.9103 +               </canvas>
151.9104 +            </state>
151.9105 +         </backgroundStates>
151.9106 +         <foregroundStates/>
151.9107 +         <borderStates/>
151.9108 +         <regions>
151.9109 +            <region name="InternalFrameTitlePane" subregion="false">
151.9110 +               <contentMargins top="3" bottom="3" left="0" right="0"/>
151.9111 +               <style>
151.9112 +                  <textForeground/>
151.9113 +                  <textBackground/>
151.9114 +                  <background/>
151.9115 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.9116 +                  <cacheMode>NO_CACHING</cacheMode>
151.9117 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.9118 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.9119 +                  <uiproperties>
151.9120 +                     <uiProperty name="titleAlignment" type="STRING" value="CENTER"/>
151.9121 +                  </uiproperties>
151.9122 +               </style>
151.9123 +               <backgroundStates>
151.9124 +                  <state stateKeys="Enabled">
151.9125 +                     <style>
151.9126 +                        <textForeground>
151.9127 +                           <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.9128 +                        </textForeground>
151.9129 +                        <textBackground/>
151.9130 +                        <background/>
151.9131 +                        <inherit-textForeground>false</inherit-textForeground>
151.9132 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.9133 +                        <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.9134 +                        <uiproperties/>
151.9135 +                     </style>
151.9136 +                     <canvas>
151.9137 +                        <size width="100" height="30"/>
151.9138 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.9139 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.9140 +                        <layer name="Layer 1">
151.9141 +                           <opacity>1.0</opacity>
151.9142 +                           <fillOpacity>1.0</fillOpacity>
151.9143 +                           <blendingMode>NORMAL</blendingMode>
151.9144 +                           <locked>false</locked>
151.9145 +                           <visible>true</visible>
151.9146 +                           <shapes/>
151.9147 +                           <effects/>
151.9148 +                        </layer>
151.9149 +                     </canvas>
151.9150 +                  </state>
151.9151 +               </backgroundStates>
151.9152 +               <foregroundStates/>
151.9153 +               <borderStates/>
151.9154 +               <regions>
151.9155 +                  <uiComponent opaque="false" componentName="InternalFrameTitlePane.menuButton" type="javax.swing.JButton" name="Button" ui="ButtonUI" subregion="true">
151.9156 +                     <stateTypes>
151.9157 +                        <stateType key="Enabled"/>
151.9158 +                        <stateType key="MouseOver"/>
151.9159 +                        <stateType key="Pressed"/>
151.9160 +                        <stateType key="Disabled"/>
151.9161 +                        <stateType key="Focused"/>
151.9162 +                        <stateType key="Selected"/>
151.9163 +                        <stateType key="WindowNotFocused">
151.9164 +                           <codeSnippet><![CDATA[
151.9165 +                               Component parent = c;
151.9166 +                               while (parent.getParent() != null) {
151.9167 +                                   if (parent instanceof JInternalFrame) {
151.9168 +                                       break;
151.9169 +                                   }
151.9170 +                                   parent = parent.getParent();
151.9171 +                               }
151.9172 +                               if (parent instanceof JInternalFrame) {
151.9173 +                                   return !(((JInternalFrame)parent).isSelected());
151.9174 +                               }
151.9175 +                               return false;]]></codeSnippet>
151.9176 +                        </stateType>
151.9177 +                     </stateTypes>
151.9178 +                     <contentMargins top="0" bottom="0" left="0" right="0"/>
151.9179 +                     <style>
151.9180 +                        <textForeground/>
151.9181 +                        <textBackground/>
151.9182 +                        <background/>
151.9183 +                        <cacheSettingsInherited>false</cacheSettingsInherited>
151.9184 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.9185 +                        <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.9186 +                        <uiproperties>
151.9187 +                           <uiProperty name="test" type="STRING" value="am InternalFrameTitlePane.menuButton"/>
151.9188 +                        </uiproperties>
151.9189 +                     </style>
151.9190 +                     <backgroundStates/>
151.9191 +                     <foregroundStates/>
151.9192 +                     <borderStates/>
151.9193 +                     <regions>
151.9194 +                        <uiIconRegion name="Icon" subregion="true" key="icon">
151.9195 +                                 <contentMargins top="9" bottom="9" left="10" right="9"/>
151.9196 +                                 <style>
151.9197 +                                    <textForeground/>
151.9198 +                                    <textBackground/>
151.9199 +                                    <background/>
151.9200 +                                    <cacheSettingsInherited>false</cacheSettingsInherited>
151.9201 +                                    <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.9202 +                                    <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.9203 +                                    <uiproperties/>
151.9204 +                                 </style>
151.9205 +                                 <backgroundStates>
151.9206 +                                    <state stateKeys="Enabled">
151.9207 +                                       <style>
151.9208 +                                          <textForeground/>
151.9209 +                                          <textBackground/>
151.9210 +                                          <background/>
151.9211 +                                          <uiproperties/>
151.9212 +                                       </style>
151.9213 +                                       <canvas>
151.9214 +                                          <size width="19" height="18"/>
151.9215 +                                          <nextLayerNameIndex>2</nextLayerNameIndex>
151.9216 +                                          <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.9217 +                                          <layer name="Layer 1">
151.9218 +                                             <opacity>1.0</opacity>
151.9219 +                                             <fillOpacity>1.0</fillOpacity>
151.9220 +                                             <blendingMode>NORMAL</blendingMode>
151.9221 +                                             <locked>false</locked>
151.9222 +                                             <visible>true</visible>
151.9223 +                                             <shapes>
151.9224 +                                                <path>
151.9225 +                                                   <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="0"/>
151.9226 +                                                   <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9227 +                                                   <points>
151.9228 +                                                      <point x="6.0" y="6.0" cp1x="6.0" cp1y="6.0" cp2x="6.0" cp2y="6.0"/>
151.9229 +                                                      <point x="13.0" y="6.0" cp1x="13.0" cp1y="6.0" cp2x="13.0" cp2y="6.0"/>
151.9230 +                                                      <point x="9.500000000000004" y="10.95" cp1x="9.500000000000004" cp1y="10.95" cp2x="9.500000000000004" cp2y="10.95"/>
151.9231 +                                                   </points>
151.9232 +                                                </path>
151.9233 +                                                <path>
151.9234 +                                                   <gradient cycleMethod="NO_CYCLE">
151.9235 +                                                      <stop position="0.0" midpoint="0.5">
151.9236 +                                                         <matte red="54" green="66" blue="88" alpha="123" uiDefaultParentName="nimbusBase" hueOffset="0.029191494" saturationOffset="-0.24935067" brightnessOffset="-0.20392159" alphaOffset="-132"/>
151.9237 +                                                      </stop>
151.9238 +                                                      <stop position="0.48579547" midpoint="0.5">
151.9239 +                                                         <matte red="54" green="66" blue="88" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.029191494" saturationOffset="-0.24935067" brightnessOffset="-0.20392159" alphaOffset="0"/>
151.9240 +                                                      </stop>
151.9241 +                                                      <stop position="1.0" midpoint="0.5">
151.9242 +                                                         <matte red="54" green="66" blue="88" alpha="132" uiDefaultParentName="nimbusBase" hueOffset="0.029191494" saturationOffset="-0.24935067" brightnessOffset="-0.20392159" alphaOffset="-123"/>
151.9243 +                                                      </stop>
151.9244 +                                                   </gradient>
151.9245 +                                                   <paintPoints x1="0.5071428571428569" y1="0.09499999999999999" x2="0.49285714285714344" y2="0.9099999999999999"/>
151.9246 +                                                   <points>
151.9247 +                                                      <point x="6.0" y="8.0" cp1x="6.0" cp1y="8.0" cp2x="6.0" cp2y="8.0"/>
151.9248 +                                                      <point x="13.0" y="8.0" cp1x="13.0" cp1y="8.0" cp2x="13.0" cp2y="8.0"/>
151.9249 +                                                      <point x="9.524999999999995" y="12.975" cp1x="9.524999999999995" cp1y="12.975" cp2x="9.524999999999995" cp2y="12.975"/>
151.9250 +                                                   </points>
151.9251 +                                                </path>
151.9252 +                                                <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.9253 +                                                   <gradient cycleMethod="NO_CYCLE">
151.9254 +                                                      <stop position="0.0" midpoint="0.5">
151.9255 +                                                         <matte red="157" green="163" blue="174" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.029191494" saturationOffset="-0.53801316" brightnessOffset="0.13333333" alphaOffset="0"/>
151.9256 +                                                      </stop>
151.9257 +                                                      <stop position="0.53977275" midpoint="0.5">
151.9258 +                                                         <matte red="87" green="97" blue="116" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.030543745" saturationOffset="-0.3857143" brightnessOffset="-0.09411767" alphaOffset="0"/>
151.9259 +                                                      </stop>
151.9260 +                                                      <stop position="0.6505682" midpoint="0.5">
151.9261 +                                                         <matte red="86" green="96" blue="115" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.030543745" saturationOffset="-0.3835404" brightnessOffset="-0.09803924" alphaOffset="0"/>
151.9262 +                                                      </stop>
151.9263 +                                                      <stop position="1.0" midpoint="0.5">
151.9264 +                                                         <matte red="113" green="123" blue="142" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.030543745" saturationOffset="-0.43148893" brightnessOffset="0.007843137" alphaOffset="0"/>
151.9265 +                                                      </stop>
151.9266 +                                                   </gradient>
151.9267 +                                                   <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.9268 +                                                </rectangle>
151.9269 +                                                <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.9270 +                                                   <gradient cycleMethod="NO_CYCLE">
151.9271 +                                                      <stop position="0.0" midpoint="0.5">
151.9272 +                                                         <matte red="0" green="0" blue="12" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="0.3642857" brightnessOffset="-0.5019608" alphaOffset="0"/>
151.9273 +                                                      </stop>
151.9274 +                                                      <stop position="1.0" midpoint="0.5">
151.9275 +                                                         <matte red="86" green="96" blue="115" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.030543745" saturationOffset="-0.3835404" brightnessOffset="-0.09803924" alphaOffset="0"/>
151.9276 +                                                      </stop>
151.9277 +                                                   </gradient>
151.9278 +                                                   <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.9279 +                                                </rectangle>
151.9280 +                                                <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.9281 +                                                   <matte red="83" green="86" blue="93" alpha="70" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.0029994324" brightnessOffset="-0.38039216" alphaOffset="-185"/>
151.9282 +                                                   <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9283 +                                                </rectangle>
151.9284 +                                             </shapes>
151.9285 +                                             <effects/>
151.9286 +                                          </layer>
151.9287 +                                          <templateLayer fileName="113d0d626ac.png">
151.9288 +                                             <layer name="Template" type="template">
151.9289 +                                                <opacity>1.0</opacity>
151.9290 +                                                <fillOpacity>1.0</fillOpacity>
151.9291 +                                                <blendingMode>NORMAL</blendingMode>
151.9292 +                                                <locked>false</locked>
151.9293 +                                                <visible>false</visible>
151.9294 +                                                <shapes/>
151.9295 +                                                <effects/>
151.9296 +                                             </layer>
151.9297 +                                          </templateLayer>
151.9298 +                                       </canvas>
151.9299 +                                    </state>
151.9300 +                                    <state stateKeys="Disabled">
151.9301 +                                       <style>
151.9302 +                                          <textForeground/>
151.9303 +                                          <textBackground/>
151.9304 +                                          <background/>
151.9305 +                                          <uiproperties/>
151.9306 +                                       </style>
151.9307 +                                       <canvas>
151.9308 +                                          <size width="19" height="18"/>
151.9309 +                                          <nextLayerNameIndex>2</nextLayerNameIndex>
151.9310 +                                          <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.9311 +                                          <layer name="Layer 1">
151.9312 +                                             <opacity>1.0</opacity>
151.9313 +                                             <fillOpacity>1.0</fillOpacity>
151.9314 +                                             <blendingMode>NORMAL</blendingMode>
151.9315 +                                             <locked>false</locked>
151.9316 +                                             <visible>true</visible>
151.9317 +                                             <shapes>
151.9318 +                                                <path>
151.9319 +                                                   <matte red="189" green="193" blue="201" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5760128" brightnessOffset="0.23921567" alphaOffset="0"/>
151.9320 +                                                   <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9321 +                                                   <points>
151.9322 +                                                      <point x="6.0" y="6.0" cp1x="6.0" cp1y="6.0" cp2x="6.0" cp2y="6.0"/>
151.9323 +                                                      <point x="13.0" y="6.0" cp1x="13.0" cp1y="6.0" cp2x="13.0" cp2y="6.0"/>
151.9324 +                                                      <point x="9.500000000000004" y="10.95" cp1x="9.500000000000004" cp1y="10.95" cp2x="9.500000000000004" cp2y="10.95"/>
151.9325 +                                                   </points>
151.9326 +                                                </path>
151.9327 +                                                <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.9328 +                                                   <gradient cycleMethod="NO_CYCLE">
151.9329 +                                                      <stop position="0.0" midpoint="0.5">
151.9330 +                                                         <matte red="185" green="188" blue="193" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.02551502" saturationOffset="-0.5942635" brightnessOffset="0.20784312" alphaOffset="0"/>
151.9331 +                                                      </stop>
151.9332 +                                                      <stop position="0.62215906" midpoint="0.5">
151.9333 +                                                         <matte red="158" green="163" blue="173" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5490091" brightnessOffset="0.12941176" alphaOffset="0"/>
151.9334 +                                                      </stop>
151.9335 +                                                      <stop position="1.0" midpoint="0.5">
151.9336 +                                                         <matte red="154" green="159" blue="169" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5469569" brightnessOffset="0.11372548" alphaOffset="0"/>
151.9337 +                                                      </stop>
151.9338 +                                                   </gradient>
151.9339 +                                                   <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.9340 +                                                </rectangle>
151.9341 +                                                <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.9342 +                                                   <matte red="83" green="86" blue="93" alpha="47" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.0029994324" brightnessOffset="-0.38039216" alphaOffset="-208"/>
151.9343 +                                                   <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9344 +                                                </rectangle>
151.9345 +                                             </shapes>
151.9346 +                                             <effects/>
151.9347 +                                          </layer>
151.9348 +                                          <templateLayer fileName="113d0e8c4f9.png">
151.9349 +                                             <layer name="Template" type="template">
151.9350 +                                                <opacity>1.0</opacity>
151.9351 +                                                <fillOpacity>1.0</fillOpacity>
151.9352 +                                                <blendingMode>NORMAL</blendingMode>
151.9353 +                                                <locked>false</locked>
151.9354 +                                                <visible>false</visible>
151.9355 +                                                <shapes/>
151.9356 +                                                <effects/>
151.9357 +                                             </layer>
151.9358 +                                          </templateLayer>
151.9359 +                                       </canvas>
151.9360 +                                    </state>
151.9361 +                                    <state stateKeys="MouseOver">
151.9362 +                                       <style>
151.9363 +                                          <textForeground/>
151.9364 +                                          <textBackground/>
151.9365 +                                          <background/>
151.9366 +                                          <uiproperties/>
151.9367 +                                       </style>
151.9368 +                                       <canvas>
151.9369 +                                          <size width="19" height="18"/>
151.9370 +                                          <nextLayerNameIndex>2</nextLayerNameIndex>
151.9371 +                                          <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.9372 +                                          <layer name="Layer 1">
151.9373 +                                             <opacity>1.0</opacity>
151.9374 +                                             <fillOpacity>1.0</fillOpacity>
151.9375 +                                             <blendingMode>NORMAL</blendingMode>
151.9376 +                                             <locked>false</locked>
151.9377 +                                             <visible>true</visible>
151.9378 +                                             <shapes>
151.9379 +                                                <path>
151.9380 +                                                   <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="0"/>
151.9381 +                                                   <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9382 +                                                   <points>
151.9383 +                                                      <point x="6.0" y="6.0" cp1x="6.0" cp1y="6.0" cp2x="6.0" cp2y="6.0"/>
151.9384 +                                                      <point x="13.0" y="6.0" cp1x="13.0" cp1y="6.0" cp2x="13.0" cp2y="6.0"/>
151.9385 +                                                      <point x="9.500000000000004" y="10.95" cp1x="9.500000000000004" cp1y="10.95" cp2x="9.500000000000004" cp2y="10.95"/>
151.9386 +                                                   </points>
151.9387 +                                                </path>
151.9388 +                                                <path>
151.9389 +                                                   <gradient cycleMethod="NO_CYCLE">
151.9390 +                                                      <stop position="0.0" midpoint="0.5">
151.9391 +                                                         <matte red="77" green="88" blue="111" alpha="123" uiDefaultParentName="nimbusBase" hueOffset="0.03409344" saturationOffset="-0.329408" brightnessOffset="-0.11372551" alphaOffset="-132"/>
151.9392 +                                                      </stop>
151.9393 +                                                      <stop position="0.48579547" midpoint="0.5">
151.9394 +                                                         <matte red="77" green="88" blue="111" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.03409344" saturationOffset="-0.329408" brightnessOffset="-0.11372551" alphaOffset="0"/>
151.9395 +                                                      </stop>
151.9396 +                                                      <stop position="1.0" midpoint="0.5">
151.9397 +                                                         <matte red="77" green="88" blue="111" alpha="132" uiDefaultParentName="nimbusBase" hueOffset="0.03409344" saturationOffset="-0.329408" brightnessOffset="-0.11372551" alphaOffset="-123"/>
151.9398 +                                                      </stop>
151.9399 +                                                   </gradient>
151.9400 +                                                   <paintPoints x1="0.5071428571428569" y1="0.09499999999999999" x2="0.49285714285714344" y2="0.9099999999999999"/>
151.9401 +                                                   <points>
151.9402 +                                                      <point x="6.0" y="8.0" cp1x="6.0" cp1y="8.0" cp2x="6.0" cp2y="8.0"/>
151.9403 +                                                      <point x="13.0" y="8.0" cp1x="13.0" cp1y="8.0" cp2x="13.0" cp2y="8.0"/>
151.9404 +                                                      <point x="9.524999999999995" y="12.975" cp1x="9.524999999999995" cp1y="12.975" cp2x="9.524999999999995" cp2y="12.975"/>
151.9405 +                                                   </points>
151.9406 +                                                </path>
151.9407 +                                                <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.9408 +                                                   <gradient cycleMethod="NO_CYCLE">
151.9409 +                                                      <stop position="0.0" midpoint="0.5">
151.9410 +                                                         <matte red="168" green="174" blue="185" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.029191494" saturationOffset="-0.5438224" brightnessOffset="0.17647058" alphaOffset="0"/>
151.9411 +                                                      </stop>
151.9412 +                                                      <stop position="0.53977275" midpoint="0.5">
151.9413 +                                                         <matte red="105" green="115" blue="134" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.030543745" saturationOffset="-0.41929638" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.9414 +                                                      </stop>
151.9415 +                                                      <stop position="0.6505682" midpoint="0.5">
151.9416 +                                                         <matte red="105" green="115" blue="134" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.030543745" saturationOffset="-0.41929638" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.9417 +                                                      </stop>
151.9418 +                                                      <stop position="1.0" midpoint="0.5">
151.9419 +                                                         <matte red="132" green="142" blue="161" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.030543745" saturationOffset="-0.45559007" brightnessOffset="0.082352936" alphaOffset="0"/>
151.9420 +                                                      </stop>
151.9421 +                                                   </gradient>
151.9422 +                                                   <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.9423 +                                                </rectangle>
151.9424 +                                                <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.9425 +                                                   <gradient cycleMethod="NO_CYCLE">
151.9426 +                                                      <stop position="0.0" midpoint="0.5">
151.9427 +                                                         <matte red="0" green="0" blue="15" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="0.3642857" brightnessOffset="-0.4901961" alphaOffset="0"/>
151.9428 +                                                      </stop>
151.9429 +                                                      <stop position="1.0" midpoint="0.5">
151.9430 +                                                         <matte red="44" green="56" blue="80" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.1857143" brightnessOffset="-0.23529413" alphaOffset="0"/>
151.9431 +                                                      </stop>
151.9432 +                                                   </gradient>
151.9433 +                                                   <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.9434 +                                                </rectangle>
151.9435 +                                                <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.9436 +                                                   <matte red="83" green="86" blue="93" alpha="70" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.0029994324" brightnessOffset="-0.38039216" alphaOffset="-185"/>
151.9437 +                                                   <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9438 +                                                </rectangle>
151.9439 +                                             </shapes>
151.9440 +                                             <effects/>
151.9441 +                                          </layer>
151.9442 +                                          <templateLayer fileName="113d0eacd3f.png">
151.9443 +                                             <layer name="Template" type="template">
151.9444 +                                                <opacity>1.0</opacity>
151.9445 +                                                <fillOpacity>1.0</fillOpacity>
151.9446 +                                                <blendingMode>NORMAL</blendingMode>
151.9447 +                                                <locked>false</locked>
151.9448 +                                                <visible>false</visible>
151.9449 +                                                <shapes/>
151.9450 +                                                <effects/>
151.9451 +                                             </layer>
151.9452 +                                          </templateLayer>
151.9453 +                                       </canvas>
151.9454 +                                    </state>
151.9455 +                                    <state stateKeys="Pressed">
151.9456 +                                       <style>
151.9457 +                                          <textForeground/>
151.9458 +                                          <textBackground/>
151.9459 +                                          <background/>
151.9460 +                                          <uiproperties/>
151.9461 +                                       </style>
151.9462 +                                       <canvas>
151.9463 +                                          <size width="19" height="18"/>
151.9464 +                                          <nextLayerNameIndex>2</nextLayerNameIndex>
151.9465 +                                          <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.9466 +                                          <layer name="Layer 1">
151.9467 +                                             <opacity>1.0</opacity>
151.9468 +                                             <fillOpacity>1.0</fillOpacity>
151.9469 +                                             <blendingMode>NORMAL</blendingMode>
151.9470 +                                             <locked>false</locked>
151.9471 +                                             <visible>true</visible>
151.9472 +                                             <shapes>
151.9473 +                                                <path>
151.9474 +                                                   <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="0"/>
151.9475 +                                                   <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9476 +                                                   <points>
151.9477 +                                                      <point x="6.0" y="6.0" cp1x="6.0" cp1y="6.0" cp2x="6.0" cp2y="6.0"/>
151.9478 +                                                      <point x="13.0" y="6.0" cp1x="13.0" cp1y="6.0" cp2x="13.0" cp2y="6.0"/>
151.9479 +                                                      <point x="9.500000000000004" y="10.95" cp1x="9.500000000000004" cp1y="10.95" cp2x="9.500000000000004" cp2y="10.95"/>
151.9480 +                                                   </points>
151.9481 +                                                </path>
151.9482 +                                                <path>
151.9483 +                                                   <gradient cycleMethod="NO_CYCLE">
151.9484 +                                                      <stop position="0.0" midpoint="0.5">
151.9485 +                                                         <matte red="16" green="30" blue="56" alpha="123" uiDefaultParentName="nimbusBase" hueOffset="0.029681683" saturationOffset="0.07857144" brightnessOffset="-0.3294118" alphaOffset="-132"/>
151.9486 +                                                      </stop>
151.9487 +                                                      <stop position="0.48579547" midpoint="0.5">
151.9488 +                                                         <matte red="16" green="30" blue="56" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.029681683" saturationOffset="0.07857144" brightnessOffset="-0.3294118" alphaOffset="0"/>
151.9489 +                                                      </stop>
151.9490 +                                                      <stop position="1.0" midpoint="0.5">
151.9491 +                                                         <matte red="16" green="30" blue="56" alpha="132" uiDefaultParentName="nimbusBase" hueOffset="0.029681683" saturationOffset="0.07857144" brightnessOffset="-0.3294118" alphaOffset="-123"/>
151.9492 +                                                      </stop>
151.9493 +                                                   </gradient>
151.9494 +                                                   <paintPoints x1="0.5071428571428569" y1="0.09499999999999999" x2="0.49285714285714344" y2="0.9099999999999999"/>
151.9495 +                                                   <points>
151.9496 +                                                      <point x="6.0" y="8.0" cp1x="6.0" cp1y="8.0" cp2x="6.0" cp2y="8.0"/>
151.9497 +                                                      <point x="13.0" y="8.0" cp1x="13.0" cp1y="8.0" cp2x="13.0" cp2y="8.0"/>
151.9498 +                                                      <point x="9.524999999999995" y="12.975" cp1x="9.524999999999995" cp1y="12.975" cp2x="9.524999999999995" cp2y="12.975"/>
151.9499 +                                                   </points>
151.9500 +                                                </path>
151.9501 +                                                <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.9502 +                                                   <gradient cycleMethod="NO_CYCLE">
151.9503 +                                                      <stop position="0.0" midpoint="0.5">
151.9504 +                                                         <matte red="112" green="120" blue="136" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.4592437" brightnessOffset="-0.015686274" alphaOffset="0"/>
151.9505 +                                                      </stop>
151.9506 +                                                      <stop position="0.53977275" midpoint="0.5">
151.9507 +                                                         <matte red="56" green="68" blue="90" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.029191494" saturationOffset="-0.2579365" brightnessOffset="-0.19607845" alphaOffset="0"/>
151.9508 +                                                      </stop>
151.9509 +                                                      <stop position="0.6505682" midpoint="0.5">
151.9510 +                                                         <matte red="56" green="68" blue="90" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.029191494" saturationOffset="-0.2579365" brightnessOffset="-0.19607845" alphaOffset="0"/>
151.9511 +                                                      </stop>
151.9512 +                                                      <stop position="1.0" midpoint="0.5">
151.9513 +                                                         <matte red="72" green="83" blue="106" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.03409344" saturationOffset="-0.3149596" brightnessOffset="-0.13333336" alphaOffset="0"/>
151.9514 +                                                      </stop>
151.9515 +                                                   </gradient>
151.9516 +                                                   <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.9517 +                                                </rectangle>
151.9518 +                                                <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.9519 +                                                   <gradient cycleMethod="NO_CYCLE">
151.9520 +                                                      <stop position="0.0" midpoint="0.5">
151.9521 +                                                         <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.9522 +                                                      </stop>
151.9523 +                                                      <stop position="1.0" midpoint="0.5">
151.9524 +                                                         <matte red="13" green="27" blue="54" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.031104386" saturationOffset="0.12354499" brightnessOffset="-0.33725494" alphaOffset="0"/>
151.9525 +                                                      </stop>
151.9526 +                                                   </gradient>
151.9527 +                                                   <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.9528 +                                                </rectangle>
151.9529 +                                                <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.9530 +                                                   <matte red="83" green="86" blue="93" alpha="70" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.0029994324" brightnessOffset="-0.38039216" alphaOffset="-185"/>
151.9531 +                                                   <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9532 +                                                </rectangle>
151.9533 +                                             </shapes>
151.9534 +                                             <effects/>
151.9535 +                                          </layer>
151.9536 +                                          <templateLayer fileName="113d0ec1755.png">
151.9537 +                                             <layer name="Template" type="template">
151.9538 +                                                <opacity>1.0</opacity>
151.9539 +                                                <fillOpacity>1.0</fillOpacity>
151.9540 +                                                <blendingMode>NORMAL</blendingMode>
151.9541 +                                                <locked>false</locked>
151.9542 +                                                <visible>false</visible>
151.9543 +                                                <shapes/>
151.9544 +                                                <effects/>
151.9545 +                                             </layer>
151.9546 +                                          </templateLayer>
151.9547 +                                       </canvas>
151.9548 +                                    </state>
151.9549 +                                    <state stateKeys="Enabled+WindowNotFocused">
151.9550 +                                       <style>
151.9551 +                                          <textForeground/>
151.9552 +                                          <textBackground/>
151.9553 +                                          <background/>
151.9554 +                                          <uiproperties/>
151.9555 +                                       </style>
151.9556 +                                       <canvas>
151.9557 +                                          <size width="19" height="18"/>
151.9558 +                                          <nextLayerNameIndex>2</nextLayerNameIndex>
151.9559 +                                          <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.9560 +                                          <layer name="Layer 1">
151.9561 +                                             <opacity>1.0</opacity>
151.9562 +                                             <fillOpacity>1.0</fillOpacity>
151.9563 +                                             <blendingMode>NORMAL</blendingMode>
151.9564 +                                             <locked>false</locked>
151.9565 +                                             <visible>true</visible>
151.9566 +                                             <shapes>
151.9567 +                                                <path>
151.9568 +                                                   <matte red="100" green="104" blue="110" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.54480517" brightnessOffset="-0.11764708" alphaOffset="0"/>
151.9569 +                                                   <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9570 +                                                   <points>
151.9571 +                                                      <point x="6.0" y="6.0" cp1x="6.0" cp1y="6.0" cp2x="6.0" cp2y="6.0"/>
151.9572 +                                                      <point x="13.0" y="6.0" cp1x="13.0" cp1y="6.0" cp2x="13.0" cp2y="6.0"/>
151.9573 +                                                      <point x="9.500000000000004" y="10.95" cp1x="9.500000000000004" cp1y="10.95" cp2x="9.500000000000004" cp2y="10.95"/>
151.9574 +                                                   </points>
151.9575 +                                                </path>
151.9576 +                                                <path>
151.9577 +                                                   <gradient cycleMethod="NO_CYCLE">
151.9578 +                                                      <stop position="0.0" midpoint="0.5">
151.9579 +                                                         <matte red="181" green="185" blue="192" alpha="123" uiDefaultParentName="nimbusBase" hueOffset="0.027408898" saturationOffset="-0.5784226" brightnessOffset="0.20392156" alphaOffset="-132"/>
151.9580 +                                                      </stop>
151.9581 +                                                      <stop position="0.48579547" midpoint="0.5">
151.9582 +                                                         <matte red="148" green="151" blue="159" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.042560518" saturationOffset="-0.5665319" brightnessOffset="0.0745098" alphaOffset="0"/>
151.9583 +                                                      </stop>
151.9584 +                                                      <stop position="1.0" midpoint="0.5">
151.9585 +                                                         <matte red="169" green="173" blue="182" alpha="132" uiDefaultParentName="nimbusBase" hueOffset="0.036732912" saturationOffset="-0.5642857" brightnessOffset="0.16470587" alphaOffset="-123"/>
151.9586 +                                                      </stop>
151.9587 +                                                   </gradient>
151.9588 +                                                   <paintPoints x1="0.5071428571428569" y1="0.09499999999999999" x2="0.49285714285714344" y2="0.9099999999999999"/>
151.9589 +                                                   <points>
151.9590 +                                                      <point x="6.0" y="7.0" cp1x="6.0" cp1y="7.0" cp2x="6.0" cp2y="7.0"/>
151.9591 +                                                      <point x="13.0" y="7.0" cp1x="13.0" cp1y="7.0" cp2x="13.0" cp2y="7.0"/>
151.9592 +                                                      <point x="9.409090909090903" y="11.795454545454545" cp1x="9.409090909090903" cp1y="11.795454545454545" cp2x="9.409090909090903" cp2y="11.795454545454545"/>
151.9593 +                                                   </points>
151.9594 +                                                </path>
151.9595 +                                                <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999995">
151.9596 +                                                   <gradient cycleMethod="NO_CYCLE">
151.9597 +                                                      <stop position="0.0" midpoint="0.5">
151.9598 +                                                         <matte red="219" green="221" blue="224" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.6133929" brightnessOffset="0.32941175" alphaOffset="0"/>
151.9599 +                                                      </stop>
151.9600 +                                                      <stop position="0.53977275" midpoint="0.5">
151.9601 +                                                         <matte red="188" green="191" blue="199" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.042560518" saturationOffset="-0.5804379" brightnessOffset="0.23137254" alphaOffset="0"/>
151.9602 +                                                      </stop>
151.9603 +                                                      <stop position="0.6505682" midpoint="0.5">
151.9604 +                                                         <matte red="183" green="187" blue="195" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.57417583" brightnessOffset="0.21568626" alphaOffset="0"/>
151.9605 +                                                      </stop>
151.9606 +                                                      <stop position="1.0" midpoint="0.5">
151.9607 +                                                         <matte red="189" green="193" blue="201" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5760128" brightnessOffset="0.23921567" alphaOffset="0"/>
151.9608 +                                                      </stop>
151.9609 +                                                   </gradient>
151.9610 +                                                   <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.9611 +                                                </rectangle>
151.9612 +                                                <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.9613 +                                                   <gradient cycleMethod="NO_CYCLE">
151.9614 +                                                      <stop position="0.0" midpoint="0.5">
151.9615 +                                                         <matte red="136" green="141" blue="151" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.53637654" brightnessOffset="0.043137252" alphaOffset="0"/>
151.9616 +                                                      </stop>
151.9617 +                                                      <stop position="1.0" midpoint="0.5">
151.9618 +                                                         <matte red="95" green="100" blue="110" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.49935067" brightnessOffset="-0.11764708" alphaOffset="0"/>
151.9619 +                                                      </stop>
151.9620 +                                                      <stop position="1.0" midpoint="0.5">
151.9621 +                                                         <matte red="95" green="100" blue="110" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.49935067" brightnessOffset="-0.11764708" alphaOffset="0"/>
151.9622 +                                                      </stop>
151.9623 +                                                   </gradient>
151.9624 +                                                   <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.9625 +                                                </rectangle>
151.9626 +                                             </shapes>
151.9627 +                                             <effects/>
151.9628 +                                          </layer>
151.9629 +                                          <templateLayer fileName="113fc39fc2b.png">
151.9630 +                                             <layer name="Template" type="template">
151.9631 +                                                <opacity>1.0</opacity>
151.9632 +                                                <fillOpacity>1.0</fillOpacity>
151.9633 +                                                <blendingMode>NORMAL</blendingMode>
151.9634 +                                                <locked>false</locked>
151.9635 +                                                <visible>false</visible>
151.9636 +                                                <shapes/>
151.9637 +                                                <effects/>
151.9638 +                                             </layer>
151.9639 +                                          </templateLayer>
151.9640 +                                       </canvas>
151.9641 +                                    </state>
151.9642 +                                    <state stateKeys="MouseOver+WindowNotFocused">
151.9643 +                                       <style>
151.9644 +                                          <textForeground/>
151.9645 +                                          <textBackground/>
151.9646 +                                          <background/>
151.9647 +                                          <uiproperties/>
151.9648 +                                       </style>
151.9649 +                                       <canvas>
151.9650 +                                          <size width="19" height="18"/>
151.9651 +                                          <nextLayerNameIndex>2</nextLayerNameIndex>
151.9652 +                                          <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.9653 +                                          <layer name="Layer 1">
151.9654 +                                             <opacity>1.0</opacity>
151.9655 +                                             <fillOpacity>1.0</fillOpacity>
151.9656 +                                             <blendingMode>NORMAL</blendingMode>
151.9657 +                                             <locked>false</locked>
151.9658 +                                             <visible>true</visible>
151.9659 +                                             <shapes>
151.9660 +                                                <path>
151.9661 +                                                   <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="0"/>
151.9662 +                                                   <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9663 +                                                   <points>
151.9664 +                                                      <point x="6.0" y="6.0" cp1x="6.0" cp1y="6.0" cp2x="6.0" cp2y="6.0"/>
151.9665 +                                                      <point x="13.0" y="6.0" cp1x="13.0" cp1y="6.0" cp2x="13.0" cp2y="6.0"/>
151.9666 +                                                      <point x="9.500000000000004" y="10.95" cp1x="9.500000000000004" cp1y="10.95" cp2x="9.500000000000004" cp2y="10.95"/>
151.9667 +                                                   </points>
151.9668 +                                                </path>
151.9669 +                                                <path>
151.9670 +                                                   <gradient cycleMethod="NO_CYCLE">
151.9671 +                                                      <stop position="0.0" midpoint="0.5">
151.9672 +                                                         <matte red="77" green="88" blue="111" alpha="123" uiDefaultParentName="nimbusBase" hueOffset="0.03409344" saturationOffset="-0.329408" brightnessOffset="-0.11372551" alphaOffset="-132"/>
151.9673 +                                                      </stop>
151.9674 +                                                      <stop position="0.48579547" midpoint="0.5">
151.9675 +                                                         <matte red="77" green="88" blue="111" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.03409344" saturationOffset="-0.329408" brightnessOffset="-0.11372551" alphaOffset="0"/>
151.9676 +                                                      </stop>
151.9677 +                                                      <stop position="1.0" midpoint="0.5">
151.9678 +                                                         <matte red="77" green="88" blue="111" alpha="132" uiDefaultParentName="nimbusBase" hueOffset="0.03409344" saturationOffset="-0.329408" brightnessOffset="-0.11372551" alphaOffset="-123"/>
151.9679 +                                                      </stop>
151.9680 +                                                   </gradient>
151.9681 +                                                   <paintPoints x1="0.5071428571428569" y1="0.09499999999999999" x2="0.49285714285714344" y2="0.9099999999999999"/>
151.9682 +                                                   <points>
151.9683 +                                                      <point x="6.0" y="8.0" cp1x="6.0" cp1y="8.0" cp2x="6.0" cp2y="8.0"/>
151.9684 +                                                      <point x="13.0" y="8.0" cp1x="13.0" cp1y="8.0" cp2x="13.0" cp2y="8.0"/>
151.9685 +                                                      <point x="9.524999999999995" y="12.975" cp1x="9.524999999999995" cp1y="12.975" cp2x="9.524999999999995" cp2y="12.975"/>
151.9686 +                                                   </points>
151.9687 +                                                </path>
151.9688 +                                                <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.9689 +                                                   <gradient cycleMethod="NO_CYCLE">
151.9690 +                                                      <stop position="0.0" midpoint="0.5">
151.9691 +                                                         <matte red="168" green="174" blue="185" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.029191494" saturationOffset="-0.5438224" brightnessOffset="0.17647058" alphaOffset="0"/>
151.9692 +                                                      </stop>
151.9693 +                                                      <stop position="0.53977275" midpoint="0.5">
151.9694 +                                                         <matte red="105" green="115" blue="134" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.030543745" saturationOffset="-0.41929638" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.9695 +                                                      </stop>
151.9696 +                                                      <stop position="0.6505682" midpoint="0.5">
151.9697 +                                                         <matte red="105" green="115" blue="134" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.030543745" saturationOffset="-0.41929638" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.9698 +                                                      </stop>
151.9699 +                                                      <stop position="1.0" midpoint="0.5">
151.9700 +                                                         <matte red="132" green="142" blue="161" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.030543745" saturationOffset="-0.45559007" brightnessOffset="0.082352936" alphaOffset="0"/>
151.9701 +                                                      </stop>
151.9702 +                                                   </gradient>
151.9703 +                                                   <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.9704 +                                                </rectangle>
151.9705 +                                                <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.9706 +                                                   <gradient cycleMethod="NO_CYCLE">
151.9707 +                                                      <stop position="0.0" midpoint="0.5">
151.9708 +                                                         <matte red="0" green="0" blue="15" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="0.3642857" brightnessOffset="-0.4901961" alphaOffset="0"/>
151.9709 +                                                      </stop>
151.9710 +                                                      <stop position="1.0" midpoint="0.5">
151.9711 +                                                         <matte red="44" green="56" blue="80" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.1857143" brightnessOffset="-0.23529413" alphaOffset="0"/>
151.9712 +                                                      </stop>
151.9713 +                                                   </gradient>
151.9714 +                                                   <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.9715 +                                                </rectangle>
151.9716 +                                                <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.9717 +                                                   <matte red="83" green="86" blue="93" alpha="70" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.0029994324" brightnessOffset="-0.38039216" alphaOffset="-185"/>
151.9718 +                                                   <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9719 +                                                </rectangle>
151.9720 +                                             </shapes>
151.9721 +                                             <effects/>
151.9722 +                                          </layer>
151.9723 +                                          <templateLayer fileName="113d0eacd3f.png">
151.9724 +                                             <layer name="Template" type="template">
151.9725 +                                                <opacity>1.0</opacity>
151.9726 +                                                <fillOpacity>1.0</fillOpacity>
151.9727 +                                                <blendingMode>NORMAL</blendingMode>
151.9728 +                                                <locked>false</locked>
151.9729 +                                                <visible>false</visible>
151.9730 +                                                <shapes/>
151.9731 +                                                <effects/>
151.9732 +                                             </layer>
151.9733 +                                          </templateLayer>
151.9734 +                                       </canvas>
151.9735 +                                    </state>
151.9736 +                                    <state stateKeys="Pressed+WindowNotFocused">
151.9737 +                                       <style>
151.9738 +                                          <textForeground/>
151.9739 +                                          <textBackground/>
151.9740 +                                          <background/>
151.9741 +                                          <uiproperties/>
151.9742 +                                       </style>
151.9743 +                                       <canvas>
151.9744 +                                          <size width="19" height="18"/>
151.9745 +                                          <nextLayerNameIndex>2</nextLayerNameIndex>
151.9746 +                                          <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.9747 +                                          <layer name="Layer 1">
151.9748 +                                             <opacity>1.0</opacity>
151.9749 +                                             <fillOpacity>1.0</fillOpacity>
151.9750 +                                             <blendingMode>NORMAL</blendingMode>
151.9751 +                                             <locked>false</locked>
151.9752 +                                             <visible>true</visible>
151.9753 +                                             <shapes>
151.9754 +                                                <path>
151.9755 +                                                   <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="0"/>
151.9756 +                                                   <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9757 +                                                   <points>
151.9758 +                                                      <point x="6.0" y="6.0" cp1x="6.0" cp1y="6.0" cp2x="6.0" cp2y="6.0"/>
151.9759 +                                                      <point x="13.0" y="6.0" cp1x="13.0" cp1y="6.0" cp2x="13.0" cp2y="6.0"/>
151.9760 +                                                      <point x="9.500000000000004" y="10.95" cp1x="9.500000000000004" cp1y="10.95" cp2x="9.500000000000004" cp2y="10.95"/>
151.9761 +                                                   </points>
151.9762 +                                                </path>
151.9763 +                                                <path>
151.9764 +                                                   <gradient cycleMethod="NO_CYCLE">
151.9765 +                                                      <stop position="0.0" midpoint="0.5">
151.9766 +                                                         <matte red="16" green="30" blue="56" alpha="123" uiDefaultParentName="nimbusBase" hueOffset="0.029681683" saturationOffset="0.07857144" brightnessOffset="-0.3294118" alphaOffset="-132"/>
151.9767 +                                                      </stop>
151.9768 +                                                      <stop position="0.48579547" midpoint="0.5">
151.9769 +                                                         <matte red="16" green="30" blue="56" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.029681683" saturationOffset="0.07857144" brightnessOffset="-0.3294118" alphaOffset="0"/>
151.9770 +                                                      </stop>
151.9771 +                                                      <stop position="1.0" midpoint="0.5">
151.9772 +                                                         <matte red="16" green="30" blue="56" alpha="132" uiDefaultParentName="nimbusBase" hueOffset="0.029681683" saturationOffset="0.07857144" brightnessOffset="-0.3294118" alphaOffset="-123"/>
151.9773 +                                                      </stop>
151.9774 +                                                   </gradient>
151.9775 +                                                   <paintPoints x1="0.5071428571428569" y1="0.09499999999999999" x2="0.49285714285714344" y2="0.9099999999999999"/>
151.9776 +                                                   <points>
151.9777 +                                                      <point x="6.0" y="8.0" cp1x="6.0" cp1y="8.0" cp2x="6.0" cp2y="8.0"/>
151.9778 +                                                      <point x="13.0" y="8.0" cp1x="13.0" cp1y="8.0" cp2x="13.0" cp2y="8.0"/>
151.9779 +                                                      <point x="9.524999999999995" y="12.975" cp1x="9.524999999999995" cp1y="12.975" cp2x="9.524999999999995" cp2y="12.975"/>
151.9780 +                                                   </points>
151.9781 +                                                </path>
151.9782 +                                                <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.9783 +                                                   <gradient cycleMethod="NO_CYCLE">
151.9784 +                                                      <stop position="0.0" midpoint="0.5">
151.9785 +                                                         <matte red="112" green="120" blue="136" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.4592437" brightnessOffset="-0.015686274" alphaOffset="0"/>
151.9786 +                                                      </stop>
151.9787 +                                                      <stop position="0.53977275" midpoint="0.5">
151.9788 +                                                         <matte red="56" green="68" blue="90" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.029191494" saturationOffset="-0.2579365" brightnessOffset="-0.19607845" alphaOffset="0"/>
151.9789 +                                                      </stop>
151.9790 +                                                      <stop position="0.6505682" midpoint="0.5">
151.9791 +                                                         <matte red="56" green="68" blue="90" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.029191494" saturationOffset="-0.2579365" brightnessOffset="-0.19607845" alphaOffset="0"/>
151.9792 +                                                      </stop>
151.9793 +                                                      <stop position="1.0" midpoint="0.5">
151.9794 +                                                         <matte red="72" green="83" blue="106" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.03409344" saturationOffset="-0.3149596" brightnessOffset="-0.13333336" alphaOffset="0"/>
151.9795 +                                                      </stop>
151.9796 +                                                   </gradient>
151.9797 +                                                   <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.9798 +                                                </rectangle>
151.9799 +                                                <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.9800 +                                                   <gradient cycleMethod="NO_CYCLE">
151.9801 +                                                      <stop position="0.0" midpoint="0.5">
151.9802 +                                                         <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.9803 +                                                      </stop>
151.9804 +                                                      <stop position="1.0" midpoint="0.5">
151.9805 +                                                         <matte red="13" green="27" blue="54" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.031104386" saturationOffset="0.12354499" brightnessOffset="-0.33725494" alphaOffset="0"/>
151.9806 +                                                      </stop>
151.9807 +                                                   </gradient>
151.9808 +                                                   <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.9809 +                                                </rectangle>
151.9810 +                                                <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.9811 +                                                   <matte red="83" green="86" blue="93" alpha="70" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.0029994324" brightnessOffset="-0.38039216" alphaOffset="-185"/>
151.9812 +                                                   <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9813 +                                                </rectangle>
151.9814 +                                             </shapes>
151.9815 +                                             <effects/>
151.9816 +                                          </layer>
151.9817 +                                          <templateLayer fileName="113d0ec1755.png">
151.9818 +                                             <layer name="Template" type="template">
151.9819 +                                                <opacity>1.0</opacity>
151.9820 +                                                <fillOpacity>1.0</fillOpacity>
151.9821 +                                                <blendingMode>NORMAL</blendingMode>
151.9822 +                                                <locked>false</locked>
151.9823 +                                                <visible>false</visible>
151.9824 +                                                <shapes/>
151.9825 +                                                <effects/>
151.9826 +                                             </layer>
151.9827 +                                          </templateLayer>
151.9828 +                                       </canvas>
151.9829 +                                    </state>
151.9830 +                                 </backgroundStates>
151.9831 +                                 <foregroundStates/>
151.9832 +                                 <borderStates/>
151.9833 +                                 <regions/>
151.9834 +                            </uiIconRegion>
151.9835 +                     </regions>
151.9836 +                  </uiComponent>
151.9837 +                  <uiComponent opaque="false" componentName="InternalFrameTitlePane.iconifyButton" type="javax.swing.JButton" name="Button" ui="ButtonUI" subregion="true">
151.9838 +                     <stateTypes>
151.9839 +                        <stateType key="Enabled"/>
151.9840 +                        <stateType key="MouseOver"/>
151.9841 +                        <stateType key="Pressed"/>
151.9842 +                        <stateType key="Disabled"/>
151.9843 +                        <stateType key="Focused"/>
151.9844 +                        <stateType key="Selected"/>
151.9845 +                        <stateType key="WindowNotFocused">
151.9846 +                           <codeSnippet><![CDATA[
151.9847 +                               Component parent = c;
151.9848 +                               while (parent.getParent() != null) {
151.9849 +                                   if (parent instanceof JInternalFrame) {
151.9850 +                                       break;
151.9851 +                                   }
151.9852 +                                   parent = parent.getParent();
151.9853 +                               }
151.9854 +                               if (parent instanceof JInternalFrame) {
151.9855 +                                   return !(((JInternalFrame)parent).isSelected());
151.9856 +                               }
151.9857 +                               return false;]]></codeSnippet>
151.9858 +                        </stateType>
151.9859 +                     </stateTypes>
151.9860 +                     <contentMargins top="9" bottom="9" left="9" right="9"/>
151.9861 +                     <style>
151.9862 +                        <textForeground/>
151.9863 +                        <textBackground/>
151.9864 +                        <background/>
151.9865 +                        <cacheSettingsInherited>false</cacheSettingsInherited>
151.9866 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.9867 +                        <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.9868 +                        <uiproperties/>
151.9869 +                     </style>
151.9870 +                     <backgroundStates>
151.9871 +                        <state stateKeys="Enabled">
151.9872 +                           <style>
151.9873 +                              <textForeground/>
151.9874 +                              <textBackground/>
151.9875 +                              <background/>
151.9876 +                              <uiproperties/>
151.9877 +                           </style>
151.9878 +                           <canvas>
151.9879 +                              <size width="19" height="18"/>
151.9880 +                              <nextLayerNameIndex>2</nextLayerNameIndex>
151.9881 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.9882 +                              <layer name="Layer 1">
151.9883 +                                 <opacity>1.0</opacity>
151.9884 +                                 <fillOpacity>1.0</fillOpacity>
151.9885 +                                 <blendingMode>NORMAL</blendingMode>
151.9886 +                                 <locked>false</locked>
151.9887 +                                 <visible>true</visible>
151.9888 +                                 <shapes>
151.9889 +                                    <rectangle x1="5.454545454545454" x2="13.613636363636363" y1="11.022727272727273" y2="13.000000000000002" rounding="0.0">
151.9890 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.9891 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9892 +                                    </rectangle>
151.9893 +                                    <rectangle x1="4.750000000000001" x2="14.250000000000004" y1="11.931818181818182" y2="13.477272727272728" rounding="0.0">
151.9894 +                                       <matte red="88" green="0" blue="0" alpha="149" uiDefaultParentName="nimbusOrange" hueOffset="-0.08377897" saturationOffset="0.02094239" brightnessOffset="-0.40392157" alphaOffset="-106"/>
151.9895 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9896 +                                    </rectangle>
151.9897 +                                    <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.9898 +                                       <gradient cycleMethod="NO_CYCLE">
151.9899 +                                          <stop position="0.0" midpoint="0.5">
151.9900 +                                             <matte red="218" green="164" blue="110" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-4.4563413E-4" saturationOffset="-0.48364475" brightnessOffset="0.10588235" alphaOffset="0"/>
151.9901 +                                          </stop>
151.9902 +                                          <stop position="0.53977275" midpoint="0.5">
151.9903 +                                             <matte red="191" green="98" blue="4" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.9904 +                                          </stop>
151.9905 +                                          <stop position="0.6505682" midpoint="0.5">
151.9906 +                                             <matte red="192" green="99" blue="5" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.0" saturationOffset="-0.0050992966" brightnessOffset="0.0039215684" alphaOffset="0"/>
151.9907 +                                          </stop>
151.9908 +                                          <stop position="1.0" midpoint="0.5">
151.9909 +                                             <matte red="218" green="125" blue="31" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.0" saturationOffset="-0.12125945" brightnessOffset="0.10588235" alphaOffset="0"/>
151.9910 +                                          </stop>
151.9911 +                                       </gradient>
151.9912 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.9913 +                                    </rectangle>
151.9914 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.9915 +                                       <gradient cycleMethod="NO_CYCLE">
151.9916 +                                          <stop position="0.0" midpoint="0.5">
151.9917 +                                             <matte red="88" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.08377897" saturationOffset="0.02094239" brightnessOffset="-0.40392157" alphaOffset="0"/>
151.9918 +                                          </stop>
151.9919 +                                          <stop position="1.0" midpoint="0.5">
151.9920 +                                             <matte red="191" green="98" blue="4" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.9921 +                                          </stop>
151.9922 +                                       </gradient>
151.9923 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.9924 +                                    </rectangle>
151.9925 +                                    <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.9926 +                                       <matte red="83" green="86" blue="93" alpha="70" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.0029994324" brightnessOffset="-0.38039216" alphaOffset="-185"/>
151.9927 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9928 +                                    </rectangle>
151.9929 +                                 </shapes>
151.9930 +                                 <effects/>
151.9931 +                              </layer>
151.9932 +                              <templateLayer fileName="113d100d389.png">
151.9933 +                                 <layer name="Template" type="template">
151.9934 +                                    <opacity>1.0</opacity>
151.9935 +                                    <fillOpacity>1.0</fillOpacity>
151.9936 +                                    <blendingMode>NORMAL</blendingMode>
151.9937 +                                    <locked>false</locked>
151.9938 +                                    <visible>true</visible>
151.9939 +                                    <shapes/>
151.9940 +                                    <effects/>
151.9941 +                                 </layer>
151.9942 +                              </templateLayer>
151.9943 +                           </canvas>
151.9944 +                        </state>
151.9945 +                        <state stateKeys="Disabled">
151.9946 +                           <style>
151.9947 +                              <textForeground/>
151.9948 +                              <textBackground/>
151.9949 +                              <background/>
151.9950 +                              <uiproperties/>
151.9951 +                           </style>
151.9952 +                           <canvas>
151.9953 +                              <size width="19" height="18"/>
151.9954 +                              <nextLayerNameIndex>2</nextLayerNameIndex>
151.9955 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.9956 +                              <layer name="Layer 1">
151.9957 +                                 <opacity>1.0</opacity>
151.9958 +                                 <fillOpacity>1.0</fillOpacity>
151.9959 +                                 <blendingMode>NORMAL</blendingMode>
151.9960 +                                 <locked>false</locked>
151.9961 +                                 <visible>true</visible>
151.9962 +                                 <shapes>
151.9963 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.9964 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.9965 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9966 +                                    </rectangle>
151.9967 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.9968 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.9969 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9970 +                                    </rectangle>
151.9971 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.9972 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.9973 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9974 +                                    </rectangle>
151.9975 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.9976 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.9977 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9978 +                                    </rectangle>
151.9979 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.9980 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.9981 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9982 +                                    </rectangle>
151.9983 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.9984 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.9985 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9986 +                                    </rectangle>
151.9987 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.9988 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.9989 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9990 +                                    </rectangle>
151.9991 +                                    <rectangle x1="5.454545454545454" x2="13.613636363636363" y1="11.022727272727273" y2="13.000000000000002" rounding="0.0">
151.9992 +                                       <matte red="178" green="183" blue="192" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.003968239" saturationOffset="-0.03760965" brightnessOffset="0.007843137" alphaOffset="0"/>
151.9993 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9994 +                                    </rectangle>
151.9995 +                                    <rectangle x1="4.750000000000001" x2="14.250000000000004" y1="11.931818181818182" y2="13.477272727272728" rounding="0.0">
151.9996 +                                       <matte red="76" green="85" blue="87" alpha="39" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0808081" saturationOffset="0.015910469" brightnessOffset="-0.40392157" alphaOffset="-216"/>
151.9997 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.9998 +                                    </rectangle>
151.9999 +                                    <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.10000 +                                       <gradient cycleMethod="NO_CYCLE">
151.10001 +                                          <stop position="0.0" midpoint="0.5">
151.10002 +                                             <matte red="187" green="190" blue="196" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.5273321" saturationOffset="-0.93313926" brightnessOffset="0.019607842" alphaOffset="0"/>
151.10003 +                                          </stop>
151.10004 +                                          <stop position="0.53977275" midpoint="0.5">
151.10005 +                                             <matte red="162" green="166" blue="176" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.53526866" saturationOffset="-0.8995122" brightnessOffset="-0.058823526" alphaOffset="0"/>
151.10006 +                                          </stop>
151.10007 +                                          <stop position="0.6505682" midpoint="0.5">
151.10008 +                                             <matte red="157" green="162" blue="171" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.5233639" saturationOffset="-0.8971863" brightnessOffset="-0.07843137" alphaOffset="0"/>
151.10009 +                                          </stop>
151.10010 +                                          <stop position="1.0" midpoint="0.5">
151.10011 +                                             <matte red="154" green="159" blue="169" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.5273321" saturationOffset="-0.8903002" brightnessOffset="-0.086274505" alphaOffset="0"/>
151.10012 +                                          </stop>
151.10013 +                                       </gradient>
151.10014 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.10015 +                                    </rectangle>
151.10016 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.10017 +                                       <gradient cycleMethod="NO_CYCLE">
151.10018 +                                          <stop position="0.0" midpoint="0.5">
151.10019 +                                             <matte red="185" green="188" blue="193" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.5203877" saturationOffset="-0.9376068" brightnessOffset="0.007843137" alphaOffset="0"/>
151.10020 +                                          </stop>
151.10021 +                                          <stop position="1.0" midpoint="0.5">
151.10022 +                                             <matte red="154" green="159" blue="169" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.5273321" saturationOffset="-0.8903002" brightnessOffset="-0.086274505" alphaOffset="0"/>
151.10023 +                                          </stop>
151.10024 +                                       </gradient>
151.10025 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.10026 +                                    </rectangle>
151.10027 +                                    <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.10028 +                                       <matte red="83" green="86" blue="93" alpha="70" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.0029994324" brightnessOffset="-0.38039216" alphaOffset="-185"/>
151.10029 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10030 +                                    </rectangle>
151.10031 +                                 </shapes>
151.10032 +                                 <effects/>
151.10033 +                              </layer>
151.10034 +                              <templateLayer fileName="113e23f6ea0.png">
151.10035 +                                 <layer name="Template" type="template">
151.10036 +                                    <opacity>1.0</opacity>
151.10037 +                                    <fillOpacity>1.0</fillOpacity>
151.10038 +                                    <blendingMode>NORMAL</blendingMode>
151.10039 +                                    <locked>false</locked>
151.10040 +                                    <visible>false</visible>
151.10041 +                                    <shapes/>
151.10042 +                                    <effects/>
151.10043 +                                 </layer>
151.10044 +                              </templateLayer>
151.10045 +                           </canvas>
151.10046 +                        </state>
151.10047 +                        <state stateKeys="MouseOver">
151.10048 +                           <style>
151.10049 +                              <textForeground/>
151.10050 +                              <textBackground/>
151.10051 +                              <background/>
151.10052 +                              <uiproperties/>
151.10053 +                           </style>
151.10054 +                           <canvas>
151.10055 +                              <size width="19" height="18"/>
151.10056 +                              <nextLayerNameIndex>2</nextLayerNameIndex>
151.10057 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.10058 +                              <layer name="Layer 1">
151.10059 +                                 <opacity>1.0</opacity>
151.10060 +                                 <fillOpacity>1.0</fillOpacity>
151.10061 +                                 <blendingMode>NORMAL</blendingMode>
151.10062 +                                 <locked>false</locked>
151.10063 +                                 <visible>true</visible>
151.10064 +                                 <shapes>
151.10065 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10066 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10067 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10068 +                                    </rectangle>
151.10069 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10070 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10071 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10072 +                                    </rectangle>
151.10073 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10074 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10075 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10076 +                                    </rectangle>
151.10077 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10078 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10079 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10080 +                                    </rectangle>
151.10081 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10082 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10083 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10084 +                                    </rectangle>
151.10085 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10086 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10087 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10088 +                                    </rectangle>
151.10089 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10090 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10091 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10092 +                                    </rectangle>
151.10093 +                                    <rectangle x1="5.454545454545454" x2="13.613636363636363" y1="11.022727272727273" y2="13.000000000000002" rounding="0.0">
151.10094 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.10095 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10096 +                                    </rectangle>
151.10097 +                                    <rectangle x1="4.750000000000001" x2="14.250000000000004" y1="11.931818181818182" y2="13.477272727272728" rounding="0.0">
151.10098 +                                       <matte red="204" green="71" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.025772434" saturationOffset="0.02094239" brightnessOffset="0.05098039" alphaOffset="0"/>
151.10099 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10100 +                                    </rectangle>
151.10101 +                                    <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.10102 +                                       <gradient cycleMethod="NO_CYCLE">
151.10103 +                                          <stop position="0.0" midpoint="0.5">
151.10104 +                                             <matte red="229" green="175" blue="121" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-4.4563413E-4" saturationOffset="-0.5074419" brightnessOffset="0.1490196" alphaOffset="0"/>
151.10105 +                                          </stop>
151.10106 +                                          <stop position="0.53977275" midpoint="0.5">
151.10107 +                                             <matte red="211" green="120" blue="28" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="9.745359E-6" saturationOffset="-0.11175901" brightnessOffset="0.07843137" alphaOffset="0"/>
151.10108 +                                          </stop>
151.10109 +                                          <stop position="0.6505682" midpoint="0.5">
151.10110 +                                             <matte red="211" green="118" blue="24" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.0" saturationOffset="-0.09280169" brightnessOffset="0.07843137" alphaOffset="0"/>
151.10111 +                                          </stop>
151.10112 +                                          <stop position="1.0" midpoint="0.5">
151.10113 +                                             <matte red="237" green="144" blue="50" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.0" saturationOffset="-0.19002807" brightnessOffset="0.18039215" alphaOffset="0"/>
151.10114 +                                          </stop>
151.10115 +                                       </gradient>
151.10116 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.10117 +                                    </rectangle>
151.10118 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.10119 +                                       <gradient cycleMethod="NO_CYCLE">
151.10120 +                                          <stop position="0.0" midpoint="0.5">
151.10121 +                                             <matte red="110" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.08377897" saturationOffset="0.02094239" brightnessOffset="-0.31764707" alphaOffset="0"/>
151.10122 +                                          </stop>
151.10123 +                                          <stop position="1.0" midpoint="0.5">
151.10124 +                                             <matte red="175" green="59" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.02758849" saturationOffset="0.02094239" brightnessOffset="-0.062745094" alphaOffset="0"/>
151.10125 +                                          </stop>
151.10126 +                                       </gradient>
151.10127 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.10128 +                                    </rectangle>
151.10129 +                                    <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.10130 +                                       <matte red="83" green="86" blue="93" alpha="70" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.0029994324" brightnessOffset="-0.38039216" alphaOffset="-185"/>
151.10131 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10132 +                                    </rectangle>
151.10133 +                                 </shapes>
151.10134 +                                 <effects/>
151.10135 +                              </layer>
151.10136 +                              <templateLayer fileName="113e2450ed9.png">
151.10137 +                                 <layer name="Template" type="template">
151.10138 +                                    <opacity>1.0</opacity>
151.10139 +                                    <fillOpacity>1.0</fillOpacity>
151.10140 +                                    <blendingMode>NORMAL</blendingMode>
151.10141 +                                    <locked>false</locked>
151.10142 +                                    <visible>false</visible>
151.10143 +                                    <shapes/>
151.10144 +                                    <effects/>
151.10145 +                                 </layer>
151.10146 +                              </templateLayer>
151.10147 +                           </canvas>
151.10148 +                        </state>
151.10149 +                        <state stateKeys="Pressed">
151.10150 +                           <style>
151.10151 +                              <textForeground/>
151.10152 +                              <textBackground/>
151.10153 +                              <background/>
151.10154 +                              <uiproperties/>
151.10155 +                           </style>
151.10156 +                           <canvas>
151.10157 +                              <size width="19" height="18"/>
151.10158 +                              <nextLayerNameIndex>2</nextLayerNameIndex>
151.10159 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.10160 +                              <layer name="Layer 1">
151.10161 +                                 <opacity>1.0</opacity>
151.10162 +                                 <fillOpacity>1.0</fillOpacity>
151.10163 +                                 <blendingMode>NORMAL</blendingMode>
151.10164 +                                 <locked>false</locked>
151.10165 +                                 <visible>true</visible>
151.10166 +                                 <shapes>
151.10167 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10168 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10169 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10170 +                                    </rectangle>
151.10171 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10172 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10173 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10174 +                                    </rectangle>
151.10175 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10176 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10177 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10178 +                                    </rectangle>
151.10179 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10180 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10181 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10182 +                                    </rectangle>
151.10183 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10184 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10185 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10186 +                                    </rectangle>
151.10187 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10188 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10189 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10190 +                                    </rectangle>
151.10191 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10192 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10193 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10194 +                                    </rectangle>
151.10195 +                                    <rectangle x1="5.454545454545454" x2="13.613636363636363" y1="11.022727272727273" y2="13.000000000000002" rounding="0.0">
151.10196 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.10197 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10198 +                                    </rectangle>
151.10199 +                                    <rectangle x1="4.750000000000001" x2="14.272727272727275" y1="11.749999999999998" y2="14.0909090909091" rounding="0.0">
151.10200 +                                       <matte red="154" green="0" blue="0" alpha="164" uiDefaultParentName="nimbusOrange" hueOffset="-0.08377897" saturationOffset="0.02094239" brightnessOffset="-0.14509803" alphaOffset="-91"/>
151.10201 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10202 +                                    </rectangle>
151.10203 +                                    <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.10204 +                                       <gradient cycleMethod="NO_CYCLE">
151.10205 +                                          <stop position="0.0" midpoint="0.5">
151.10206 +                                             <matte red="201" green="123" blue="72" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.017887495" saturationOffset="-0.33726656" brightnessOffset="0.039215684" alphaOffset="0"/>
151.10207 +                                          </stop>
151.10208 +                                          <stop position="0.53977275" midpoint="0.5">
151.10209 +                                             <matte red="180" green="71" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.018038228" saturationOffset="0.02094239" brightnessOffset="-0.043137252" alphaOffset="0"/>
151.10210 +                                          </stop>
151.10211 +                                          <stop position="0.6505682" midpoint="0.5">
151.10212 +                                             <matte red="184" green="75" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.015844189" saturationOffset="0.02094239" brightnessOffset="-0.027450979" alphaOffset="0"/>
151.10213 +                                          </stop>
151.10214 +                                          <stop position="1.0" midpoint="0.5">
151.10215 +                                             <matte red="195" green="86" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.010274701" saturationOffset="0.02094239" brightnessOffset="0.015686274" alphaOffset="0"/>
151.10216 +                                          </stop>
151.10217 +                                       </gradient>
151.10218 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.10219 +                                    </rectangle>
151.10220 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.10221 +                                       <gradient cycleMethod="NO_CYCLE">
151.10222 +                                          <stop position="0.0" midpoint="0.5">
151.10223 +                                             <matte red="89" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.08377897" saturationOffset="0.02094239" brightnessOffset="-0.4" alphaOffset="0"/>
151.10224 +                                          </stop>
151.10225 +                                          <stop position="1.0" midpoint="0.5">
151.10226 +                                             <matte red="163" green="30" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.053104125" saturationOffset="0.02094239" brightnessOffset="-0.109803915" alphaOffset="0"/>
151.10227 +                                          </stop>
151.10228 +                                       </gradient>
151.10229 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.10230 +                                    </rectangle>
151.10231 +                                    <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.10232 +                                       <matte red="83" green="86" blue="93" alpha="70" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.0029994324" brightnessOffset="-0.38039216" alphaOffset="-185"/>
151.10233 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10234 +                                    </rectangle>
151.10235 +                                 </shapes>
151.10236 +                                 <effects/>
151.10237 +                              </layer>
151.10238 +                              <templateLayer fileName="113e247bc76.png">
151.10239 +                                 <layer name="Template" type="template">
151.10240 +                                    <opacity>1.0</opacity>
151.10241 +                                    <fillOpacity>1.0</fillOpacity>
151.10242 +                                    <blendingMode>NORMAL</blendingMode>
151.10243 +                                    <locked>false</locked>
151.10244 +                                    <visible>false</visible>
151.10245 +                                    <shapes/>
151.10246 +                                    <effects/>
151.10247 +                                 </layer>
151.10248 +                              </templateLayer>
151.10249 +                           </canvas>
151.10250 +                        </state>
151.10251 +                        <state stateKeys="Enabled+WindowNotFocused">
151.10252 +                           <style>
151.10253 +                              <textForeground/>
151.10254 +                              <textBackground/>
151.10255 +                              <background/>
151.10256 +                              <uiproperties/>
151.10257 +                           </style>
151.10258 +                           <canvas>
151.10259 +                              <size width="19" height="18"/>
151.10260 +                              <nextLayerNameIndex>2</nextLayerNameIndex>
151.10261 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.10262 +                              <layer name="Layer 1">
151.10263 +                                 <opacity>1.0</opacity>
151.10264 +                                 <fillOpacity>1.0</fillOpacity>
151.10265 +                                 <blendingMode>NORMAL</blendingMode>
151.10266 +                                 <locked>false</locked>
151.10267 +                                 <visible>true</visible>
151.10268 +                                 <shapes>
151.10269 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10270 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10271 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10272 +                                    </rectangle>
151.10273 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10274 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10275 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10276 +                                    </rectangle>
151.10277 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10278 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10279 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10280 +                                    </rectangle>
151.10281 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10282 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10283 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10284 +                                    </rectangle>
151.10285 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10286 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10287 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10288 +                                    </rectangle>
151.10289 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10290 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10291 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10292 +                                    </rectangle>
151.10293 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10294 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10295 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10296 +                                    </rectangle>
151.10297 +                                    <rectangle x1="5.454545454545454" x2="13.613636363636363" y1="11.022727272727273" y2="13.000000000000002" rounding="0.0">
151.10298 +                                       <matte red="98" green="102" blue="108" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.01111114" saturationOffset="-0.017933726" brightnessOffset="-0.32156864" alphaOffset="0"/>
151.10299 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10300 +                                    </rectangle>
151.10301 +                                    <rectangle x1="4.750000000000001" x2="14.250000000000004" y1="11.931818181818182" y2="13.477272727272728" rounding="0.0">
151.10302 +                                       <matte red="76" green="85" blue="87" alpha="39" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0808081" saturationOffset="0.015910469" brightnessOffset="-0.40392157" alphaOffset="-216"/>
151.10303 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10304 +                                    </rectangle>
151.10305 +                                    <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.10306 +                                       <gradient cycleMethod="NO_CYCLE">
151.10307 +                                          <stop position="0.0" midpoint="0.5">
151.10308 +                                             <matte red="219" green="221" blue="224" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.516221" saturationOffset="-0.9567362" brightnessOffset="0.12941176" alphaOffset="0"/>
151.10309 +                                          </stop>
151.10310 +                                          <stop position="0.53977275" midpoint="0.5">
151.10311 +                                             <matte red="185" green="189" blue="196" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.5222816" saturationOffset="-0.9229352" brightnessOffset="0.019607842" alphaOffset="0"/>
151.10312 +                                          </stop>
151.10313 +                                          <stop position="0.6505682" midpoint="0.5">
151.10314 +                                             <matte red="183" green="187" blue="195" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.5273321" saturationOffset="-0.91751915" brightnessOffset="0.015686274" alphaOffset="0"/>
151.10315 +                                          </stop>
151.10316 +                                          <stop position="0.9161677" midpoint="0.5">
151.10317 +                                             <matte red="189" green="193" blue="201" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.5273321" saturationOffset="-0.9193561" brightnessOffset="0.039215684" alphaOffset="0"/>
151.10318 +                                          </stop>
151.10319 +                                       </gradient>
151.10320 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.10321 +                                    </rectangle>
151.10322 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.10323 +                                       <gradient cycleMethod="NO_CYCLE">
151.10324 +                                          <stop position="0.0" midpoint="0.5">
151.10325 +                                             <matte red="136" green="141" blue="151" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.5273321" saturationOffset="-0.87971985" brightnessOffset="-0.15686274" alphaOffset="0"/>
151.10326 +                                          </stop>
151.10327 +                                          <stop position="1.0" midpoint="0.5">
151.10328 +                                             <matte red="95" green="100" blue="110" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.5273321" saturationOffset="-0.842694" brightnessOffset="-0.31764707" alphaOffset="0"/>
151.10329 +                                          </stop>
151.10330 +                                       </gradient>
151.10331 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.10332 +                                    </rectangle>
151.10333 +                                    <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.10334 +                                       <matte red="83" green="86" blue="93" alpha="70" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.0029994324" brightnessOffset="-0.38039216" alphaOffset="-185"/>
151.10335 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10336 +                                    </rectangle>
151.10337 +                                 </shapes>
151.10338 +                                 <effects/>
151.10339 +                              </layer>
151.10340 +                              <templateLayer fileName="113fc294735.png">
151.10341 +                                 <layer name="Template" type="template">
151.10342 +                                    <opacity>1.0</opacity>
151.10343 +                                    <fillOpacity>1.0</fillOpacity>
151.10344 +                                    <blendingMode>NORMAL</blendingMode>
151.10345 +                                    <locked>false</locked>
151.10346 +                                    <visible>false</visible>
151.10347 +                                    <shapes/>
151.10348 +                                    <effects/>
151.10349 +                                 </layer>
151.10350 +                              </templateLayer>
151.10351 +                           </canvas>
151.10352 +                        </state>
151.10353 +                        <state stateKeys="MouseOver+WindowNotFocused">
151.10354 +                           <style>
151.10355 +                              <textForeground/>
151.10356 +                              <textBackground/>
151.10357 +                              <background/>
151.10358 +                              <uiproperties/>
151.10359 +                           </style>
151.10360 +                           <canvas>
151.10361 +                              <size width="19" height="18"/>
151.10362 +                              <nextLayerNameIndex>2</nextLayerNameIndex>
151.10363 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.10364 +                              <layer name="Layer 1">
151.10365 +                                 <opacity>1.0</opacity>
151.10366 +                                 <fillOpacity>1.0</fillOpacity>
151.10367 +                                 <blendingMode>NORMAL</blendingMode>
151.10368 +                                 <locked>false</locked>
151.10369 +                                 <visible>true</visible>
151.10370 +                                 <shapes>
151.10371 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10372 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10373 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10374 +                                    </rectangle>
151.10375 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10376 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10377 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10378 +                                    </rectangle>
151.10379 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10380 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10381 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10382 +                                    </rectangle>
151.10383 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10384 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10385 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10386 +                                    </rectangle>
151.10387 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10388 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10389 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10390 +                                    </rectangle>
151.10391 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10392 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10393 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10394 +                                    </rectangle>
151.10395 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10396 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10397 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10398 +                                    </rectangle>
151.10399 +                                    <rectangle x1="5.454545454545454" x2="13.613636363636363" y1="11.022727272727273" y2="13.000000000000002" rounding="0.0">
151.10400 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.10401 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10402 +                                    </rectangle>
151.10403 +                                    <rectangle x1="4.750000000000001" x2="14.250000000000004" y1="11.931818181818182" y2="13.477272727272728" rounding="0.0">
151.10404 +                                       <matte red="204" green="71" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.025772434" saturationOffset="0.02094239" brightnessOffset="0.05098039" alphaOffset="0"/>
151.10405 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10406 +                                    </rectangle>
151.10407 +                                    <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.10408 +                                       <gradient cycleMethod="NO_CYCLE">
151.10409 +                                          <stop position="0.0" midpoint="0.5">
151.10410 +                                             <matte red="229" green="175" blue="121" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-4.4563413E-4" saturationOffset="-0.5074419" brightnessOffset="0.1490196" alphaOffset="0"/>
151.10411 +                                          </stop>
151.10412 +                                          <stop position="0.53977275" midpoint="0.5">
151.10413 +                                             <matte red="211" green="120" blue="28" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="9.745359E-6" saturationOffset="-0.11175901" brightnessOffset="0.07843137" alphaOffset="0"/>
151.10414 +                                          </stop>
151.10415 +                                          <stop position="0.6505682" midpoint="0.5">
151.10416 +                                             <matte red="211" green="118" blue="24" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.0" saturationOffset="-0.09280169" brightnessOffset="0.07843137" alphaOffset="0"/>
151.10417 +                                          </stop>
151.10418 +                                          <stop position="1.0" midpoint="0.5">
151.10419 +                                             <matte red="237" green="144" blue="50" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.0" saturationOffset="-0.19002807" brightnessOffset="0.18039215" alphaOffset="0"/>
151.10420 +                                          </stop>
151.10421 +                                       </gradient>
151.10422 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.10423 +                                    </rectangle>
151.10424 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.10425 +                                       <gradient cycleMethod="NO_CYCLE">
151.10426 +                                          <stop position="0.0" midpoint="0.5">
151.10427 +                                             <matte red="110" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.08377897" saturationOffset="0.02094239" brightnessOffset="-0.31764707" alphaOffset="0"/>
151.10428 +                                          </stop>
151.10429 +                                          <stop position="1.0" midpoint="0.5">
151.10430 +                                             <matte red="175" green="59" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.02758849" saturationOffset="0.02094239" brightnessOffset="-0.062745094" alphaOffset="0"/>
151.10431 +                                          </stop>
151.10432 +                                       </gradient>
151.10433 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.10434 +                                    </rectangle>
151.10435 +                                    <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.10436 +                                       <matte red="83" green="86" blue="93" alpha="70" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.0029994324" brightnessOffset="-0.38039216" alphaOffset="-185"/>
151.10437 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10438 +                                    </rectangle>
151.10439 +                                 </shapes>
151.10440 +                                 <effects/>
151.10441 +                              </layer>
151.10442 +                              <templateLayer fileName="113e2450ed9.png">
151.10443 +                                 <layer name="Template" type="template">
151.10444 +                                    <opacity>1.0</opacity>
151.10445 +                                    <fillOpacity>1.0</fillOpacity>
151.10446 +                                    <blendingMode>NORMAL</blendingMode>
151.10447 +                                    <locked>false</locked>
151.10448 +                                    <visible>false</visible>
151.10449 +                                    <shapes/>
151.10450 +                                    <effects/>
151.10451 +                                 </layer>
151.10452 +                              </templateLayer>
151.10453 +                           </canvas>
151.10454 +                        </state>
151.10455 +                        <state stateKeys="Pressed+WindowNotFocused">
151.10456 +                           <style>
151.10457 +                              <textForeground/>
151.10458 +                              <textBackground/>
151.10459 +                              <background/>
151.10460 +                              <uiproperties/>
151.10461 +                           </style>
151.10462 +                           <canvas>
151.10463 +                              <size width="19" height="18"/>
151.10464 +                              <nextLayerNameIndex>2</nextLayerNameIndex>
151.10465 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.10466 +                              <layer name="Layer 1">
151.10467 +                                 <opacity>1.0</opacity>
151.10468 +                                 <fillOpacity>1.0</fillOpacity>
151.10469 +                                 <blendingMode>NORMAL</blendingMode>
151.10470 +                                 <locked>false</locked>
151.10471 +                                 <visible>true</visible>
151.10472 +                                 <shapes>
151.10473 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10474 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10475 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10476 +                                    </rectangle>
151.10477 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10478 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10479 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10480 +                                    </rectangle>
151.10481 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10482 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10483 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10484 +                                    </rectangle>
151.10485 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10486 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10487 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10488 +                                    </rectangle>
151.10489 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10490 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10491 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10492 +                                    </rectangle>
151.10493 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10494 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10495 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10496 +                                    </rectangle>
151.10497 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10498 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10499 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10500 +                                    </rectangle>
151.10501 +                                    <rectangle x1="5.454545454545454" x2="13.613636363636363" y1="11.022727272727273" y2="13.000000000000002" rounding="0.0">
151.10502 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.10503 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10504 +                                    </rectangle>
151.10505 +                                    <rectangle x1="4.750000000000001" x2="14.272727272727275" y1="11.749999999999998" y2="14.0909090909091" rounding="0.0">
151.10506 +                                       <matte red="154" green="0" blue="0" alpha="164" uiDefaultParentName="nimbusOrange" hueOffset="-0.08377897" saturationOffset="0.02094239" brightnessOffset="-0.14509803" alphaOffset="-91"/>
151.10507 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10508 +                                    </rectangle>
151.10509 +                                    <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.10510 +                                       <gradient cycleMethod="NO_CYCLE">
151.10511 +                                          <stop position="0.0" midpoint="0.5">
151.10512 +                                             <matte red="201" green="123" blue="72" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.017887495" saturationOffset="-0.33726656" brightnessOffset="0.039215684" alphaOffset="0"/>
151.10513 +                                          </stop>
151.10514 +                                          <stop position="0.53977275" midpoint="0.5">
151.10515 +                                             <matte red="180" green="71" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.018038228" saturationOffset="0.02094239" brightnessOffset="-0.043137252" alphaOffset="0"/>
151.10516 +                                          </stop>
151.10517 +                                          <stop position="0.6505682" midpoint="0.5">
151.10518 +                                             <matte red="184" green="75" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.015844189" saturationOffset="0.02094239" brightnessOffset="-0.027450979" alphaOffset="0"/>
151.10519 +                                          </stop>
151.10520 +                                          <stop position="1.0" midpoint="0.5">
151.10521 +                                             <matte red="195" green="86" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.010274701" saturationOffset="0.02094239" brightnessOffset="0.015686274" alphaOffset="0"/>
151.10522 +                                          </stop>
151.10523 +                                       </gradient>
151.10524 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.10525 +                                    </rectangle>
151.10526 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.10527 +                                       <gradient cycleMethod="NO_CYCLE">
151.10528 +                                          <stop position="0.0" midpoint="0.5">
151.10529 +                                             <matte red="89" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.08377897" saturationOffset="0.02094239" brightnessOffset="-0.4" alphaOffset="0"/>
151.10530 +                                          </stop>
151.10531 +                                          <stop position="1.0" midpoint="0.5">
151.10532 +                                             <matte red="163" green="30" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.053104125" saturationOffset="0.02094239" brightnessOffset="-0.109803915" alphaOffset="0"/>
151.10533 +                                          </stop>
151.10534 +                                       </gradient>
151.10535 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.10536 +                                    </rectangle>
151.10537 +                                    <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.10538 +                                       <matte red="83" green="86" blue="93" alpha="70" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.0029994324" brightnessOffset="-0.38039216" alphaOffset="-185"/>
151.10539 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10540 +                                    </rectangle>
151.10541 +                                 </shapes>
151.10542 +                                 <effects/>
151.10543 +                              </layer>
151.10544 +                              <templateLayer fileName="113e247bc76.png">
151.10545 +                                 <layer name="Template" type="template">
151.10546 +                                    <opacity>1.0</opacity>
151.10547 +                                    <fillOpacity>1.0</fillOpacity>
151.10548 +                                    <blendingMode>NORMAL</blendingMode>
151.10549 +                                    <locked>false</locked>
151.10550 +                                    <visible>false</visible>
151.10551 +                                    <shapes/>
151.10552 +                                    <effects/>
151.10553 +                                 </layer>
151.10554 +                              </templateLayer>
151.10555 +                           </canvas>
151.10556 +                        </state>
151.10557 +                     </backgroundStates>
151.10558 +                     <foregroundStates/>
151.10559 +                     <borderStates/>
151.10560 +                     <regions/>
151.10561 +                  </uiComponent>
151.10562 +                  <uiComponent opaque="false" componentName="InternalFrameTitlePane.maximizeButton" type="javax.swing.JButton" name="Button" ui="ButtonUI" subregion="true">
151.10563 +                     <stateTypes>
151.10564 +                        <stateType key="Enabled"/>
151.10565 +                        <stateType key="MouseOver"/>
151.10566 +                        <stateType key="Pressed"/>
151.10567 +                        <stateType key="Disabled"/>
151.10568 +                        <stateType key="Focused"/>
151.10569 +                        <stateType key="Selected"/>
151.10570 +                        <stateType key="WindowNotFocused">
151.10571 +                           <codeSnippet><![CDATA[
151.10572 +                               Component parent = c;
151.10573 +                               while (parent.getParent() != null) {
151.10574 +                                   if (parent instanceof JInternalFrame) {
151.10575 +                                       break;
151.10576 +                                   }
151.10577 +                                   parent = parent.getParent();
151.10578 +                               }
151.10579 +                               if (parent instanceof JInternalFrame) {
151.10580 +                                   return !(((JInternalFrame)parent).isSelected());
151.10581 +                               }
151.10582 +                               return false;]]></codeSnippet>
151.10583 +                        </stateType>
151.10584 +                        <stateType key="WindowMaximized">
151.10585 +                           <codeSnippet><![CDATA[
151.10586 +                               Component parent = c;
151.10587 +                               while (parent.getParent() != null) {
151.10588 +                                   if (parent instanceof JInternalFrame) {
151.10589 +                                       break;
151.10590 +                                   }
151.10591 +                                   parent = parent.getParent();
151.10592 +                               }
151.10593 +                               if (parent instanceof JInternalFrame) {
151.10594 +                                   return ((JInternalFrame)parent).isMaximum();
151.10595 +                               }
151.10596 +                               return false;]]></codeSnippet>
151.10597 +                        </stateType>
151.10598 +                     </stateTypes>
151.10599 +                     <contentMargins top="9" bottom="9" left="9" right="9"/>
151.10600 +                     <style>
151.10601 +                        <textForeground/>
151.10602 +                        <textBackground/>
151.10603 +                        <background/>
151.10604 +                        <cacheSettingsInherited>false</cacheSettingsInherited>
151.10605 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.10606 +                        <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.10607 +                        <uiproperties/>
151.10608 +                     </style>
151.10609 +                     <backgroundStates>
151.10610 +                        <state stateKeys="Disabled+WindowMaximized">
151.10611 +                           <style>
151.10612 +                              <textForeground/>
151.10613 +                              <textBackground/>
151.10614 +                              <background/>
151.10615 +                              <uiproperties/>
151.10616 +                           </style>
151.10617 +                           <canvas>
151.10618 +                              <size width="19" height="18"/>
151.10619 +                              <nextLayerNameIndex>5</nextLayerNameIndex>
151.10620 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.10621 +                              <layer name="Layer 1">
151.10622 +                                 <opacity>1.0</opacity>
151.10623 +                                 <fillOpacity>1.0</fillOpacity>
151.10624 +                                 <blendingMode>NORMAL</blendingMode>
151.10625 +                                 <locked>false</locked>
151.10626 +                                 <visible>true</visible>
151.10627 +                                 <shapes>
151.10628 +                                    <path>
151.10629 +                                       <matte red="186" green="190" blue="198" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.049920253" brightnessOffset="0.031372547" alphaOffset="0"/>
151.10630 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10631 +                                       <points>
151.10632 +                                          <point x="13.0" y="7.0" cp1x="13.0" cp1y="7.0" cp2x="13.0" cp2y="7.0"/>
151.10633 +                                          <point x="13.0" y="9.0" cp1x="13.0" cp1y="9.0" cp2x="13.0" cp2y="9.0"/>
151.10634 +                                          <point x="14.0" y="9.0" cp1x="14.0" cp1y="9.0" cp2x="14.0" cp2y="9.0"/>
151.10635 +                                          <point x="14.0" y="12.0" cp1x="14.0" cp1y="12.0" cp2x="14.0" cp2y="12.0"/>
151.10636 +                                          <point x="8.0" y="12.0" cp1x="8.0" cp1y="12.0" cp2x="8.0" cp2y="12.0"/>
151.10637 +                                          <point x="8.0" y="11.0" cp1x="8.0" cp1y="11.0" cp2x="8.0" cp2y="11.0"/>
151.10638 +                                          <point x="7.0" y="11.0" cp1x="7.0" cp1y="11.0" cp2x="7.0" cp2y="11.0"/>
151.10639 +                                          <point x="7.0" y="13.0" cp1x="7.0" cp1y="13.0" cp2x="7.0" cp2y="13.0"/>
151.10640 +                                          <point x="15.0" y="13.0" cp1x="15.0" cp1y="13.0" cp2x="15.0" cp2y="13.0"/>
151.10641 +                                          <point x="15.0" y="7.0" cp1x="15.0" cp1y="7.0" cp2x="15.0" cp2y="7.0"/>
151.10642 +                                       </points>
151.10643 +                                    </path>
151.10644 +                                    <path>
151.10645 +                                       <gradient cycleMethod="NO_CYCLE">
151.10646 +                                          <stop position="0.0" midpoint="0.5">
151.10647 +                                             <matte red="198" green="201" blue="208" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.062449392" brightnessOffset="0.07058823" alphaOffset="0"/>
151.10648 +                                          </stop>
151.10649 +                                          <stop position="1.0" midpoint="0.5">
151.10650 +                                             <matte red="176" green="181" blue="189" alpha="242" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.008547008" saturationOffset="-0.04174325" brightnessOffset="-0.0039215684" alphaOffset="-13"/>
151.10651 +                                          </stop>
151.10652 +                                       </gradient>
151.10653 +                                       <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.10654 +                                       <points>
151.10655 +                                          <point x="4.0" y="4.0" cp1x="4.0" cp1y="4.0" cp2x="4.0" cp2y="4.0"/>
151.10656 +                                          <point x="12.0" y="4.0" cp1x="12.0" cp1y="4.0" cp2x="12.0" cp2y="4.0"/>
151.10657 +                                          <point x="12.0" y="10.0" cp1x="12.0" cp1y="10.0" cp2x="12.0" cp2y="10.0"/>
151.10658 +                                          <point x="4.0" y="10.0" cp1x="4.0" cp1y="10.0" cp2x="4.0" cp2y="10.0"/>
151.10659 +                                          <point x="4.0" y="6.0" cp1x="4.0" cp1y="6.0" cp2x="4.0" cp2y="6.0"/>
151.10660 +                                          <point x="5.0" y="6.0" cp1x="5.0" cp1y="6.0" cp2x="5.0" cp2y="6.0"/>
151.10661 +                                          <point x="5.0" y="9.0" cp1x="5.0" cp1y="9.0" cp2x="5.0" cp2y="9.0"/>
151.10662 +                                          <point x="11.0" y="9.0" cp1x="11.0" cp1y="9.0" cp2x="11.0" cp2y="9.0"/>
151.10663 +                                          <point x="11.0" y="6.0" cp1x="11.0" cp1y="6.0" cp2x="11.0" cp2y="6.0"/>
151.10664 +                                          <point x="4.0" y="6.0" cp1x="4.0" cp1y="6.0" cp2x="4.0" cp2y="6.0"/>
151.10665 +                                       </points>
151.10666 +                                    </path>
151.10667 +                                    <rectangle x1="10.727272727272727" x2="14.954545454545457" y1="7.340909090909091" y2="9.431818181818183" rounding="0.0">
151.10668 +                                       <matte red="166" green="170" blue="179" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.44484192" saturationOffset="-0.6480447" brightnessOffset="0.0" alphaOffset="0"/>
151.10669 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10670 +                                    </rectangle>
151.10671 +                                    <rectangle x1="8.340909090909092" x2="14.97727272727273" y1="12.977272727272727" y2="13.977272727272728" rounding="0.0">
151.10672 +                                       <matte red="153" green="157" blue="166" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.44484192" saturationOffset="-0.6423572" brightnessOffset="-0.05098039" alphaOffset="0"/>
151.10673 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10674 +                                    </rectangle>
151.10675 +                                    <rectangle x1="7.0" x2="8.0" y1="11.0" y2="14.0" rounding="0.0">
151.10676 +                                       <matte red="153" green="158" blue="167" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.4366002" saturationOffset="-0.6368381" brightnessOffset="-0.04705882" alphaOffset="0"/>
151.10677 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10678 +                                    </rectangle>
151.10679 +                                    <rectangle x1="11.909090909090908" x2="12.795454545454547" y1="7.0" y2="10.954545454545455" rounding="0.0">
151.10680 +                                       <matte red="166" green="170" blue="179" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.44484192" saturationOffset="-0.6480447" brightnessOffset="0.0" alphaOffset="0"/>
151.10681 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10682 +                                    </rectangle>
151.10683 +                                    <rectangle x1="5.0227272727272725" x2="12.0" y1="9.977272727272727" y2="10.795454545454547" rounding="0.0">
151.10684 +                                       <matte red="158" green="162" blue="171" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.44484192" saturationOffset="-0.644647" brightnessOffset="-0.031372547" alphaOffset="0"/>
151.10685 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10686 +                                    </rectangle>
151.10687 +                                    <rectangle x1="4.204545454545454" x2="5.136363636363637" y1="10.886363636363637" y2="6.9772727272727275" rounding="0.0">
151.10688 +                                       <matte red="158" green="162" blue="171" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.44484192" saturationOffset="-0.644647" brightnessOffset="-0.031372547" alphaOffset="0"/>
151.10689 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10690 +                                    </rectangle>
151.10691 +                                    <rectangle x1="4.113636363636363" x2="12.818181818181822" y1="5.0227272727272725" y2="6.9772727272727275" rounding="0.0">
151.10692 +                                       <matte red="165" green="169" blue="176" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.4355179" saturationOffset="-0.6581704" brightnessOffset="-0.011764705" alphaOffset="0"/>
151.10693 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10694 +                                    </rectangle>
151.10695 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10696 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10697 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10698 +                                    </rectangle>
151.10699 +                                    <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.10700 +                                       <gradient cycleMethod="NO_CYCLE">
151.10701 +                                          <stop position="0.0" midpoint="0.5">
151.10702 +                                             <matte red="187" green="190" blue="196" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.44056845" saturationOffset="-0.67475206" brightnessOffset="0.06666666" alphaOffset="0"/>
151.10703 +                                          </stop>
151.10704 +                                          <stop position="1.0" midpoint="0.5">
151.10705 +                                             <matte red="154" green="159" blue="169" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.44056845" saturationOffset="-0.631913" brightnessOffset="-0.039215684" alphaOffset="0"/>
151.10706 +                                          </stop>
151.10707 +                                       </gradient>
151.10708 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.10709 +                                    </rectangle>
151.10710 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.10711 +                                       <gradient cycleMethod="NO_CYCLE">
151.10712 +                                          <stop position="0.0" midpoint="0.5">
151.10713 +                                             <matte red="185" green="188" blue="193" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.43362403" saturationOffset="-0.6792196" brightnessOffset="0.054901958" alphaOffset="0"/>
151.10714 +                                          </stop>
151.10715 +                                          <stop position="1.0" midpoint="0.5">
151.10716 +                                             <matte red="154" green="159" blue="169" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.44056845" saturationOffset="-0.631913" brightnessOffset="-0.039215684" alphaOffset="0"/>
151.10717 +                                          </stop>
151.10718 +                                       </gradient>
151.10719 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.10720 +                                    </rectangle>
151.10721 +                                 </shapes>
151.10722 +                                 <effects/>
151.10723 +                              </layer>
151.10724 +                              <templateLayer fileName="113fbedca6b.png">
151.10725 +                                 <layer name="Template" type="template">
151.10726 +                                    <opacity>1.0</opacity>
151.10727 +                                    <fillOpacity>1.0</fillOpacity>
151.10728 +                                    <blendingMode>NORMAL</blendingMode>
151.10729 +                                    <locked>false</locked>
151.10730 +                                    <visible>false</visible>
151.10731 +                                    <shapes/>
151.10732 +                                    <effects/>
151.10733 +                                 </layer>
151.10734 +                              </templateLayer>
151.10735 +                           </canvas>
151.10736 +                        </state>
151.10737 +                        <state stateKeys="Enabled+WindowMaximized">
151.10738 +                           <style>
151.10739 +                              <textForeground/>
151.10740 +                              <textBackground/>
151.10741 +                              <background/>
151.10742 +                              <uiproperties/>
151.10743 +                           </style>
151.10744 +                           <canvas>
151.10745 +                              <size width="19" height="18"/>
151.10746 +                              <nextLayerNameIndex>5</nextLayerNameIndex>
151.10747 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.10748 +                              <layer name="Layer 1">
151.10749 +                                 <opacity>1.0</opacity>
151.10750 +                                 <fillOpacity>1.0</fillOpacity>
151.10751 +                                 <blendingMode>NORMAL</blendingMode>
151.10752 +                                 <locked>false</locked>
151.10753 +                                 <visible>true</visible>
151.10754 +                                 <shapes>
151.10755 +                                    <path>
151.10756 +                                       <matte red="255" green="255" blue="255" alpha="222" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-33"/>
151.10757 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10758 +                                       <points>
151.10759 +                                          <point x="13.0" y="7.0" cp1x="13.0" cp1y="7.0" cp2x="13.0" cp2y="7.0"/>
151.10760 +                                          <point x="13.0" y="9.0" cp1x="13.0" cp1y="9.0" cp2x="13.0" cp2y="9.0"/>
151.10761 +                                          <point x="14.0" y="9.0" cp1x="14.0" cp1y="9.0" cp2x="14.0" cp2y="9.0"/>
151.10762 +                                          <point x="14.0" y="12.0" cp1x="14.0" cp1y="12.0" cp2x="14.0" cp2y="12.0"/>
151.10763 +                                          <point x="8.0" y="12.0" cp1x="8.0" cp1y="12.0" cp2x="8.0" cp2y="12.0"/>
151.10764 +                                          <point x="8.0" y="11.0" cp1x="8.0" cp1y="11.0" cp2x="8.0" cp2y="11.0"/>
151.10765 +                                          <point x="7.0" y="11.0" cp1x="7.0" cp1y="11.0" cp2x="7.0" cp2y="11.0"/>
151.10766 +                                          <point x="7.0" y="13.0" cp1x="7.0" cp1y="13.0" cp2x="7.0" cp2y="13.0"/>
151.10767 +                                          <point x="15.0" y="13.0" cp1x="15.0" cp1y="13.0" cp2x="15.0" cp2y="13.0"/>
151.10768 +                                          <point x="15.0" y="7.0" cp1x="15.0" cp1y="7.0" cp2x="15.0" cp2y="7.0"/>
151.10769 +                                       </points>
151.10770 +                                    </path>
151.10771 +                                    <path>
151.10772 +                                       <matte red="255" green="255" blue="255" alpha="242" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-13"/>
151.10773 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10774 +                                       <points>
151.10775 +                                          <point x="4.0" y="4.0" cp1x="4.0" cp1y="4.0" cp2x="4.0" cp2y="4.0"/>
151.10776 +                                          <point x="12.0" y="4.0" cp1x="12.0" cp1y="4.0" cp2x="12.0" cp2y="4.0"/>
151.10777 +                                          <point x="12.0" y="10.0" cp1x="12.0" cp1y="10.0" cp2x="12.0" cp2y="10.0"/>
151.10778 +                                          <point x="4.0" y="10.0" cp1x="4.0" cp1y="10.0" cp2x="4.0" cp2y="10.0"/>
151.10779 +                                          <point x="4.0" y="6.0" cp1x="4.0" cp1y="6.0" cp2x="4.0" cp2y="6.0"/>
151.10780 +                                          <point x="5.0" y="6.0" cp1x="5.0" cp1y="6.0" cp2x="5.0" cp2y="6.0"/>
151.10781 +                                          <point x="5.0" y="9.0" cp1x="5.0" cp1y="9.0" cp2x="5.0" cp2y="9.0"/>
151.10782 +                                          <point x="11.0" y="9.0" cp1x="11.0" cp1y="9.0" cp2x="11.0" cp2y="9.0"/>
151.10783 +                                          <point x="11.0" y="6.0" cp1x="11.0" cp1y="6.0" cp2x="11.0" cp2y="6.0"/>
151.10784 +                                          <point x="4.0" y="6.0" cp1x="4.0" cp1y="6.0" cp2x="4.0" cp2y="6.0"/>
151.10785 +                                       </points>
151.10786 +                                    </path>
151.10787 +                                    <rectangle x1="10.727272727272727" x2="14.954545454545457" y1="7.340909090909091" y2="9.431818181818183" rounding="0.0">
151.10788 +                                       <matte red="97" green="95" blue="28" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="-0.0087068975" saturationOffset="-0.009330213" brightnessOffset="-0.32156864" alphaOffset="0"/>
151.10789 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10790 +                                    </rectangle>
151.10791 +                                    <rectangle x1="15.045454545454545" x2="15.863636363636363" y1="13.954545454545455" y2="7.590909090909091" rounding="0.0">
151.10792 +                                       <matte red="97" green="95" blue="28" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="-0.0087068975" saturationOffset="-0.009330213" brightnessOffset="-0.32156864" alphaOffset="0"/>
151.10793 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10794 +                                    </rectangle>
151.10795 +                                    <rectangle x1="8.340909090909092" x2="14.97727272727273" y1="12.977272727272727" y2="13.977272727272728" rounding="0.0">
151.10796 +                                       <matte red="97" green="95" blue="28" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="-0.0087068975" saturationOffset="-0.009330213" brightnessOffset="-0.32156864" alphaOffset="0"/>
151.10797 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10798 +                                    </rectangle>
151.10799 +                                    <rectangle x1="7.25" x2="8.295454545454547" y1="11.0" y2="13.931818181818183" rounding="0.0">
151.10800 +                                       <matte red="97" green="95" blue="28" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="-0.0087068975" saturationOffset="-0.009330213" brightnessOffset="-0.32156864" alphaOffset="0"/>
151.10801 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10802 +                                    </rectangle>
151.10803 +                                    <rectangle x1="11.909090909090908" x2="12.795454545454547" y1="7.0" y2="10.954545454545455" rounding="0.0">
151.10804 +                                       <matte red="97" green="95" blue="28" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="-0.0087068975" saturationOffset="-0.009330213" brightnessOffset="-0.32156864" alphaOffset="0"/>
151.10805 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10806 +                                    </rectangle>
151.10807 +                                    <rectangle x1="5.0227272727272725" x2="12.0" y1="9.977272727272727" y2="10.795454545454547" rounding="0.0">
151.10808 +                                       <matte red="97" green="95" blue="28" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="-0.0087068975" saturationOffset="-0.009330213" brightnessOffset="-0.32156864" alphaOffset="0"/>
151.10809 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10810 +                                    </rectangle>
151.10811 +                                    <rectangle x1="4.204545454545454" x2="5.136363636363637" y1="10.886363636363637" y2="6.9772727272727275" rounding="0.0">
151.10812 +                                       <matte red="97" green="95" blue="28" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="-0.0087068975" saturationOffset="-0.009330213" brightnessOffset="-0.32156864" alphaOffset="0"/>
151.10813 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10814 +                                    </rectangle>
151.10815 +                                    <rectangle x1="4.113636363636363" x2="12.818181818181822" y1="5.0227272727272725" y2="6.9772727272727275" rounding="0.0">
151.10816 +                                       <matte red="97" green="95" blue="28" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="-0.0087068975" saturationOffset="-0.009330213" brightnessOffset="-0.32156864" alphaOffset="0"/>
151.10817 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10818 +                                    </rectangle>
151.10819 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10820 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10821 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10822 +                                    </rectangle>
151.10823 +                                    <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.10824 +                                       <gradient cycleMethod="NO_CYCLE">
151.10825 +                                          <stop position="0.0" midpoint="0.5">
151.10826 +                                             <matte red="164" green="176" blue="110" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.02642706" saturationOffset="-0.3456704" brightnessOffset="-0.011764705" alphaOffset="0"/>
151.10827 +                                          </stop>
151.10828 +                                          <stop position="0.53977275" midpoint="0.5">
151.10829 +                                             <matte red="98" green="118" blue="4" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.025363803" saturationOffset="0.2454313" brightnessOffset="-0.2392157" alphaOffset="0"/>
151.10830 +                                          </stop>
151.10831 +                                          <stop position="0.6505682" midpoint="0.5">
151.10832 +                                             <matte red="99" green="119" blue="5" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.025363803" saturationOffset="0.2373128" brightnessOffset="-0.23529413" alphaOffset="0"/>
151.10833 +                                          </stop>
151.10834 +                                          <stop position="1.0" midpoint="0.5">
151.10835 +                                             <matte red="125" green="145" blue="31" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.025363803" saturationOffset="0.0655365" brightnessOffset="-0.13333333" alphaOffset="0"/>
151.10836 +                                          </stop>
151.10837 +                                       </gradient>
151.10838 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.10839 +                                    </rectangle>
151.10840 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.10841 +                                       <gradient cycleMethod="NO_CYCLE">
151.10842 +                                          <stop position="0.0" midpoint="0.5">
151.10843 +                                             <matte red="0" green="15" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.1627907" saturationOffset="0.2793296" brightnessOffset="-0.6431373" alphaOffset="0"/>
151.10844 +                                          </stop>
151.10845 +                                          <stop position="1.0" midpoint="0.5">
151.10846 +                                             <matte red="98" green="118" blue="4" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.025363803" saturationOffset="0.2454313" brightnessOffset="-0.2392157" alphaOffset="0"/>
151.10847 +                                          </stop>
151.10848 +                                       </gradient>
151.10849 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.10850 +                                    </rectangle>
151.10851 +                                    <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.10852 +                                       <matte red="83" green="86" blue="93" alpha="70" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.0029994324" brightnessOffset="-0.38039216" alphaOffset="-185"/>
151.10853 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10854 +                                    </rectangle>
151.10855 +                                 </shapes>
151.10856 +                                 <effects/>
151.10857 +                              </layer>
151.10858 +                              <templateLayer fileName="113e1f88fc4.png">
151.10859 +                                 <layer name="Template" type="template">
151.10860 +                                    <opacity>1.0</opacity>
151.10861 +                                    <fillOpacity>1.0</fillOpacity>
151.10862 +                                    <blendingMode>NORMAL</blendingMode>
151.10863 +                                    <locked>false</locked>
151.10864 +                                    <visible>false</visible>
151.10865 +                                    <shapes/>
151.10866 +                                    <effects/>
151.10867 +                                 </layer>
151.10868 +                              </templateLayer>
151.10869 +                           </canvas>
151.10870 +                        </state>
151.10871 +                        <state stateKeys="MouseOver+WindowMaximized">
151.10872 +                           <style>
151.10873 +                              <textForeground/>
151.10874 +                              <textBackground/>
151.10875 +                              <background/>
151.10876 +                              <uiproperties/>
151.10877 +                           </style>
151.10878 +                           <canvas>
151.10879 +                              <size width="19" height="18"/>
151.10880 +                              <nextLayerNameIndex>5</nextLayerNameIndex>
151.10881 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.10882 +                              <layer name="Layer 1">
151.10883 +                                 <opacity>1.0</opacity>
151.10884 +                                 <fillOpacity>1.0</fillOpacity>
151.10885 +                                 <blendingMode>NORMAL</blendingMode>
151.10886 +                                 <locked>false</locked>
151.10887 +                                 <visible>true</visible>
151.10888 +                                 <shapes>
151.10889 +                                    <path>
151.10890 +                                       <matte red="255" green="255" blue="255" alpha="222" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-33"/>
151.10891 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10892 +                                       <points>
151.10893 +                                          <point x="13.0" y="7.0" cp1x="13.0" cp1y="7.0" cp2x="13.0" cp2y="7.0"/>
151.10894 +                                          <point x="13.0" y="9.0" cp1x="13.0" cp1y="9.0" cp2x="13.0" cp2y="9.0"/>
151.10895 +                                          <point x="14.0" y="9.0" cp1x="14.0" cp1y="9.0" cp2x="14.0" cp2y="9.0"/>
151.10896 +                                          <point x="14.0" y="12.0" cp1x="14.0" cp1y="12.0" cp2x="14.0" cp2y="12.0"/>
151.10897 +                                          <point x="8.0" y="12.0" cp1x="8.0" cp1y="12.0" cp2x="8.0" cp2y="12.0"/>
151.10898 +                                          <point x="8.0" y="11.0" cp1x="8.0" cp1y="11.0" cp2x="8.0" cp2y="11.0"/>
151.10899 +                                          <point x="7.0" y="11.0" cp1x="7.0" cp1y="11.0" cp2x="7.0" cp2y="11.0"/>
151.10900 +                                          <point x="7.0" y="13.0" cp1x="7.0" cp1y="13.0" cp2x="7.0" cp2y="13.0"/>
151.10901 +                                          <point x="15.0" y="13.0" cp1x="15.0" cp1y="13.0" cp2x="15.0" cp2y="13.0"/>
151.10902 +                                          <point x="15.0" y="7.0" cp1x="15.0" cp1y="7.0" cp2x="15.0" cp2y="7.0"/>
151.10903 +                                       </points>
151.10904 +                                    </path>
151.10905 +                                    <path>
151.10906 +                                       <matte red="255" green="255" blue="255" alpha="242" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-13"/>
151.10907 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10908 +                                       <points>
151.10909 +                                          <point x="4.0" y="4.0" cp1x="4.0" cp1y="4.0" cp2x="4.0" cp2y="4.0"/>
151.10910 +                                          <point x="12.0" y="4.0" cp1x="12.0" cp1y="4.0" cp2x="12.0" cp2y="4.0"/>
151.10911 +                                          <point x="12.0" y="10.0" cp1x="12.0" cp1y="10.0" cp2x="12.0" cp2y="10.0"/>
151.10912 +                                          <point x="4.0" y="10.0" cp1x="4.0" cp1y="10.0" cp2x="4.0" cp2y="10.0"/>
151.10913 +                                          <point x="4.0" y="6.0" cp1x="4.0" cp1y="6.0" cp2x="4.0" cp2y="6.0"/>
151.10914 +                                          <point x="5.0" y="6.0" cp1x="5.0" cp1y="6.0" cp2x="5.0" cp2y="6.0"/>
151.10915 +                                          <point x="5.0" y="9.0" cp1x="5.0" cp1y="9.0" cp2x="5.0" cp2y="9.0"/>
151.10916 +                                          <point x="11.0" y="9.0" cp1x="11.0" cp1y="9.0" cp2x="11.0" cp2y="9.0"/>
151.10917 +                                          <point x="11.0" y="6.0" cp1x="11.0" cp1y="6.0" cp2x="11.0" cp2y="6.0"/>
151.10918 +                                          <point x="4.0" y="6.0" cp1x="4.0" cp1y="6.0" cp2x="4.0" cp2y="6.0"/>
151.10919 +                                       </points>
151.10920 +                                    </path>
151.10921 +                                    <rectangle x1="10.727272727272727" x2="14.954545454545457" y1="7.340909090909091" y2="9.431818181818183" rounding="0.0">
151.10922 +                                       <matte red="125" green="136" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.009604409" saturationOffset="0.2793296" brightnessOffset="-0.16862744" alphaOffset="0"/>
151.10923 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10924 +                                    </rectangle>
151.10925 +                                    <rectangle x1="15.045454545454545" x2="15.863636363636363" y1="13.954545454545455" y2="7.590909090909091" rounding="0.0">
151.10926 +                                       <matte red="129" green="140" blue="3" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.009506017" saturationOffset="0.257901" brightnessOffset="-0.15294117" alphaOffset="0"/>
151.10927 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10928 +                                    </rectangle>
151.10929 +                                    <rectangle x1="8.340909090909092" x2="14.97727272727273" y1="12.977272727272727" y2="13.977272727272728" rounding="0.0">
151.10930 +                                       <matte red="124" green="137" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.011939123" saturationOffset="0.2793296" brightnessOffset="-0.16470587" alphaOffset="0"/>
151.10931 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10932 +                                    </rectangle>
151.10933 +                                    <rectangle x1="7.25" x2="8.295454545454547" y1="11.0" y2="13.931818181818183" rounding="0.0">
151.10934 +                                       <matte red="127" green="140" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.011600211" saturationOffset="0.2793296" brightnessOffset="-0.15294117" alphaOffset="0"/>
151.10935 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10936 +                                    </rectangle>
151.10937 +                                    <rectangle x1="11.909090909090908" x2="12.795454545454547" y1="7.0" y2="10.954545454545455" rounding="0.0">
151.10938 +                                       <matte red="125" green="136" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.009604409" saturationOffset="0.2793296" brightnessOffset="-0.16862744" alphaOffset="0"/>
151.10939 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10940 +                                    </rectangle>
151.10941 +                                    <rectangle x1="5.0227272727272725" x2="12.0" y1="9.977272727272727" y2="10.795454545454547" rounding="0.0">
151.10942 +                                       <matte red="113" green="126" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.013319805" saturationOffset="0.2793296" brightnessOffset="-0.20784315" alphaOffset="0"/>
151.10943 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10944 +                                    </rectangle>
151.10945 +                                    <rectangle x1="4.204545454545454" x2="5.136363636363637" y1="10.886363636363637" y2="6.9772727272727275" rounding="0.0">
151.10946 +                                       <matte red="117" green="130" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.01279068" saturationOffset="0.2793296" brightnessOffset="-0.19215685" alphaOffset="0"/>
151.10947 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10948 +                                    </rectangle>
151.10949 +                                    <rectangle x1="4.113636363636363" x2="12.818181818181822" y1="5.0227272727272725" y2="6.9772727272727275" rounding="0.0">
151.10950 +                                       <matte red="108" green="122" blue="0" alpha="206" uiDefaultParentName="nimbusGreen" hueOffset="0.015249729" saturationOffset="0.2793296" brightnessOffset="-0.22352943" alphaOffset="-49"/>
151.10951 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10952 +                                    </rectangle>
151.10953 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.10954 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.10955 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10956 +                                    </rectangle>
151.10957 +                                    <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.10958 +                                       <gradient cycleMethod="NO_CYCLE">
151.10959 +                                          <stop position="0.0" midpoint="0.5">
151.10960 +                                             <matte red="187" green="193" blue="120" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.009822637" saturationOffset="-0.34243205" brightnessOffset="0.054901958" alphaOffset="0"/>
151.10961 +                                          </stop>
151.10962 +                                          <stop position="0.53977275" midpoint="0.5">
151.10963 +                                             <matte red="138" green="149" blue="22" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.010559708" saturationOffset="0.13167858" brightnessOffset="-0.11764705" alphaOffset="0"/>
151.10964 +                                          </stop>
151.10965 +                                          <stop position="0.6505682" midpoint="0.5">
151.10966 +                                             <matte red="139" green="150" blue="23" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.010559708" saturationOffset="0.12599629" brightnessOffset="-0.11372548" alphaOffset="0"/>
151.10967 +                                          </stop>
151.10968 +                                          <stop position="1.0" midpoint="0.5">
151.10969 +                                             <matte red="165" green="176" blue="49" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.010559708" saturationOffset="9.2053413E-4" brightnessOffset="-0.011764705" alphaOffset="0"/>
151.10970 +                                          </stop>
151.10971 +                                       </gradient>
151.10972 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.10973 +                                    </rectangle>
151.10974 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.10975 +                                       <gradient cycleMethod="NO_CYCLE">
151.10976 +                                          <stop position="0.0" midpoint="0.5">
151.10977 +                                             <matte red="0" green="19" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.1627907" saturationOffset="0.2793296" brightnessOffset="-0.627451" alphaOffset="0"/>
151.10978 +                                          </stop>
151.10979 +                                          <stop position="1.0" midpoint="0.5">
151.10980 +                                             <matte red="59" green="84" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.04572721" saturationOffset="0.2793296" brightnessOffset="-0.37254903" alphaOffset="0"/>
151.10981 +                                          </stop>
151.10982 +                                       </gradient>
151.10983 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.10984 +                                    </rectangle>
151.10985 +                                    <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.10986 +                                       <matte red="83" green="86" blue="93" alpha="70" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.0029994324" brightnessOffset="-0.38039216" alphaOffset="-185"/>
151.10987 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.10988 +                                    </rectangle>
151.10989 +                                 </shapes>
151.10990 +                                 <effects/>
151.10991 +                              </layer>
151.10992 +                              <templateLayer fileName="113fbf3eb8c.png">
151.10993 +                                 <layer name="Template" type="template">
151.10994 +                                    <opacity>1.0</opacity>
151.10995 +                                    <fillOpacity>1.0</fillOpacity>
151.10996 +                                    <blendingMode>NORMAL</blendingMode>
151.10997 +                                    <locked>false</locked>
151.10998 +                                    <visible>false</visible>
151.10999 +                                    <shapes/>
151.11000 +                                    <effects/>
151.11001 +                                 </layer>
151.11002 +                              </templateLayer>
151.11003 +                           </canvas>
151.11004 +                        </state>
151.11005 +                        <state stateKeys="Pressed+WindowMaximized">
151.11006 +                           <style>
151.11007 +                              <textForeground/>
151.11008 +                              <textBackground/>
151.11009 +                              <background/>
151.11010 +                              <uiproperties/>
151.11011 +                           </style>
151.11012 +                           <canvas>
151.11013 +                              <size width="19" height="18"/>
151.11014 +                              <nextLayerNameIndex>5</nextLayerNameIndex>
151.11015 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.11016 +                              <layer name="Layer 1">
151.11017 +                                 <opacity>1.0</opacity>
151.11018 +                                 <fillOpacity>1.0</fillOpacity>
151.11019 +                                 <blendingMode>NORMAL</blendingMode>
151.11020 +                                 <locked>false</locked>
151.11021 +                                 <visible>true</visible>
151.11022 +                                 <shapes>
151.11023 +                                    <path>
151.11024 +                                       <matte red="255" green="255" blue="255" alpha="222" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-33"/>
151.11025 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11026 +                                       <points>
151.11027 +                                          <point x="13.0" y="7.0" cp1x="13.0" cp1y="7.0" cp2x="13.0" cp2y="7.0"/>
151.11028 +                                          <point x="13.0" y="9.0" cp1x="13.0" cp1y="9.0" cp2x="13.0" cp2y="9.0"/>
151.11029 +                                          <point x="14.0" y="9.0" cp1x="14.0" cp1y="9.0" cp2x="14.0" cp2y="9.0"/>
151.11030 +                                          <point x="14.0" y="12.0" cp1x="14.0" cp1y="12.0" cp2x="14.0" cp2y="12.0"/>
151.11031 +                                          <point x="8.0" y="12.0" cp1x="8.0" cp1y="12.0" cp2x="8.0" cp2y="12.0"/>
151.11032 +                                          <point x="8.0" y="11.0" cp1x="8.0" cp1y="11.0" cp2x="8.0" cp2y="11.0"/>
151.11033 +                                          <point x="7.0" y="11.0" cp1x="7.0" cp1y="11.0" cp2x="7.0" cp2y="11.0"/>
151.11034 +                                          <point x="7.0" y="13.0" cp1x="7.0" cp1y="13.0" cp2x="7.0" cp2y="13.0"/>
151.11035 +                                          <point x="15.0" y="13.0" cp1x="15.0" cp1y="13.0" cp2x="15.0" cp2y="13.0"/>
151.11036 +                                          <point x="15.0" y="7.0" cp1x="15.0" cp1y="7.0" cp2x="15.0" cp2y="7.0"/>
151.11037 +                                       </points>
151.11038 +                                    </path>
151.11039 +                                    <path>
151.11040 +                                       <matte red="255" green="255" blue="255" alpha="242" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-13"/>
151.11041 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11042 +                                       <points>
151.11043 +                                          <point x="4.0" y="4.0" cp1x="4.0" cp1y="4.0" cp2x="4.0" cp2y="4.0"/>
151.11044 +                                          <point x="12.0" y="4.0" cp1x="12.0" cp1y="4.0" cp2x="12.0" cp2y="4.0"/>
151.11045 +                                          <point x="12.0" y="10.0" cp1x="12.0" cp1y="10.0" cp2x="12.0" cp2y="10.0"/>
151.11046 +                                          <point x="4.0" y="10.0" cp1x="4.0" cp1y="10.0" cp2x="4.0" cp2y="10.0"/>
151.11047 +                                          <point x="4.0" y="6.0" cp1x="4.0" cp1y="6.0" cp2x="4.0" cp2y="6.0"/>
151.11048 +                                          <point x="5.0" y="6.0" cp1x="5.0" cp1y="6.0" cp2x="5.0" cp2y="6.0"/>
151.11049 +                                          <point x="5.0" y="9.0" cp1x="5.0" cp1y="9.0" cp2x="5.0" cp2y="9.0"/>
151.11050 +                                          <point x="11.0" y="9.0" cp1x="11.0" cp1y="9.0" cp2x="11.0" cp2y="9.0"/>
151.11051 +                                          <point x="11.0" y="6.0" cp1x="11.0" cp1y="6.0" cp2x="11.0" cp2y="6.0"/>
151.11052 +                                          <point x="4.0" y="6.0" cp1x="4.0" cp1y="6.0" cp2x="4.0" cp2y="6.0"/>
151.11053 +                                       </points>
151.11054 +                                    </path>
151.11055 +                                    <rectangle x1="10.727272727272727" x2="14.954545454545457" y1="7.340909090909091" y2="9.431818181818183" rounding="0.0">
151.11056 +                                       <matte red="45" green="71" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.057156876" saturationOffset="0.2793296" brightnessOffset="-0.42352942" alphaOffset="0"/>
151.11057 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11058 +                                    </rectangle>
151.11059 +                                    <rectangle x1="15.045454545454545" x2="15.863636363636363" y1="13.954545454545455" y2="7.590909090909091" rounding="0.0">
151.11060 +                                       <matte red="55" green="80" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.048207358" saturationOffset="0.2793296" brightnessOffset="-0.3882353" alphaOffset="0"/>
151.11061 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11062 +                                    </rectangle>
151.11063 +                                    <rectangle x1="8.340909090909092" x2="14.97727272727273" y1="12.977272727272727" y2="13.977272727272728" rounding="0.0">
151.11064 +                                       <matte red="41" green="69" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.06375685" saturationOffset="0.2793296" brightnessOffset="-0.43137255" alphaOffset="0"/>
151.11065 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11066 +                                    </rectangle>
151.11067 +                                    <rectangle x1="7.0" x2="8.0" y1="11.0" y2="14.0" rounding="0.0">
151.11068 +                                       <matte red="42" green="71" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.06419912" saturationOffset="0.2793296" brightnessOffset="-0.42352942" alphaOffset="0"/>
151.11069 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11070 +                                    </rectangle>
151.11071 +                                    <rectangle x1="11.909090909090908" x2="12.795454545454547" y1="7.0" y2="10.954545454545455" rounding="0.0">
151.11072 +                                       <matte red="41" green="67" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.060800627" saturationOffset="0.2793296" brightnessOffset="-0.4392157" alphaOffset="0"/>
151.11073 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11074 +                                    </rectangle>
151.11075 +                                    <rectangle x1="5.0227272727272725" x2="12.0" y1="9.977272727272727" y2="10.795454545454547" rounding="0.0">
151.11076 +                                       <matte red="36" green="63" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.0675526" saturationOffset="0.2793296" brightnessOffset="-0.454902" alphaOffset="0"/>
151.11077 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11078 +                                    </rectangle>
151.11079 +                                    <rectangle x1="4.204545454545454" x2="5.136363636363637" y1="10.886363636363637" y2="6.9772727272727275" rounding="0.0">
151.11080 +                                       <matte red="38" green="65" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.06535478" saturationOffset="0.2793296" brightnessOffset="-0.44705883" alphaOffset="0"/>
151.11081 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11082 +                                    </rectangle>
151.11083 +                                    <rectangle x1="4.113636363636363" x2="12.818181818181822" y1="5.0227272727272725" y2="6.9772727272727275" rounding="0.0">
151.11084 +                                       <matte red="19" green="48" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.09681849" saturationOffset="0.2793296" brightnessOffset="-0.5137255" alphaOffset="0"/>
151.11085 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11086 +                                    </rectangle>
151.11087 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.11088 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.11089 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11090 +                                    </rectangle>
151.11091 +                                    <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.11092 +                                       <gradient cycleMethod="NO_CYCLE">
151.11093 +                                          <stop position="0.0" midpoint="0.5">
151.11094 +                                             <matte red="123" green="139" blue="72" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.03592503" saturationOffset="-0.23865601" brightnessOffset="-0.15686274" alphaOffset="0"/>
151.11095 +                                          </stop>
151.11096 +                                          <stop position="0.53977275" midpoint="0.5">
151.11097 +                                             <matte red="74" green="96" blue="4" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.035979107" saturationOffset="0.23766291" brightnessOffset="-0.3254902" alphaOffset="0"/>
151.11098 +                                          </stop>
151.11099 +                                          <stop position="0.6505682" midpoint="0.5">
151.11100 +                                             <matte red="71" green="94" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.03690417" saturationOffset="0.2793296" brightnessOffset="-0.33333334" alphaOffset="0"/>
151.11101 +                                          </stop>
151.11102 +                                          <stop position="1.0" midpoint="0.5">
151.11103 +                                             <matte red="125" green="145" blue="31" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.025363803" saturationOffset="0.0655365" brightnessOffset="-0.13333333" alphaOffset="0"/>
151.11104 +                                          </stop>
151.11105 +                                       </gradient>
151.11106 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.11107 +                                    </rectangle>
151.11108 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.11109 +                                       <gradient cycleMethod="NO_CYCLE">
151.11110 +                                          <stop position="0.0" midpoint="0.5">
151.11111 +                                             <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="-0.17054264" saturationOffset="-0.7206704" brightnessOffset="-0.7019608" alphaOffset="0"/>
151.11112 +                                          </stop>
151.11113 +                                          <stop position="1.0" midpoint="0.5">
151.11114 +                                             <matte red="30" green="59" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.07804492" saturationOffset="0.2793296" brightnessOffset="-0.47058827" alphaOffset="0"/>
151.11115 +                                          </stop>
151.11116 +                                       </gradient>
151.11117 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.11118 +                                    </rectangle>
151.11119 +                                    <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.11120 +                                       <matte red="83" green="86" blue="93" alpha="70" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.0029994324" brightnessOffset="-0.38039216" alphaOffset="-185"/>
151.11121 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11122 +                                    </rectangle>
151.11123 +                                 </shapes>
151.11124 +                                 <effects/>
151.11125 +                              </layer>
151.11126 +                              <templateLayer fileName="113fbfaf2cf.png">
151.11127 +                                 <layer name="Template" type="template">
151.11128 +                                    <opacity>1.0</opacity>
151.11129 +                                    <fillOpacity>1.0</fillOpacity>
151.11130 +                                    <blendingMode>NORMAL</blendingMode>
151.11131 +                                    <locked>false</locked>
151.11132 +                                    <visible>false</visible>
151.11133 +                                    <shapes/>
151.11134 +                                    <effects/>
151.11135 +                                 </layer>
151.11136 +                              </templateLayer>
151.11137 +                           </canvas>
151.11138 +                        </state>
151.11139 +                        <state stateKeys="Enabled+WindowNotFocused+WindowMaximized">
151.11140 +                           <style>
151.11141 +                              <textForeground/>
151.11142 +                              <textBackground/>
151.11143 +                              <background/>
151.11144 +                              <uiproperties/>
151.11145 +                           </style>
151.11146 +                           <canvas>
151.11147 +                              <size width="19" height="18"/>
151.11148 +                              <nextLayerNameIndex>5</nextLayerNameIndex>
151.11149 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.11150 +                              <layer name="Layer 1">
151.11151 +                                 <opacity>1.0</opacity>
151.11152 +                                 <fillOpacity>1.0</fillOpacity>
151.11153 +                                 <blendingMode>NORMAL</blendingMode>
151.11154 +                                 <locked>false</locked>
151.11155 +                                 <visible>true</visible>
151.11156 +                                 <shapes>
151.11157 +                                    <path>
151.11158 +                                       <matte red="100" green="103" blue="109" alpha="222" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.027957506" brightnessOffset="-0.31764707" alphaOffset="-33"/>
151.11159 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11160 +                                       <points>
151.11161 +                                          <point x="13.0" y="7.0" cp1x="13.0" cp1y="7.0" cp2x="13.0" cp2y="7.0"/>
151.11162 +                                          <point x="13.0" y="9.0" cp1x="13.0" cp1y="9.0" cp2x="13.0" cp2y="9.0"/>
151.11163 +                                          <point x="14.0" y="9.0" cp1x="14.0" cp1y="9.0" cp2x="14.0" cp2y="9.0"/>
151.11164 +                                          <point x="14.0" y="12.0" cp1x="14.0" cp1y="12.0" cp2x="14.0" cp2y="12.0"/>
151.11165 +                                          <point x="8.0" y="12.0" cp1x="8.0" cp1y="12.0" cp2x="8.0" cp2y="12.0"/>
151.11166 +                                          <point x="8.0" y="11.0" cp1x="8.0" cp1y="11.0" cp2x="8.0" cp2y="11.0"/>
151.11167 +                                          <point x="7.0" y="11.0" cp1x="7.0" cp1y="11.0" cp2x="7.0" cp2y="11.0"/>
151.11168 +                                          <point x="7.0" y="13.0" cp1x="7.0" cp1y="13.0" cp2x="7.0" cp2y="13.0"/>
151.11169 +                                          <point x="15.0" y="13.0" cp1x="15.0" cp1y="13.0" cp2x="15.0" cp2y="13.0"/>
151.11170 +                                          <point x="15.0" y="7.0" cp1x="15.0" cp1y="7.0" cp2x="15.0" cp2y="7.0"/>
151.11171 +                                       </points>
151.11172 +                                    </path>
151.11173 +                                    <path>
151.11174 +                                       <matte red="102" green="105" blue="111" alpha="242" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.029445238" brightnessOffset="-0.30980393" alphaOffset="-13"/>
151.11175 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11176 +                                       <points>
151.11177 +                                          <point x="4.0" y="4.0" cp1x="4.0" cp1y="4.0" cp2x="4.0" cp2y="4.0"/>
151.11178 +                                          <point x="12.0" y="4.0" cp1x="12.0" cp1y="4.0" cp2x="12.0" cp2y="4.0"/>
151.11179 +                                          <point x="12.0" y="10.0" cp1x="12.0" cp1y="10.0" cp2x="12.0" cp2y="10.0"/>
151.11180 +                                          <point x="4.0" y="10.0" cp1x="4.0" cp1y="10.0" cp2x="4.0" cp2y="10.0"/>
151.11181 +                                          <point x="4.0" y="6.0" cp1x="4.0" cp1y="6.0" cp2x="4.0" cp2y="6.0"/>
151.11182 +                                          <point x="5.0" y="6.0" cp1x="5.0" cp1y="6.0" cp2x="5.0" cp2y="6.0"/>
151.11183 +                                          <point x="5.0" y="9.0" cp1x="5.0" cp1y="9.0" cp2x="5.0" cp2y="9.0"/>
151.11184 +                                          <point x="11.0" y="9.0" cp1x="11.0" cp1y="9.0" cp2x="11.0" cp2y="9.0"/>
151.11185 +                                          <point x="11.0" y="6.0" cp1x="11.0" cp1y="6.0" cp2x="11.0" cp2y="6.0"/>
151.11186 +                                          <point x="4.0" y="6.0" cp1x="4.0" cp1y="6.0" cp2x="4.0" cp2y="6.0"/>
151.11187 +                                       </points>
151.11188 +                                    </path>
151.11189 +                                    <rectangle x1="10.727272727272727" x2="14.954545454545457" y1="7.340909090909091" y2="9.431818181818183" rounding="0.0">
151.11190 +                                       <matte red="185" green="189" blue="196" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.4355179" saturationOffset="-0.664548" brightnessOffset="0.06666666" alphaOffset="0"/>
151.11191 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11192 +                                    </rectangle>
151.11193 +                                    <rectangle x1="11.909090909090908" x2="12.795454545454547" y1="7.0" y2="10.954545454545455" rounding="0.0">
151.11194 +                                       <matte red="181" green="185" blue="192" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.4355179" saturationOffset="-0.6633787" brightnessOffset="0.05098039" alphaOffset="0"/>
151.11195 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11196 +                                    </rectangle>
151.11197 +                                    <rectangle x1="5.0227272727272725" x2="12.0" y1="9.977272727272727" y2="10.795454545454547" rounding="0.0">
151.11198 +                                       <matte red="179" green="183" blue="191" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.44056845" saturationOffset="-0.6578432" brightnessOffset="0.04705882" alphaOffset="0"/>
151.11199 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11200 +                                    </rectangle>
151.11201 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.11202 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.11203 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11204 +                                    </rectangle>
151.11205 +                                    <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.11206 +                                       <gradient cycleMethod="NO_CYCLE">
151.11207 +                                          <stop position="0.0" midpoint="0.5">
151.11208 +                                             <matte red="219" green="221" blue="224" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.4294573" saturationOffset="-0.698349" brightnessOffset="0.17647058" alphaOffset="0"/>
151.11209 +                                          </stop>
151.11210 +                                          <stop position="0.53977275" midpoint="0.5">
151.11211 +                                             <matte red="188" green="191" blue="199" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.45066953" saturationOffset="-0.665394" brightnessOffset="0.07843137" alphaOffset="0"/>
151.11212 +                                          </stop>
151.11213 +                                          <stop position="0.6505682" midpoint="0.5">
151.11214 +                                             <matte red="183" green="187" blue="195" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.44056845" saturationOffset="-0.65913194" brightnessOffset="0.062745094" alphaOffset="0"/>
151.11215 +                                          </stop>
151.11216 +                                          <stop position="1.0" midpoint="0.5">
151.11217 +                                             <matte red="189" green="193" blue="201" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.44056845" saturationOffset="-0.6609689" brightnessOffset="0.086274505" alphaOffset="0"/>
151.11218 +                                          </stop>
151.11219 +                                       </gradient>
151.11220 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.11221 +                                    </rectangle>
151.11222 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.11223 +                                       <gradient cycleMethod="NO_CYCLE">
151.11224 +                                          <stop position="0.0" midpoint="0.5">
151.11225 +                                             <matte red="136" green="141" blue="151" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.44056845" saturationOffset="-0.62133265" brightnessOffset="-0.109803915" alphaOffset="0"/>
151.11226 +                                          </stop>
151.11227 +                                          <stop position="1.0" midpoint="0.5">
151.11228 +                                             <matte red="95" green="100" blue="110" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.44056845" saturationOffset="-0.5843068" brightnessOffset="-0.27058825" alphaOffset="0"/>
151.11229 +                                          </stop>
151.11230 +                                       </gradient>
151.11231 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.11232 +                                    </rectangle>
151.11233 +                                 </shapes>
151.11234 +                                 <effects/>
151.11235 +                              </layer>
151.11236 +                              <templateLayer fileName="113fbfe1ab1.png">
151.11237 +                                 <layer name="Template" type="template">
151.11238 +                                    <opacity>1.0</opacity>
151.11239 +                                    <fillOpacity>1.0</fillOpacity>
151.11240 +                                    <blendingMode>NORMAL</blendingMode>
151.11241 +                                    <locked>false</locked>
151.11242 +                                    <visible>false</visible>
151.11243 +                                    <shapes/>
151.11244 +                                    <effects/>
151.11245 +                                 </layer>
151.11246 +                              </templateLayer>
151.11247 +                           </canvas>
151.11248 +                        </state>
151.11249 +                        <state stateKeys="MouseOver+WindowNotFocused+WindowMaximized">
151.11250 +                           <style>
151.11251 +                              <textForeground/>
151.11252 +                              <textBackground/>
151.11253 +                              <background/>
151.11254 +                              <uiproperties/>
151.11255 +                           </style>
151.11256 +                           <canvas>
151.11257 +                              <size width="19" height="18"/>
151.11258 +                              <nextLayerNameIndex>5</nextLayerNameIndex>
151.11259 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.11260 +                              <layer name="Layer 1">
151.11261 +                                 <opacity>1.0</opacity>
151.11262 +                                 <fillOpacity>1.0</fillOpacity>
151.11263 +                                 <blendingMode>NORMAL</blendingMode>
151.11264 +                                 <locked>false</locked>
151.11265 +                                 <visible>true</visible>
151.11266 +                                 <shapes>
151.11267 +                                    <path>
151.11268 +                                       <matte red="255" green="255" blue="255" alpha="222" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-33"/>
151.11269 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11270 +                                       <points>
151.11271 +                                          <point x="13.0" y="7.0" cp1x="13.0" cp1y="7.0" cp2x="13.0" cp2y="7.0"/>
151.11272 +                                          <point x="13.0" y="9.0" cp1x="13.0" cp1y="9.0" cp2x="13.0" cp2y="9.0"/>
151.11273 +                                          <point x="14.0" y="9.0" cp1x="14.0" cp1y="9.0" cp2x="14.0" cp2y="9.0"/>
151.11274 +                                          <point x="14.0" y="12.0" cp1x="14.0" cp1y="12.0" cp2x="14.0" cp2y="12.0"/>
151.11275 +                                          <point x="8.0" y="12.0" cp1x="8.0" cp1y="12.0" cp2x="8.0" cp2y="12.0"/>
151.11276 +                                          <point x="8.0" y="11.0" cp1x="8.0" cp1y="11.0" cp2x="8.0" cp2y="11.0"/>
151.11277 +                                          <point x="7.0" y="11.0" cp1x="7.0" cp1y="11.0" cp2x="7.0" cp2y="11.0"/>
151.11278 +                                          <point x="7.0" y="13.0" cp1x="7.0" cp1y="13.0" cp2x="7.0" cp2y="13.0"/>
151.11279 +                                          <point x="15.0" y="13.0" cp1x="15.0" cp1y="13.0" cp2x="15.0" cp2y="13.0"/>
151.11280 +                                          <point x="15.0" y="7.0" cp1x="15.0" cp1y="7.0" cp2x="15.0" cp2y="7.0"/>
151.11281 +                                       </points>
151.11282 +                                    </path>
151.11283 +                                    <path>
151.11284 +                                       <matte red="255" green="255" blue="255" alpha="242" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-13"/>
151.11285 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11286 +                                       <points>
151.11287 +                                          <point x="4.0" y="4.0" cp1x="4.0" cp1y="4.0" cp2x="4.0" cp2y="4.0"/>
151.11288 +                                          <point x="12.0" y="4.0" cp1x="12.0" cp1y="4.0" cp2x="12.0" cp2y="4.0"/>
151.11289 +                                          <point x="12.0" y="10.0" cp1x="12.0" cp1y="10.0" cp2x="12.0" cp2y="10.0"/>
151.11290 +                                          <point x="4.0" y="10.0" cp1x="4.0" cp1y="10.0" cp2x="4.0" cp2y="10.0"/>
151.11291 +                                          <point x="4.0" y="6.0" cp1x="4.0" cp1y="6.0" cp2x="4.0" cp2y="6.0"/>
151.11292 +                                          <point x="5.0" y="6.0" cp1x="5.0" cp1y="6.0" cp2x="5.0" cp2y="6.0"/>
151.11293 +                                          <point x="5.0" y="9.0" cp1x="5.0" cp1y="9.0" cp2x="5.0" cp2y="9.0"/>
151.11294 +                                          <point x="11.0" y="9.0" cp1x="11.0" cp1y="9.0" cp2x="11.0" cp2y="9.0"/>
151.11295 +                                          <point x="11.0" y="6.0" cp1x="11.0" cp1y="6.0" cp2x="11.0" cp2y="6.0"/>
151.11296 +                                          <point x="4.0" y="6.0" cp1x="4.0" cp1y="6.0" cp2x="4.0" cp2y="6.0"/>
151.11297 +                                       </points>
151.11298 +                                    </path>
151.11299 +                                    <rectangle x1="10.727272727272727" x2="14.954545454545457" y1="7.340909090909091" y2="9.431818181818183" rounding="0.0">
151.11300 +                                       <matte red="125" green="136" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.009604409" saturationOffset="0.2793296" brightnessOffset="-0.16862744" alphaOffset="0"/>
151.11301 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11302 +                                    </rectangle>
151.11303 +                                    <rectangle x1="15.045454545454545" x2="15.863636363636363" y1="13.954545454545455" y2="7.590909090909091" rounding="0.0">
151.11304 +                                       <matte red="129" green="140" blue="3" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.009506017" saturationOffset="0.257901" brightnessOffset="-0.15294117" alphaOffset="0"/>
151.11305 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11306 +                                    </rectangle>
151.11307 +                                    <rectangle x1="8.340909090909092" x2="14.97727272727273" y1="12.977272727272727" y2="13.977272727272728" rounding="0.0">
151.11308 +                                       <matte red="124" green="137" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.011939123" saturationOffset="0.2793296" brightnessOffset="-0.16470587" alphaOffset="0"/>
151.11309 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11310 +                                    </rectangle>
151.11311 +                                    <rectangle x1="7.25" x2="8.295454545454547" y1="11.0" y2="13.931818181818183" rounding="0.0">
151.11312 +                                       <matte red="127" green="140" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.011600211" saturationOffset="0.2793296" brightnessOffset="-0.15294117" alphaOffset="0"/>
151.11313 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11314 +                                    </rectangle>
151.11315 +                                    <rectangle x1="11.909090909090908" x2="12.795454545454547" y1="7.0" y2="10.954545454545455" rounding="0.0">
151.11316 +                                       <matte red="125" green="136" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.009604409" saturationOffset="0.2793296" brightnessOffset="-0.16862744" alphaOffset="0"/>
151.11317 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11318 +                                    </rectangle>
151.11319 +                                    <rectangle x1="5.0227272727272725" x2="12.0" y1="9.977272727272727" y2="10.795454545454547" rounding="0.0">
151.11320 +                                       <matte red="113" green="126" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.013319805" saturationOffset="0.2793296" brightnessOffset="-0.20784315" alphaOffset="0"/>
151.11321 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11322 +                                    </rectangle>
151.11323 +                                    <rectangle x1="4.204545454545454" x2="5.136363636363637" y1="10.886363636363637" y2="6.9772727272727275" rounding="0.0">
151.11324 +                                       <matte red="117" green="130" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.01279068" saturationOffset="0.2793296" brightnessOffset="-0.19215685" alphaOffset="0"/>
151.11325 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11326 +                                    </rectangle>
151.11327 +                                    <rectangle x1="4.113636363636363" x2="12.818181818181822" y1="5.0227272727272725" y2="6.9772727272727275" rounding="0.0">
151.11328 +                                       <matte red="108" green="122" blue="0" alpha="206" uiDefaultParentName="nimbusGreen" hueOffset="0.015249729" saturationOffset="0.2793296" brightnessOffset="-0.22352943" alphaOffset="-49"/>
151.11329 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11330 +                                    </rectangle>
151.11331 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.11332 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.11333 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11334 +                                    </rectangle>
151.11335 +                                    <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.11336 +                                       <gradient cycleMethod="NO_CYCLE">
151.11337 +                                          <stop position="0.0" midpoint="0.5">
151.11338 +                                             <matte red="187" green="193" blue="120" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.009822637" saturationOffset="-0.34243205" brightnessOffset="0.054901958" alphaOffset="0"/>
151.11339 +                                          </stop>
151.11340 +                                          <stop position="0.53977275" midpoint="0.5">
151.11341 +                                             <matte red="138" green="149" blue="22" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.010559708" saturationOffset="0.13167858" brightnessOffset="-0.11764705" alphaOffset="0"/>
151.11342 +                                          </stop>
151.11343 +                                          <stop position="0.6505682" midpoint="0.5">
151.11344 +                                             <matte red="139" green="150" blue="23" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.010559708" saturationOffset="0.12599629" brightnessOffset="-0.11372548" alphaOffset="0"/>
151.11345 +                                          </stop>
151.11346 +                                          <stop position="1.0" midpoint="0.5">
151.11347 +                                             <matte red="165" green="176" blue="49" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.010559708" saturationOffset="9.2053413E-4" brightnessOffset="-0.011764705" alphaOffset="0"/>
151.11348 +                                          </stop>
151.11349 +                                       </gradient>
151.11350 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.11351 +                                    </rectangle>
151.11352 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.11353 +                                       <gradient cycleMethod="NO_CYCLE">
151.11354 +                                          <stop position="0.0" midpoint="0.5">
151.11355 +                                             <matte red="0" green="19" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.1627907" saturationOffset="0.2793296" brightnessOffset="-0.627451" alphaOffset="0"/>
151.11356 +                                          </stop>
151.11357 +                                          <stop position="1.0" midpoint="0.5">
151.11358 +                                             <matte red="59" green="84" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.04572721" saturationOffset="0.2793296" brightnessOffset="-0.37254903" alphaOffset="0"/>
151.11359 +                                          </stop>
151.11360 +                                       </gradient>
151.11361 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.11362 +                                    </rectangle>
151.11363 +                                    <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.11364 +                                       <matte red="83" green="86" blue="93" alpha="70" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.0029994324" brightnessOffset="-0.38039216" alphaOffset="-185"/>
151.11365 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11366 +                                    </rectangle>
151.11367 +                                 </shapes>
151.11368 +                                 <effects/>
151.11369 +                              </layer>
151.11370 +                              <templateLayer fileName="113fbf3eb8c.png">
151.11371 +                                 <layer name="Template" type="template">
151.11372 +                                    <opacity>1.0</opacity>
151.11373 +                                    <fillOpacity>1.0</fillOpacity>
151.11374 +                                    <blendingMode>NORMAL</blendingMode>
151.11375 +                                    <locked>false</locked>
151.11376 +                                    <visible>false</visible>
151.11377 +                                    <shapes/>
151.11378 +                                    <effects/>
151.11379 +                                 </layer>
151.11380 +                              </templateLayer>
151.11381 +                           </canvas>
151.11382 +                        </state>
151.11383 +                        <state stateKeys="Pressed+WindowNotFocused+WindowMaximized">
151.11384 +                           <style>
151.11385 +                              <textForeground/>
151.11386 +                              <textBackground/>
151.11387 +                              <background/>
151.11388 +                              <uiproperties/>
151.11389 +                           </style>
151.11390 +                           <canvas>
151.11391 +                              <size width="19" height="18"/>
151.11392 +                              <nextLayerNameIndex>5</nextLayerNameIndex>
151.11393 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.11394 +                              <layer name="Layer 1">
151.11395 +                                 <opacity>1.0</opacity>
151.11396 +                                 <fillOpacity>1.0</fillOpacity>
151.11397 +                                 <blendingMode>NORMAL</blendingMode>
151.11398 +                                 <locked>false</locked>
151.11399 +                                 <visible>true</visible>
151.11400 +                                 <shapes>
151.11401 +                                    <path>
151.11402 +                                       <matte red="255" green="255" blue="255" alpha="222" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-33"/>
151.11403 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11404 +                                       <points>
151.11405 +                                          <point x="13.0" y="7.0" cp1x="13.0" cp1y="7.0" cp2x="13.0" cp2y="7.0"/>
151.11406 +                                          <point x="13.0" y="9.0" cp1x="13.0" cp1y="9.0" cp2x="13.0" cp2y="9.0"/>
151.11407 +                                          <point x="14.0" y="9.0" cp1x="14.0" cp1y="9.0" cp2x="14.0" cp2y="9.0"/>
151.11408 +                                          <point x="14.0" y="12.0" cp1x="14.0" cp1y="12.0" cp2x="14.0" cp2y="12.0"/>
151.11409 +                                          <point x="8.0" y="12.0" cp1x="8.0" cp1y="12.0" cp2x="8.0" cp2y="12.0"/>
151.11410 +                                          <point x="8.0" y="11.0" cp1x="8.0" cp1y="11.0" cp2x="8.0" cp2y="11.0"/>
151.11411 +                                          <point x="7.0" y="11.0" cp1x="7.0" cp1y="11.0" cp2x="7.0" cp2y="11.0"/>
151.11412 +                                          <point x="7.0" y="13.0" cp1x="7.0" cp1y="13.0" cp2x="7.0" cp2y="13.0"/>
151.11413 +                                          <point x="15.0" y="13.0" cp1x="15.0" cp1y="13.0" cp2x="15.0" cp2y="13.0"/>
151.11414 +                                          <point x="15.0" y="7.0" cp1x="15.0" cp1y="7.0" cp2x="15.0" cp2y="7.0"/>
151.11415 +                                       </points>
151.11416 +                                    </path>
151.11417 +                                    <path>
151.11418 +                                       <matte red="255" green="255" blue="255" alpha="242" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-13"/>
151.11419 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11420 +                                       <points>
151.11421 +                                          <point x="4.0" y="4.0" cp1x="4.0" cp1y="4.0" cp2x="4.0" cp2y="4.0"/>
151.11422 +                                          <point x="12.0" y="4.0" cp1x="12.0" cp1y="4.0" cp2x="12.0" cp2y="4.0"/>
151.11423 +                                          <point x="12.0" y="10.0" cp1x="12.0" cp1y="10.0" cp2x="12.0" cp2y="10.0"/>
151.11424 +                                          <point x="4.0" y="10.0" cp1x="4.0" cp1y="10.0" cp2x="4.0" cp2y="10.0"/>
151.11425 +                                          <point x="4.0" y="6.0" cp1x="4.0" cp1y="6.0" cp2x="4.0" cp2y="6.0"/>
151.11426 +                                          <point x="5.0" y="6.0" cp1x="5.0" cp1y="6.0" cp2x="5.0" cp2y="6.0"/>
151.11427 +                                          <point x="5.0" y="9.0" cp1x="5.0" cp1y="9.0" cp2x="5.0" cp2y="9.0"/>
151.11428 +                                          <point x="11.0" y="9.0" cp1x="11.0" cp1y="9.0" cp2x="11.0" cp2y="9.0"/>
151.11429 +                                          <point x="11.0" y="6.0" cp1x="11.0" cp1y="6.0" cp2x="11.0" cp2y="6.0"/>
151.11430 +                                          <point x="4.0" y="6.0" cp1x="4.0" cp1y="6.0" cp2x="4.0" cp2y="6.0"/>
151.11431 +                                       </points>
151.11432 +                                    </path>
151.11433 +                                    <rectangle x1="10.727272727272727" x2="14.954545454545457" y1="7.340909090909091" y2="9.431818181818183" rounding="0.0">
151.11434 +                                       <matte red="45" green="71" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.057156876" saturationOffset="0.2793296" brightnessOffset="-0.42352942" alphaOffset="0"/>
151.11435 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11436 +                                    </rectangle>
151.11437 +                                    <rectangle x1="15.045454545454545" x2="15.863636363636363" y1="13.954545454545455" y2="7.590909090909091" rounding="0.0">
151.11438 +                                       <matte red="55" green="80" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.048207358" saturationOffset="0.2793296" brightnessOffset="-0.3882353" alphaOffset="0"/>
151.11439 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11440 +                                    </rectangle>
151.11441 +                                    <rectangle x1="8.340909090909092" x2="14.97727272727273" y1="12.977272727272727" y2="13.977272727272728" rounding="0.0">
151.11442 +                                       <matte red="41" green="69" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.06375685" saturationOffset="0.2793296" brightnessOffset="-0.43137255" alphaOffset="0"/>
151.11443 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11444 +                                    </rectangle>
151.11445 +                                    <rectangle x1="7.0" x2="8.0" y1="11.0" y2="14.0" rounding="0.0">
151.11446 +                                       <matte red="42" green="71" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.06419912" saturationOffset="0.2793296" brightnessOffset="-0.42352942" alphaOffset="0"/>
151.11447 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11448 +                                    </rectangle>
151.11449 +                                    <rectangle x1="11.909090909090908" x2="12.795454545454547" y1="7.0" y2="10.954545454545455" rounding="0.0">
151.11450 +                                       <matte red="41" green="67" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.060800627" saturationOffset="0.2793296" brightnessOffset="-0.4392157" alphaOffset="0"/>
151.11451 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11452 +                                    </rectangle>
151.11453 +                                    <rectangle x1="5.0227272727272725" x2="12.0" y1="9.977272727272727" y2="10.795454545454547" rounding="0.0">
151.11454 +                                       <matte red="36" green="63" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.0675526" saturationOffset="0.2793296" brightnessOffset="-0.454902" alphaOffset="0"/>
151.11455 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11456 +                                    </rectangle>
151.11457 +                                    <rectangle x1="4.204545454545454" x2="5.136363636363637" y1="10.886363636363637" y2="6.9772727272727275" rounding="0.0">
151.11458 +                                       <matte red="38" green="65" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.06535478" saturationOffset="0.2793296" brightnessOffset="-0.44705883" alphaOffset="0"/>
151.11459 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11460 +                                    </rectangle>
151.11461 +                                    <rectangle x1="4.113636363636363" x2="12.818181818181822" y1="5.0227272727272725" y2="6.9772727272727275" rounding="0.0">
151.11462 +                                       <matte red="19" green="48" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.09681849" saturationOffset="0.2793296" brightnessOffset="-0.5137255" alphaOffset="0"/>
151.11463 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11464 +                                    </rectangle>
151.11465 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.11466 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.11467 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11468 +                                    </rectangle>
151.11469 +                                    <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.11470 +                                       <gradient cycleMethod="NO_CYCLE">
151.11471 +                                          <stop position="0.0" midpoint="0.5">
151.11472 +                                             <matte red="123" green="139" blue="72" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.03592503" saturationOffset="-0.23865601" brightnessOffset="-0.15686274" alphaOffset="0"/>
151.11473 +                                          </stop>
151.11474 +                                          <stop position="0.53977275" midpoint="0.5">
151.11475 +                                             <matte red="74" green="96" blue="4" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.035979107" saturationOffset="0.23766291" brightnessOffset="-0.3254902" alphaOffset="0"/>
151.11476 +                                          </stop>
151.11477 +                                          <stop position="0.6505682" midpoint="0.5">
151.11478 +                                             <matte red="71" green="94" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.03690417" saturationOffset="0.2793296" brightnessOffset="-0.33333334" alphaOffset="0"/>
151.11479 +                                          </stop>
151.11480 +                                          <stop position="1.0" midpoint="0.5">
151.11481 +                                             <matte red="125" green="145" blue="31" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.025363803" saturationOffset="0.0655365" brightnessOffset="-0.13333333" alphaOffset="0"/>
151.11482 +                                          </stop>
151.11483 +                                       </gradient>
151.11484 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.11485 +                                    </rectangle>
151.11486 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.11487 +                                       <gradient cycleMethod="NO_CYCLE">
151.11488 +                                          <stop position="0.0" midpoint="0.5">
151.11489 +                                             <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="-0.17054264" saturationOffset="-0.7206704" brightnessOffset="-0.7019608" alphaOffset="0"/>
151.11490 +                                          </stop>
151.11491 +                                          <stop position="1.0" midpoint="0.5">
151.11492 +                                             <matte red="30" green="59" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.07804492" saturationOffset="0.2793296" brightnessOffset="-0.47058827" alphaOffset="0"/>
151.11493 +                                          </stop>
151.11494 +                                       </gradient>
151.11495 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.11496 +                                    </rectangle>
151.11497 +                                    <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.11498 +                                       <matte red="83" green="86" blue="93" alpha="70" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.0029994324" brightnessOffset="-0.38039216" alphaOffset="-185"/>
151.11499 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11500 +                                    </rectangle>
151.11501 +                                 </shapes>
151.11502 +                                 <effects/>
151.11503 +                              </layer>
151.11504 +                              <templateLayer fileName="113fbfaf2cf.png">
151.11505 +                                 <layer name="Template" type="template">
151.11506 +                                    <opacity>1.0</opacity>
151.11507 +                                    <fillOpacity>1.0</fillOpacity>
151.11508 +                                    <blendingMode>NORMAL</blendingMode>
151.11509 +                                    <locked>false</locked>
151.11510 +                                    <visible>false</visible>
151.11511 +                                    <shapes/>
151.11512 +                                    <effects/>
151.11513 +                                 </layer>
151.11514 +                              </templateLayer>
151.11515 +                           </canvas>
151.11516 +                        </state>
151.11517 +                        <state stateKeys="Disabled">
151.11518 +                           <style>
151.11519 +                              <textForeground/>
151.11520 +                              <textBackground/>
151.11521 +                              <background/>
151.11522 +                              <uiproperties/>
151.11523 +                           </style>
151.11524 +                           <canvas>
151.11525 +                              <size width="19" height="18"/>
151.11526 +                              <nextLayerNameIndex>6</nextLayerNameIndex>
151.11527 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.11528 +                              <layer name="Layer 5">
151.11529 +                                 <opacity>1.0</opacity>
151.11530 +                                 <fillOpacity>1.0</fillOpacity>
151.11531 +                                 <blendingMode>NORMAL</blendingMode>
151.11532 +                                 <locked>false</locked>
151.11533 +                                 <visible>true</visible>
151.11534 +                                 <shapes>
151.11535 +                                    <path>
151.11536 +                                       <gradient cycleMethod="NO_CYCLE">
151.11537 +                                          <stop position="0.26047903" midpoint="0.5">
151.11538 +                                             <matte red="195" green="199" blue="206" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.00505054" saturationOffset="-0.057128258" brightnessOffset="0.062745094" alphaOffset="0"/>
151.11539 +                                          </stop>
151.11540 +                                          <stop position="1.0" midpoint="0.5">
151.11541 +                                             <matte red="172" green="177" blue="186" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.003968239" saturationOffset="-0.035257496" brightnessOffset="-0.015686274" alphaOffset="0"/>
151.11542 +                                          </stop>
151.11543 +                                       </gradient>
151.11544 +                                       <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.11545 +                                       <points>
151.11546 +                                          <point x="4.0" y="4.0" cp1x="4.0" cp1y="4.0" cp2x="4.0" cp2y="4.0"/>
151.11547 +                                          <point x="4.0" y="13.0" cp1x="4.0" cp1y="13.0" cp2x="4.0" cp2y="13.0"/>
151.11548 +                                          <point x="15.0" y="13.0" cp1x="15.0" cp1y="13.0" cp2x="15.0" cp2y="13.0"/>
151.11549 +                                          <point x="15.0" y="6.0" cp1x="15.0" cp1y="6.0" cp2x="15.0" cp2y="6.0"/>
151.11550 +                                          <point x="14.0" y="6.0" cp1x="14.0" cp1y="6.0" cp2x="14.0" cp2y="6.0"/>
151.11551 +                                          <point x="14.0" y="12.0" cp1x="14.0" cp1y="12.0" cp2x="14.0" cp2y="12.0"/>
151.11552 +                                          <point x="5.0" y="12.0" cp1x="5.0" cp1y="12.0" cp2x="5.0" cp2y="12.0"/>
151.11553 +                                          <point x="5.0" y="6.0" cp1x="5.0" cp1y="6.0" cp2x="5.0" cp2y="6.0"/>
151.11554 +                                          <point x="15.0" y="6.0" cp1x="15.0" cp1y="6.0" cp2x="15.0" cp2y="6.0"/>
151.11555 +                                          <point x="15.0" y="4.0" cp1x="15.0" cp1y="4.0" cp2x="15.0" cp2y="4.0"/>
151.11556 +                                       </points>
151.11557 +                                    </path>
151.11558 +                                    <path>
151.11559 +                                       <matte red="165" green="169" blue="176" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.11560 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11561 +                                       <points>
151.11562 +                                          <point x="3.636363636363636" y="5.25" cp1x="3.636363636363636" cp1y="5.25" cp2x="3.636363636363636" cp2y="5.25"/>
151.11563 +                                          <point x="3.6590909090909083" y="13.431818181818185" cp1x="3.6590909090909083" cp1y="13.431818181818185" cp2x="3.6590909090909083" cp2y="13.431818181818185"/>
151.11564 +                                          <point x="15.500000000000004" y="13.40909090909091" cp1x="15.500000000000004" cp1y="13.40909090909091" cp2x="15.500000000000004" cp2y="13.40909090909091"/>
151.11565 +                                          <point x="15.56818181818182" y="5.25" cp1x="15.56818181818182" cp1y="5.25" cp2x="15.56818181818182" cp2y="5.25"/>
151.11566 +                                          <point x="13.727272727272725" y="5.25" cp1x="13.727272727272725" cp1y="5.25" cp2x="13.727272727272725" cp2y="5.25"/>
151.11567 +                                          <point x="13.90909090909091" y="12.045454545454547" cp1x="13.90909090909091" cp1y="12.045454545454547" cp2x="13.90909090909091" cp2y="12.045454545454547"/>
151.11568 +                                          <point x="5.318181818181818" y="11.81818181818182" cp1x="5.318181818181818" cp1y="11.81818181818182" cp2x="5.318181818181818" cp2y="11.81818181818182"/>
151.11569 +                                          <point x="5.409090909090909" y="6.954545454545454" cp1x="5.409090909090909" cp1y="6.954545454545454" cp2x="5.409090909090909" cp2y="6.954545454545454"/>
151.11570 +                                          <point x="13.795454545454543" y="6.931818181818181" cp1x="13.795454545454543" cp1y="6.931818181818181" cp2x="13.795454545454543" cp2y="6.931818181818181"/>
151.11571 +                                          <point x="13.727272727272734" y="5.2272727272727275" cp1x="13.727272727272734" cp1y="5.2272727272727275" cp2x="13.727272727272734" cp2y="5.2272727272727275"/>
151.11572 +                                       </points>
151.11573 +                                    </path>
151.11574 +                                 </shapes>
151.11575 +                                 <effects/>
151.11576 +                              </layer>
151.11577 +                              <layer name="Layer 1">
151.11578 +                                 <opacity>1.0</opacity>
151.11579 +                                 <fillOpacity>1.0</fillOpacity>
151.11580 +                                 <blendingMode>NORMAL</blendingMode>
151.11581 +                                 <locked>false</locked>
151.11582 +                                 <visible>true</visible>
151.11583 +                                 <shapes>
151.11584 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.11585 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.11586 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11587 +                                    </rectangle>
151.11588 +                                    <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.11589 +                                       <gradient cycleMethod="NO_CYCLE">
151.11590 +                                          <stop position="0.0" midpoint="0.5">
151.11591 +                                             <matte red="187" green="190" blue="196" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.44056845" saturationOffset="-0.67475206" brightnessOffset="0.06666666" alphaOffset="0"/>
151.11592 +                                          </stop>
151.11593 +                                          <stop position="0.53977275" midpoint="0.5">
151.11594 +                                             <matte red="164" green="169" blue="177" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.43202144" saturationOffset="-0.64722407" brightnessOffset="-0.007843137" alphaOffset="0"/>
151.11595 +                                          </stop>
151.11596 +                                          <stop position="0.6766467" midpoint="0.5">
151.11597 +                                             <matte red="158" green="163" blue="173" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.44056845" saturationOffset="-0.6339652" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.11598 +                                          </stop>
151.11599 +                                          <stop position="1.0" midpoint="0.5">
151.11600 +                                             <matte red="154" green="159" blue="169" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.44056845" saturationOffset="-0.631913" brightnessOffset="-0.039215684" alphaOffset="0"/>
151.11601 +                                          </stop>
151.11602 +                                       </gradient>
151.11603 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.11604 +                                    </rectangle>
151.11605 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.11606 +                                       <gradient cycleMethod="NO_CYCLE">
151.11607 +                                          <stop position="0.0" midpoint="0.5">
151.11608 +                                             <matte red="185" green="188" blue="193" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.43362403" saturationOffset="-0.6792196" brightnessOffset="0.054901958" alphaOffset="0"/>
151.11609 +                                          </stop>
151.11610 +                                          <stop position="1.0" midpoint="0.5">
151.11611 +                                             <matte red="154" green="159" blue="169" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.44056845" saturationOffset="-0.631913" brightnessOffset="-0.039215684" alphaOffset="0"/>
151.11612 +                                          </stop>
151.11613 +                                       </gradient>
151.11614 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.11615 +                                    </rectangle>
151.11616 +                                 </shapes>
151.11617 +                                 <effects/>
151.11618 +                              </layer>
151.11619 +                              <templateLayer fileName="113fc0648fb.png">
151.11620 +                                 <layer name="Template" type="template">
151.11621 +                                    <opacity>1.0</opacity>
151.11622 +                                    <fillOpacity>1.0</fillOpacity>
151.11623 +                                    <blendingMode>NORMAL</blendingMode>
151.11624 +                                    <locked>false</locked>
151.11625 +                                    <visible>false</visible>
151.11626 +                                    <shapes/>
151.11627 +                                    <effects/>
151.11628 +                                 </layer>
151.11629 +                              </templateLayer>
151.11630 +                           </canvas>
151.11631 +                        </state>
151.11632 +                        <state stateKeys="Enabled">
151.11633 +                           <style>
151.11634 +                              <textForeground/>
151.11635 +                              <textBackground/>
151.11636 +                              <background/>
151.11637 +                              <uiproperties/>
151.11638 +                           </style>
151.11639 +                           <canvas>
151.11640 +                              <size width="19" height="18"/>
151.11641 +                              <nextLayerNameIndex>6</nextLayerNameIndex>
151.11642 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.11643 +                              <layer name="Layer 5">
151.11644 +                                 <opacity>1.0</opacity>
151.11645 +                                 <fillOpacity>1.0</fillOpacity>
151.11646 +                                 <blendingMode>NORMAL</blendingMode>
151.11647 +                                 <locked>false</locked>
151.11648 +                                 <visible>true</visible>
151.11649 +                                 <shapes>
151.11650 +                                    <path>
151.11651 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.11652 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11653 +                                       <points>
151.11654 +                                          <point x="4.0" y="4.0" cp1x="4.0" cp1y="4.0" cp2x="4.0" cp2y="4.0"/>
151.11655 +                                          <point x="4.0" y="13.0" cp1x="4.0" cp1y="13.0" cp2x="4.0" cp2y="13.0"/>
151.11656 +                                          <point x="15.0" y="13.0" cp1x="15.0" cp1y="13.0" cp2x="15.0" cp2y="13.0"/>
151.11657 +                                          <point x="15.0" y="6.0" cp1x="15.0" cp1y="6.0" cp2x="15.0" cp2y="6.0"/>
151.11658 +                                          <point x="14.0" y="6.0" cp1x="14.0" cp1y="6.0" cp2x="14.0" cp2y="6.0"/>
151.11659 +                                          <point x="14.0" y="12.0" cp1x="14.0" cp1y="12.0" cp2x="14.0" cp2y="12.0"/>
151.11660 +                                          <point x="5.0" y="12.0" cp1x="5.0" cp1y="12.0" cp2x="5.0" cp2y="12.0"/>
151.11661 +                                          <point x="5.0" y="6.0" cp1x="5.0" cp1y="6.0" cp2x="5.0" cp2y="6.0"/>
151.11662 +                                          <point x="15.0" y="6.0" cp1x="15.0" cp1y="6.0" cp2x="15.0" cp2y="6.0"/>
151.11663 +                                          <point x="15.0" y="4.0" cp1x="15.0" cp1y="4.0" cp2x="15.0" cp2y="4.0"/>
151.11664 +                                       </points>
151.11665 +                                    </path>
151.11666 +                                    <path>
151.11667 +                                       <matte red="64" green="88" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.11668 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11669 +                                       <points>
151.11670 +                                          <point x="3.636363636363636" y="5.25" cp1x="3.636363636363636" cp1y="5.25" cp2x="3.636363636363636" cp2y="5.25"/>
151.11671 +                                          <point x="3.6590909090909083" y="13.431818181818185" cp1x="3.6590909090909083" cp1y="13.431818181818185" cp2x="3.6590909090909083" cp2y="13.431818181818185"/>
151.11672 +                                          <point x="15.500000000000004" y="13.40909090909091" cp1x="15.500000000000004" cp1y="13.40909090909091" cp2x="15.500000000000004" cp2y="13.40909090909091"/>
151.11673 +                                          <point x="15.56818181818182" y="5.25" cp1x="15.56818181818182" cp1y="5.25" cp2x="15.56818181818182" cp2y="5.25"/>
151.11674 +                                          <point x="13.727272727272725" y="5.25" cp1x="13.727272727272725" cp1y="5.25" cp2x="13.727272727272725" cp2y="5.25"/>
151.11675 +                                          <point x="13.90909090909091" y="12.045454545454547" cp1x="13.90909090909091" cp1y="12.045454545454547" cp2x="13.90909090909091" cp2y="12.045454545454547"/>
151.11676 +                                          <point x="5.318181818181818" y="11.81818181818182" cp1x="5.318181818181818" cp1y="11.81818181818182" cp2x="5.318181818181818" cp2y="11.81818181818182"/>
151.11677 +                                          <point x="5.409090909090909" y="6.954545454545454" cp1x="5.409090909090909" cp1y="6.954545454545454" cp2x="5.409090909090909" cp2y="6.954545454545454"/>
151.11678 +                                          <point x="13.795454545454543" y="6.931818181818181" cp1x="13.795454545454543" cp1y="6.931818181818181" cp2x="13.795454545454543" cp2y="6.931818181818181"/>
151.11679 +                                          <point x="13.727272727272734" y="5.2272727272727275" cp1x="13.727272727272734" cp1y="5.2272727272727275" cp2x="13.727272727272734" cp2y="5.2272727272727275"/>
151.11680 +                                       </points>
151.11681 +                                    </path>
151.11682 +                                 </shapes>
151.11683 +                                 <effects/>
151.11684 +                              </layer>
151.11685 +                              <layer name="Layer 1">
151.11686 +                                 <opacity>1.0</opacity>
151.11687 +                                 <fillOpacity>1.0</fillOpacity>
151.11688 +                                 <blendingMode>NORMAL</blendingMode>
151.11689 +                                 <locked>false</locked>
151.11690 +                                 <visible>true</visible>
151.11691 +                                 <shapes>
151.11692 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.11693 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.11694 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11695 +                                    </rectangle>
151.11696 +                                    <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.11697 +                                       <gradient cycleMethod="NO_CYCLE">
151.11698 +                                          <stop position="0.0" midpoint="0.5">
151.11699 +                                             <matte red="164" green="176" blue="110" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.02642706" saturationOffset="-0.3456704" brightnessOffset="-0.011764705" alphaOffset="0"/>
151.11700 +                                          </stop>
151.11701 +                                          <stop position="0.53977275" midpoint="0.5">
151.11702 +                                             <matte red="98" green="118" blue="4" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.025363803" saturationOffset="0.2454313" brightnessOffset="-0.2392157" alphaOffset="0"/>
151.11703 +                                          </stop>
151.11704 +                                          <stop position="0.6505682" midpoint="0.5">
151.11705 +                                             <matte red="99" green="119" blue="5" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.025363803" saturationOffset="0.2373128" brightnessOffset="-0.23529413" alphaOffset="0"/>
151.11706 +                                          </stop>
151.11707 +                                          <stop position="1.0" midpoint="0.5">
151.11708 +                                             <matte red="125" green="145" blue="31" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.025363803" saturationOffset="0.0655365" brightnessOffset="-0.13333333" alphaOffset="0"/>
151.11709 +                                          </stop>
151.11710 +                                       </gradient>
151.11711 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.11712 +                                    </rectangle>
151.11713 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.11714 +                                       <gradient cycleMethod="NO_CYCLE">
151.11715 +                                          <stop position="0.0" midpoint="0.5">
151.11716 +                                             <matte red="0" green="15" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.1627907" saturationOffset="0.2793296" brightnessOffset="-0.6431373" alphaOffset="0"/>
151.11717 +                                          </stop>
151.11718 +                                          <stop position="1.0" midpoint="0.5">
151.11719 +                                             <matte red="98" green="118" blue="4" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.025363803" saturationOffset="0.2454313" brightnessOffset="-0.2392157" alphaOffset="0"/>
151.11720 +                                          </stop>
151.11721 +                                       </gradient>
151.11722 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.11723 +                                    </rectangle>
151.11724 +                                    <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.11725 +                                       <matte red="83" green="86" blue="93" alpha="70" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.0029994324" brightnessOffset="-0.38039216" alphaOffset="-185"/>
151.11726 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11727 +                                    </rectangle>
151.11728 +                                 </shapes>
151.11729 +                                 <effects/>
151.11730 +                              </layer>
151.11731 +                              <templateLayer fileName="113e1feba05.png">
151.11732 +                                 <layer name="Template" type="template">
151.11733 +                                    <opacity>1.0</opacity>
151.11734 +                                    <fillOpacity>1.0</fillOpacity>
151.11735 +                                    <blendingMode>NORMAL</blendingMode>
151.11736 +                                    <locked>false</locked>
151.11737 +                                    <visible>false</visible>
151.11738 +                                    <shapes/>
151.11739 +                                    <effects/>
151.11740 +                                 </layer>
151.11741 +                              </templateLayer>
151.11742 +                           </canvas>
151.11743 +                        </state>
151.11744 +                        <state stateKeys="MouseOver">
151.11745 +                           <style>
151.11746 +                              <textForeground/>
151.11747 +                              <textBackground/>
151.11748 +                              <background/>
151.11749 +                              <uiproperties/>
151.11750 +                           </style>
151.11751 +                           <canvas>
151.11752 +                              <size width="19" height="18"/>
151.11753 +                              <nextLayerNameIndex>6</nextLayerNameIndex>
151.11754 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.11755 +                              <layer name="Layer 5">
151.11756 +                                 <opacity>1.0</opacity>
151.11757 +                                 <fillOpacity>1.0</fillOpacity>
151.11758 +                                 <blendingMode>NORMAL</blendingMode>
151.11759 +                                 <locked>false</locked>
151.11760 +                                 <visible>true</visible>
151.11761 +                                 <shapes>
151.11762 +                                    <path>
151.11763 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.11764 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11765 +                                       <points>
151.11766 +                                          <point x="4.0" y="4.0" cp1x="4.0" cp1y="4.0" cp2x="4.0" cp2y="4.0"/>
151.11767 +                                          <point x="4.0" y="13.0" cp1x="4.0" cp1y="13.0" cp2x="4.0" cp2y="13.0"/>
151.11768 +                                          <point x="15.0" y="13.0" cp1x="15.0" cp1y="13.0" cp2x="15.0" cp2y="13.0"/>
151.11769 +                                          <point x="15.0" y="6.0" cp1x="15.0" cp1y="6.0" cp2x="15.0" cp2y="6.0"/>
151.11770 +                                          <point x="14.0" y="6.0" cp1x="14.0" cp1y="6.0" cp2x="14.0" cp2y="6.0"/>
151.11771 +                                          <point x="14.0" y="12.0" cp1x="14.0" cp1y="12.0" cp2x="14.0" cp2y="12.0"/>
151.11772 +                                          <point x="5.0" y="12.0" cp1x="5.0" cp1y="12.0" cp2x="5.0" cp2y="12.0"/>
151.11773 +                                          <point x="5.0" y="6.0" cp1x="5.0" cp1y="6.0" cp2x="5.0" cp2y="6.0"/>
151.11774 +                                          <point x="15.0" y="6.0" cp1x="15.0" cp1y="6.0" cp2x="15.0" cp2y="6.0"/>
151.11775 +                                          <point x="15.0" y="4.0" cp1x="15.0" cp1y="4.0" cp2x="15.0" cp2y="4.0"/>
151.11776 +                                       </points>
151.11777 +                                    </path>
151.11778 +                                    <path>
151.11779 +                                       <matte red="113" green="125" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.11780 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11781 +                                       <points>
151.11782 +                                          <point x="3.636363636363636" y="5.25" cp1x="3.636363636363636" cp1y="5.25" cp2x="3.636363636363636" cp2y="5.25"/>
151.11783 +                                          <point x="3.6590909090909083" y="13.431818181818185" cp1x="3.6590909090909083" cp1y="13.431818181818185" cp2x="3.6590909090909083" cp2y="13.431818181818185"/>
151.11784 +                                          <point x="15.500000000000004" y="13.40909090909091" cp1x="15.500000000000004" cp1y="13.40909090909091" cp2x="15.500000000000004" cp2y="13.40909090909091"/>
151.11785 +                                          <point x="15.56818181818182" y="5.25" cp1x="15.56818181818182" cp1y="5.25" cp2x="15.56818181818182" cp2y="5.25"/>
151.11786 +                                          <point x="13.727272727272725" y="5.25" cp1x="13.727272727272725" cp1y="5.25" cp2x="13.727272727272725" cp2y="5.25"/>
151.11787 +                                          <point x="13.90909090909091" y="12.045454545454547" cp1x="13.90909090909091" cp1y="12.045454545454547" cp2x="13.90909090909091" cp2y="12.045454545454547"/>
151.11788 +                                          <point x="5.318181818181818" y="11.81818181818182" cp1x="5.318181818181818" cp1y="11.81818181818182" cp2x="5.318181818181818" cp2y="11.81818181818182"/>
151.11789 +                                          <point x="5.409090909090909" y="6.954545454545454" cp1x="5.409090909090909" cp1y="6.954545454545454" cp2x="5.409090909090909" cp2y="6.954545454545454"/>
151.11790 +                                          <point x="13.795454545454543" y="6.931818181818181" cp1x="13.795454545454543" cp1y="6.931818181818181" cp2x="13.795454545454543" cp2y="6.931818181818181"/>
151.11791 +                                          <point x="13.727272727272734" y="5.2272727272727275" cp1x="13.727272727272734" cp1y="5.2272727272727275" cp2x="13.727272727272734" cp2y="5.2272727272727275"/>
151.11792 +                                       </points>
151.11793 +                                    </path>
151.11794 +                                 </shapes>
151.11795 +                                 <effects/>
151.11796 +                              </layer>
151.11797 +                              <layer name="Layer 1">
151.11798 +                                 <opacity>1.0</opacity>
151.11799 +                                 <fillOpacity>1.0</fillOpacity>
151.11800 +                                 <blendingMode>NORMAL</blendingMode>
151.11801 +                                 <locked>false</locked>
151.11802 +                                 <visible>true</visible>
151.11803 +                                 <shapes>
151.11804 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.11805 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.11806 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11807 +                                    </rectangle>
151.11808 +                                    <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.11809 +                                       <gradient cycleMethod="NO_CYCLE">
151.11810 +                                          <stop position="0.0" midpoint="0.5">
151.11811 +                                             <matte red="187" green="193" blue="120" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.009822637" saturationOffset="-0.34243205" brightnessOffset="0.054901958" alphaOffset="0"/>
151.11812 +                                          </stop>
151.11813 +                                          <stop position="0.53977275" midpoint="0.5">
151.11814 +                                             <matte red="141" green="151" blue="27" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.009564877" saturationOffset="0.100521624" brightnessOffset="-0.109803915" alphaOffset="0"/>
151.11815 +                                          </stop>
151.11816 +                                          <stop position="0.6505682" midpoint="0.5">
151.11817 +                                             <matte red="138" green="149" blue="22" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.010559708" saturationOffset="0.13167858" brightnessOffset="-0.11764705" alphaOffset="0"/>
151.11818 +                                          </stop>
151.11819 +                                          <stop position="1.0" midpoint="0.5">
151.11820 +                                             <matte red="165" green="176" blue="49" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.010559708" saturationOffset="9.2053413E-4" brightnessOffset="-0.011764705" alphaOffset="0"/>
151.11821 +                                          </stop>
151.11822 +                                       </gradient>
151.11823 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.11824 +                                    </rectangle>
151.11825 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.11826 +                                       <gradient cycleMethod="NO_CYCLE">
151.11827 +                                          <stop position="0.0" midpoint="0.5">
151.11828 +                                             <matte red="0" green="19" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.1627907" saturationOffset="0.2793296" brightnessOffset="-0.627451" alphaOffset="0"/>
151.11829 +                                          </stop>
151.11830 +                                          <stop position="1.0" midpoint="0.5">
151.11831 +                                             <matte red="59" green="84" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.04572721" saturationOffset="0.2793296" brightnessOffset="-0.37254903" alphaOffset="0"/>
151.11832 +                                          </stop>
151.11833 +                                       </gradient>
151.11834 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.11835 +                                    </rectangle>
151.11836 +                                    <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.11837 +                                       <matte red="204" green="211" blue="227" alpha="154" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.004830897" saturationOffset="-0.00920473" brightnessOffset="0.14509803" alphaOffset="-101"/>
151.11838 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11839 +                                    </rectangle>
151.11840 +                                 </shapes>
151.11841 +                                 <effects/>
151.11842 +                              </layer>
151.11843 +                              <templateLayer fileName="113fc0c6be3.png">
151.11844 +                                 <layer name="Template" type="template">
151.11845 +                                    <opacity>1.0</opacity>
151.11846 +                                    <fillOpacity>1.0</fillOpacity>
151.11847 +                                    <blendingMode>NORMAL</blendingMode>
151.11848 +                                    <locked>false</locked>
151.11849 +                                    <visible>false</visible>
151.11850 +                                    <shapes/>
151.11851 +                                    <effects/>
151.11852 +                                 </layer>
151.11853 +                              </templateLayer>
151.11854 +                           </canvas>
151.11855 +                        </state>
151.11856 +                        <state stateKeys="Pressed">
151.11857 +                           <style>
151.11858 +                              <textForeground/>
151.11859 +                              <textBackground/>
151.11860 +                              <background/>
151.11861 +                              <uiproperties/>
151.11862 +                           </style>
151.11863 +                           <canvas>
151.11864 +                              <size width="19" height="18"/>
151.11865 +                              <nextLayerNameIndex>6</nextLayerNameIndex>
151.11866 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.11867 +                              <layer name="Layer 5">
151.11868 +                                 <opacity>1.0</opacity>
151.11869 +                                 <fillOpacity>1.0</fillOpacity>
151.11870 +                                 <blendingMode>NORMAL</blendingMode>
151.11871 +                                 <locked>false</locked>
151.11872 +                                 <visible>true</visible>
151.11873 +                                 <shapes>
151.11874 +                                    <path>
151.11875 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.11876 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11877 +                                       <points>
151.11878 +                                          <point x="4.0" y="4.0" cp1x="4.0" cp1y="4.0" cp2x="4.0" cp2y="4.0"/>
151.11879 +                                          <point x="4.0" y="13.0" cp1x="4.0" cp1y="13.0" cp2x="4.0" cp2y="13.0"/>
151.11880 +                                          <point x="15.0" y="13.0" cp1x="15.0" cp1y="13.0" cp2x="15.0" cp2y="13.0"/>
151.11881 +                                          <point x="15.0" y="6.0" cp1x="15.0" cp1y="6.0" cp2x="15.0" cp2y="6.0"/>
151.11882 +                                          <point x="14.0" y="6.0" cp1x="14.0" cp1y="6.0" cp2x="14.0" cp2y="6.0"/>
151.11883 +                                          <point x="14.0" y="12.0" cp1x="14.0" cp1y="12.0" cp2x="14.0" cp2y="12.0"/>
151.11884 +                                          <point x="5.0" y="12.0" cp1x="5.0" cp1y="12.0" cp2x="5.0" cp2y="12.0"/>
151.11885 +                                          <point x="5.0" y="6.0" cp1x="5.0" cp1y="6.0" cp2x="5.0" cp2y="6.0"/>
151.11886 +                                          <point x="15.0" y="6.0" cp1x="15.0" cp1y="6.0" cp2x="15.0" cp2y="6.0"/>
151.11887 +                                          <point x="15.0" y="4.0" cp1x="15.0" cp1y="4.0" cp2x="15.0" cp2y="4.0"/>
151.11888 +                                       </points>
151.11889 +                                    </path>
151.11890 +                                    <path>
151.11891 +                                       <matte red="19" green="48" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.11892 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11893 +                                       <points>
151.11894 +                                          <point x="3.636363636363636" y="5.25" cp1x="3.636363636363636" cp1y="5.25" cp2x="3.636363636363636" cp2y="5.25"/>
151.11895 +                                          <point x="3.6590909090909083" y="13.431818181818185" cp1x="3.6590909090909083" cp1y="13.431818181818185" cp2x="3.6590909090909083" cp2y="13.431818181818185"/>
151.11896 +                                          <point x="15.500000000000004" y="13.40909090909091" cp1x="15.500000000000004" cp1y="13.40909090909091" cp2x="15.500000000000004" cp2y="13.40909090909091"/>
151.11897 +                                          <point x="15.56818181818182" y="5.25" cp1x="15.56818181818182" cp1y="5.25" cp2x="15.56818181818182" cp2y="5.25"/>
151.11898 +                                          <point x="13.727272727272725" y="5.25" cp1x="13.727272727272725" cp1y="5.25" cp2x="13.727272727272725" cp2y="5.25"/>
151.11899 +                                          <point x="13.90909090909091" y="12.045454545454547" cp1x="13.90909090909091" cp1y="12.045454545454547" cp2x="13.90909090909091" cp2y="12.045454545454547"/>
151.11900 +                                          <point x="5.318181818181818" y="11.81818181818182" cp1x="5.318181818181818" cp1y="11.81818181818182" cp2x="5.318181818181818" cp2y="11.81818181818182"/>
151.11901 +                                          <point x="5.409090909090909" y="6.954545454545454" cp1x="5.409090909090909" cp1y="6.954545454545454" cp2x="5.409090909090909" cp2y="6.954545454545454"/>
151.11902 +                                          <point x="13.795454545454543" y="6.931818181818181" cp1x="13.795454545454543" cp1y="6.931818181818181" cp2x="13.795454545454543" cp2y="6.931818181818181"/>
151.11903 +                                          <point x="13.727272727272734" y="5.2272727272727275" cp1x="13.727272727272734" cp1y="5.2272727272727275" cp2x="13.727272727272734" cp2y="5.2272727272727275"/>
151.11904 +                                       </points>
151.11905 +                                    </path>
151.11906 +                                 </shapes>
151.11907 +                                 <effects/>
151.11908 +                              </layer>
151.11909 +                              <layer name="Layer 1">
151.11910 +                                 <opacity>1.0</opacity>
151.11911 +                                 <fillOpacity>1.0</fillOpacity>
151.11912 +                                 <blendingMode>NORMAL</blendingMode>
151.11913 +                                 <locked>false</locked>
151.11914 +                                 <visible>true</visible>
151.11915 +                                 <shapes>
151.11916 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.11917 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.11918 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11919 +                                    </rectangle>
151.11920 +                                    <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.11921 +                                       <gradient cycleMethod="NO_CYCLE">
151.11922 +                                          <stop position="0.0" midpoint="0.5">
151.11923 +                                             <matte red="123" green="139" blue="72" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.03592503" saturationOffset="-0.23865601" brightnessOffset="-0.15686274" alphaOffset="0"/>
151.11924 +                                          </stop>
151.11925 +                                          <stop position="0.53977275" midpoint="0.5">
151.11926 +                                             <matte red="74" green="96" blue="4" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.035979107" saturationOffset="0.23766291" brightnessOffset="-0.3254902" alphaOffset="0"/>
151.11927 +                                          </stop>
151.11928 +                                          <stop position="0.79341316" midpoint="0.5">
151.11929 +                                             <matte red="71" green="94" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.03690417" saturationOffset="0.2793296" brightnessOffset="-0.33333334" alphaOffset="0"/>
151.11930 +                                          </stop>
151.11931 +                                          <stop position="1.0" midpoint="0.5">
151.11932 +                                             <matte red="86" green="109" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.03129223" saturationOffset="0.2793296" brightnessOffset="-0.27450982" alphaOffset="0"/>
151.11933 +                                          </stop>
151.11934 +                                       </gradient>
151.11935 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.11936 +                                    </rectangle>
151.11937 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.11938 +                                       <gradient cycleMethod="NO_CYCLE">
151.11939 +                                          <stop position="0.0" midpoint="0.5">
151.11940 +                                             <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="-0.17054264" saturationOffset="-0.7206704" brightnessOffset="-0.7019608" alphaOffset="0"/>
151.11941 +                                          </stop>
151.11942 +                                          <stop position="1.0" midpoint="0.5">
151.11943 +                                             <matte red="30" green="59" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.07804492" saturationOffset="0.2793296" brightnessOffset="-0.47058827" alphaOffset="0"/>
151.11944 +                                          </stop>
151.11945 +                                       </gradient>
151.11946 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.11947 +                                    </rectangle>
151.11948 +                                    <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.11949 +                                       <matte red="190" green="197" blue="212" alpha="190" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0025252104" saturationOffset="-0.0067527294" brightnessOffset="0.086274505" alphaOffset="-65"/>
151.11950 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11951 +                                    </rectangle>
151.11952 +                                 </shapes>
151.11953 +                                 <effects/>
151.11954 +                              </layer>
151.11955 +                              <templateLayer fileName="113fc1017c9.png">
151.11956 +                                 <layer name="Template" type="template">
151.11957 +                                    <opacity>1.0</opacity>
151.11958 +                                    <fillOpacity>1.0</fillOpacity>
151.11959 +                                    <blendingMode>NORMAL</blendingMode>
151.11960 +                                    <locked>false</locked>
151.11961 +                                    <visible>false</visible>
151.11962 +                                    <shapes/>
151.11963 +                                    <effects/>
151.11964 +                                 </layer>
151.11965 +                              </templateLayer>
151.11966 +                           </canvas>
151.11967 +                        </state>
151.11968 +                        <state stateKeys="Enabled+WindowNotFocused">
151.11969 +                           <style>
151.11970 +                              <textForeground/>
151.11971 +                              <textBackground/>
151.11972 +                              <background/>
151.11973 +                              <uiproperties/>
151.11974 +                           </style>
151.11975 +                           <canvas>
151.11976 +                              <size width="19" height="18"/>
151.11977 +                              <nextLayerNameIndex>6</nextLayerNameIndex>
151.11978 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.11979 +                              <layer name="Layer 5">
151.11980 +                                 <opacity>1.0</opacity>
151.11981 +                                 <fillOpacity>1.0</fillOpacity>
151.11982 +                                 <blendingMode>NORMAL</blendingMode>
151.11983 +                                 <locked>false</locked>
151.11984 +                                 <visible>true</visible>
151.11985 +                                 <shapes>
151.11986 +                                    <path>
151.11987 +                                       <matte red="102" green="105" blue="111" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.029445238" brightnessOffset="-0.30980393" alphaOffset="0"/>
151.11988 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.11989 +                                       <points>
151.11990 +                                          <point x="4.0" y="4.0" cp1x="4.0" cp1y="4.0" cp2x="4.0" cp2y="4.0"/>
151.11991 +                                          <point x="4.0" y="13.0" cp1x="4.0" cp1y="13.0" cp2x="4.0" cp2y="13.0"/>
151.11992 +                                          <point x="15.0" y="13.0" cp1x="15.0" cp1y="13.0" cp2x="15.0" cp2y="13.0"/>
151.11993 +                                          <point x="15.0" y="6.0" cp1x="15.0" cp1y="6.0" cp2x="15.0" cp2y="6.0"/>
151.11994 +                                          <point x="14.0" y="6.0" cp1x="14.0" cp1y="6.0" cp2x="14.0" cp2y="6.0"/>
151.11995 +                                          <point x="14.0" y="12.0" cp1x="14.0" cp1y="12.0" cp2x="14.0" cp2y="12.0"/>
151.11996 +                                          <point x="5.0" y="12.0" cp1x="5.0" cp1y="12.0" cp2x="5.0" cp2y="12.0"/>
151.11997 +                                          <point x="5.0" y="6.0" cp1x="5.0" cp1y="6.0" cp2x="5.0" cp2y="6.0"/>
151.11998 +                                          <point x="15.0" y="6.0" cp1x="15.0" cp1y="6.0" cp2x="15.0" cp2y="6.0"/>
151.11999 +                                          <point x="15.0" y="4.0" cp1x="15.0" cp1y="4.0" cp2x="15.0" cp2y="4.0"/>
151.12000 +                                       </points>
151.12001 +                                    </path>
151.12002 +                                 </shapes>
151.12003 +                                 <effects/>
151.12004 +                              </layer>
151.12005 +                              <layer name="Layer 1">
151.12006 +                                 <opacity>1.0</opacity>
151.12007 +                                 <fillOpacity>1.0</fillOpacity>
151.12008 +                                 <blendingMode>NORMAL</blendingMode>
151.12009 +                                 <locked>false</locked>
151.12010 +                                 <visible>true</visible>
151.12011 +                                 <shapes>
151.12012 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.12013 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.12014 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12015 +                                    </rectangle>
151.12016 +                                    <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.12017 +                                       <gradient cycleMethod="NO_CYCLE">
151.12018 +                                          <stop position="0.0" midpoint="0.5">
151.12019 +                                             <matte red="219" green="221" blue="224" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.4294573" saturationOffset="-0.698349" brightnessOffset="0.17647058" alphaOffset="0"/>
151.12020 +                                          </stop>
151.12021 +                                          <stop position="0.53977275" midpoint="0.5">
151.12022 +                                             <matte red="183" green="187" blue="195" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.44056845" saturationOffset="-0.65913194" brightnessOffset="0.062745094" alphaOffset="0"/>
151.12023 +                                          </stop>
151.12024 +                                          <stop position="0.7185629" midpoint="0.5">
151.12025 +                                             <matte red="183" green="187" blue="195" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.44056845" saturationOffset="-0.65913194" brightnessOffset="0.062745094" alphaOffset="0"/>
151.12026 +                                          </stop>
151.12027 +                                          <stop position="1.0" midpoint="0.5">
151.12028 +                                             <matte red="189" green="193" blue="201" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.44056845" saturationOffset="-0.6609689" brightnessOffset="0.086274505" alphaOffset="0"/>
151.12029 +                                          </stop>
151.12030 +                                       </gradient>
151.12031 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.12032 +                                    </rectangle>
151.12033 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.12034 +                                       <gradient cycleMethod="NO_CYCLE">
151.12035 +                                          <stop position="0.0" midpoint="0.5">
151.12036 +                                             <matte red="136" green="141" blue="151" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.44056845" saturationOffset="-0.62133265" brightnessOffset="-0.109803915" alphaOffset="0"/>
151.12037 +                                          </stop>
151.12038 +                                          <stop position="1.0" midpoint="0.5">
151.12039 +                                             <matte red="95" green="100" blue="110" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.44056845" saturationOffset="-0.5843068" brightnessOffset="-0.27058825" alphaOffset="0"/>
151.12040 +                                          </stop>
151.12041 +                                       </gradient>
151.12042 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.12043 +                                    </rectangle>
151.12044 +                                 </shapes>
151.12045 +                                 <effects/>
151.12046 +                              </layer>
151.12047 +                              <templateLayer fileName="113fc12e4cb.png">
151.12048 +                                 <layer name="Template" type="template">
151.12049 +                                    <opacity>1.0</opacity>
151.12050 +                                    <fillOpacity>1.0</fillOpacity>
151.12051 +                                    <blendingMode>NORMAL</blendingMode>
151.12052 +                                    <locked>false</locked>
151.12053 +                                    <visible>false</visible>
151.12054 +                                    <shapes/>
151.12055 +                                    <effects/>
151.12056 +                                 </layer>
151.12057 +                              </templateLayer>
151.12058 +                           </canvas>
151.12059 +                        </state>
151.12060 +                        <state stateKeys="MouseOver+WindowNotFocused">
151.12061 +                           <style>
151.12062 +                              <textForeground/>
151.12063 +                              <textBackground/>
151.12064 +                              <background/>
151.12065 +                              <uiproperties/>
151.12066 +                           </style>
151.12067 +                           <canvas>
151.12068 +                              <size width="19" height="18"/>
151.12069 +                              <nextLayerNameIndex>6</nextLayerNameIndex>
151.12070 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.12071 +                              <layer name="Layer 5">
151.12072 +                                 <opacity>1.0</opacity>
151.12073 +                                 <fillOpacity>1.0</fillOpacity>
151.12074 +                                 <blendingMode>NORMAL</blendingMode>
151.12075 +                                 <locked>false</locked>
151.12076 +                                 <visible>true</visible>
151.12077 +                                 <shapes>
151.12078 +                                    <path>
151.12079 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.12080 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12081 +                                       <points>
151.12082 +                                          <point x="4.0" y="4.0" cp1x="4.0" cp1y="4.0" cp2x="4.0" cp2y="4.0"/>
151.12083 +                                          <point x="4.0" y="13.0" cp1x="4.0" cp1y="13.0" cp2x="4.0" cp2y="13.0"/>
151.12084 +                                          <point x="15.0" y="13.0" cp1x="15.0" cp1y="13.0" cp2x="15.0" cp2y="13.0"/>
151.12085 +                                          <point x="15.0" y="6.0" cp1x="15.0" cp1y="6.0" cp2x="15.0" cp2y="6.0"/>
151.12086 +                                          <point x="14.0" y="6.0" cp1x="14.0" cp1y="6.0" cp2x="14.0" cp2y="6.0"/>
151.12087 +                                          <point x="14.0" y="12.0" cp1x="14.0" cp1y="12.0" cp2x="14.0" cp2y="12.0"/>
151.12088 +                                          <point x="5.0" y="12.0" cp1x="5.0" cp1y="12.0" cp2x="5.0" cp2y="12.0"/>
151.12089 +                                          <point x="5.0" y="6.0" cp1x="5.0" cp1y="6.0" cp2x="5.0" cp2y="6.0"/>
151.12090 +                                          <point x="15.0" y="6.0" cp1x="15.0" cp1y="6.0" cp2x="15.0" cp2y="6.0"/>
151.12091 +                                          <point x="15.0" y="4.0" cp1x="15.0" cp1y="4.0" cp2x="15.0" cp2y="4.0"/>
151.12092 +                                       </points>
151.12093 +                                    </path>
151.12094 +                                    <path>
151.12095 +                                       <matte red="113" green="125" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.12096 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12097 +                                       <points>
151.12098 +                                          <point x="3.636363636363636" y="5.25" cp1x="3.636363636363636" cp1y="5.25" cp2x="3.636363636363636" cp2y="5.25"/>
151.12099 +                                          <point x="3.6590909090909083" y="13.431818181818185" cp1x="3.6590909090909083" cp1y="13.431818181818185" cp2x="3.6590909090909083" cp2y="13.431818181818185"/>
151.12100 +                                          <point x="15.500000000000004" y="13.40909090909091" cp1x="15.500000000000004" cp1y="13.40909090909091" cp2x="15.500000000000004" cp2y="13.40909090909091"/>
151.12101 +                                          <point x="15.56818181818182" y="5.25" cp1x="15.56818181818182" cp1y="5.25" cp2x="15.56818181818182" cp2y="5.25"/>
151.12102 +                                          <point x="13.727272727272725" y="5.25" cp1x="13.727272727272725" cp1y="5.25" cp2x="13.727272727272725" cp2y="5.25"/>
151.12103 +                                          <point x="13.90909090909091" y="12.045454545454547" cp1x="13.90909090909091" cp1y="12.045454545454547" cp2x="13.90909090909091" cp2y="12.045454545454547"/>
151.12104 +                                          <point x="5.318181818181818" y="11.81818181818182" cp1x="5.318181818181818" cp1y="11.81818181818182" cp2x="5.318181818181818" cp2y="11.81818181818182"/>
151.12105 +                                          <point x="5.409090909090909" y="6.954545454545454" cp1x="5.409090909090909" cp1y="6.954545454545454" cp2x="5.409090909090909" cp2y="6.954545454545454"/>
151.12106 +                                          <point x="13.795454545454543" y="6.931818181818181" cp1x="13.795454545454543" cp1y="6.931818181818181" cp2x="13.795454545454543" cp2y="6.931818181818181"/>
151.12107 +                                          <point x="13.727272727272734" y="5.2272727272727275" cp1x="13.727272727272734" cp1y="5.2272727272727275" cp2x="13.727272727272734" cp2y="5.2272727272727275"/>
151.12108 +                                       </points>
151.12109 +                                    </path>
151.12110 +                                 </shapes>
151.12111 +                                 <effects/>
151.12112 +                              </layer>
151.12113 +                              <layer name="Layer 1">
151.12114 +                                 <opacity>1.0</opacity>
151.12115 +                                 <fillOpacity>1.0</fillOpacity>
151.12116 +                                 <blendingMode>NORMAL</blendingMode>
151.12117 +                                 <locked>false</locked>
151.12118 +                                 <visible>true</visible>
151.12119 +                                 <shapes>
151.12120 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.12121 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.12122 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12123 +                                    </rectangle>
151.12124 +                                    <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.12125 +                                       <gradient cycleMethod="NO_CYCLE">
151.12126 +                                          <stop position="0.0" midpoint="0.5">
151.12127 +                                             <matte red="187" green="193" blue="120" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.009822637" saturationOffset="-0.34243205" brightnessOffset="0.054901958" alphaOffset="0"/>
151.12128 +                                          </stop>
151.12129 +                                          <stop position="0.53977275" midpoint="0.5">
151.12130 +                                             <matte red="141" green="151" blue="27" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.009564877" saturationOffset="0.100521624" brightnessOffset="-0.109803915" alphaOffset="0"/>
151.12131 +                                          </stop>
151.12132 +                                          <stop position="0.6505682" midpoint="0.5">
151.12133 +                                             <matte red="138" green="149" blue="22" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.010559708" saturationOffset="0.13167858" brightnessOffset="-0.11764705" alphaOffset="0"/>
151.12134 +                                          </stop>
151.12135 +                                          <stop position="1.0" midpoint="0.5">
151.12136 +                                             <matte red="165" green="176" blue="49" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.010559708" saturationOffset="9.2053413E-4" brightnessOffset="-0.011764705" alphaOffset="0"/>
151.12137 +                                          </stop>
151.12138 +                                       </gradient>
151.12139 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.12140 +                                    </rectangle>
151.12141 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.12142 +                                       <gradient cycleMethod="NO_CYCLE">
151.12143 +                                          <stop position="0.0" midpoint="0.5">
151.12144 +                                             <matte red="0" green="19" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.1627907" saturationOffset="0.2793296" brightnessOffset="-0.627451" alphaOffset="0"/>
151.12145 +                                          </stop>
151.12146 +                                          <stop position="1.0" midpoint="0.5">
151.12147 +                                             <matte red="59" green="84" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.04572721" saturationOffset="0.2793296" brightnessOffset="-0.37254903" alphaOffset="0"/>
151.12148 +                                          </stop>
151.12149 +                                       </gradient>
151.12150 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.12151 +                                    </rectangle>
151.12152 +                                    <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.12153 +                                       <matte red="204" green="211" blue="227" alpha="154" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.004830897" saturationOffset="-0.00920473" brightnessOffset="0.14509803" alphaOffset="-101"/>
151.12154 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12155 +                                    </rectangle>
151.12156 +                                 </shapes>
151.12157 +                                 <effects/>
151.12158 +                              </layer>
151.12159 +                              <templateLayer fileName="113fc0c6be3.png">
151.12160 +                                 <layer name="Template" type="template">
151.12161 +                                    <opacity>1.0</opacity>
151.12162 +                                    <fillOpacity>1.0</fillOpacity>
151.12163 +                                    <blendingMode>NORMAL</blendingMode>
151.12164 +                                    <locked>false</locked>
151.12165 +                                    <visible>false</visible>
151.12166 +                                    <shapes/>
151.12167 +                                    <effects/>
151.12168 +                                 </layer>
151.12169 +                              </templateLayer>
151.12170 +                           </canvas>
151.12171 +                        </state>
151.12172 +                        <state stateKeys="Pressed+WindowNotFocused">
151.12173 +                           <style>
151.12174 +                              <textForeground/>
151.12175 +                              <textBackground/>
151.12176 +                              <background/>
151.12177 +                              <uiproperties/>
151.12178 +                           </style>
151.12179 +                           <canvas>
151.12180 +                              <size width="19" height="18"/>
151.12181 +                              <nextLayerNameIndex>6</nextLayerNameIndex>
151.12182 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.12183 +                              <layer name="Layer 5">
151.12184 +                                 <opacity>1.0</opacity>
151.12185 +                                 <fillOpacity>1.0</fillOpacity>
151.12186 +                                 <blendingMode>NORMAL</blendingMode>
151.12187 +                                 <locked>false</locked>
151.12188 +                                 <visible>true</visible>
151.12189 +                                 <shapes>
151.12190 +                                    <path>
151.12191 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.12192 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12193 +                                       <points>
151.12194 +                                          <point x="4.0" y="4.0" cp1x="4.0" cp1y="4.0" cp2x="4.0" cp2y="4.0"/>
151.12195 +                                          <point x="4.0" y="13.0" cp1x="4.0" cp1y="13.0" cp2x="4.0" cp2y="13.0"/>
151.12196 +                                          <point x="15.0" y="13.0" cp1x="15.0" cp1y="13.0" cp2x="15.0" cp2y="13.0"/>
151.12197 +                                          <point x="15.0" y="6.0" cp1x="15.0" cp1y="6.0" cp2x="15.0" cp2y="6.0"/>
151.12198 +                                          <point x="14.0" y="6.0" cp1x="14.0" cp1y="6.0" cp2x="14.0" cp2y="6.0"/>
151.12199 +                                          <point x="14.0" y="12.0" cp1x="14.0" cp1y="12.0" cp2x="14.0" cp2y="12.0"/>
151.12200 +                                          <point x="5.0" y="12.0" cp1x="5.0" cp1y="12.0" cp2x="5.0" cp2y="12.0"/>
151.12201 +                                          <point x="5.0" y="6.0" cp1x="5.0" cp1y="6.0" cp2x="5.0" cp2y="6.0"/>
151.12202 +                                          <point x="15.0" y="6.0" cp1x="15.0" cp1y="6.0" cp2x="15.0" cp2y="6.0"/>
151.12203 +                                          <point x="15.0" y="4.0" cp1x="15.0" cp1y="4.0" cp2x="15.0" cp2y="4.0"/>
151.12204 +                                       </points>
151.12205 +                                    </path>
151.12206 +                                    <path>
151.12207 +                                       <matte red="19" green="48" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.12208 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12209 +                                       <points>
151.12210 +                                          <point x="3.636363636363636" y="5.25" cp1x="3.636363636363636" cp1y="5.25" cp2x="3.636363636363636" cp2y="5.25"/>
151.12211 +                                          <point x="3.6590909090909083" y="13.431818181818185" cp1x="3.6590909090909083" cp1y="13.431818181818185" cp2x="3.6590909090909083" cp2y="13.431818181818185"/>
151.12212 +                                          <point x="15.500000000000004" y="13.40909090909091" cp1x="15.500000000000004" cp1y="13.40909090909091" cp2x="15.500000000000004" cp2y="13.40909090909091"/>
151.12213 +                                          <point x="15.56818181818182" y="5.25" cp1x="15.56818181818182" cp1y="5.25" cp2x="15.56818181818182" cp2y="5.25"/>
151.12214 +                                          <point x="13.727272727272725" y="5.25" cp1x="13.727272727272725" cp1y="5.25" cp2x="13.727272727272725" cp2y="5.25"/>
151.12215 +                                          <point x="13.90909090909091" y="12.045454545454547" cp1x="13.90909090909091" cp1y="12.045454545454547" cp2x="13.90909090909091" cp2y="12.045454545454547"/>
151.12216 +                                          <point x="5.318181818181818" y="11.81818181818182" cp1x="5.318181818181818" cp1y="11.81818181818182" cp2x="5.318181818181818" cp2y="11.81818181818182"/>
151.12217 +                                          <point x="5.409090909090909" y="6.954545454545454" cp1x="5.409090909090909" cp1y="6.954545454545454" cp2x="5.409090909090909" cp2y="6.954545454545454"/>
151.12218 +                                          <point x="13.795454545454543" y="6.931818181818181" cp1x="13.795454545454543" cp1y="6.931818181818181" cp2x="13.795454545454543" cp2y="6.931818181818181"/>
151.12219 +                                          <point x="13.727272727272734" y="5.2272727272727275" cp1x="13.727272727272734" cp1y="5.2272727272727275" cp2x="13.727272727272734" cp2y="5.2272727272727275"/>
151.12220 +                                       </points>
151.12221 +                                    </path>
151.12222 +                                 </shapes>
151.12223 +                                 <effects/>
151.12224 +                              </layer>
151.12225 +                              <layer name="Layer 1">
151.12226 +                                 <opacity>1.0</opacity>
151.12227 +                                 <fillOpacity>1.0</fillOpacity>
151.12228 +                                 <blendingMode>NORMAL</blendingMode>
151.12229 +                                 <locked>false</locked>
151.12230 +                                 <visible>true</visible>
151.12231 +                                 <shapes>
151.12232 +                                    <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.12233 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.12234 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12235 +                                    </rectangle>
151.12236 +                                    <rectangle x1="1.0" x2="18.0" y1="1.0" y2="16.0" rounding="6.749999999999993">
151.12237 +                                       <gradient cycleMethod="NO_CYCLE">
151.12238 +                                          <stop position="0.0" midpoint="0.5">
151.12239 +                                             <matte red="123" green="139" blue="72" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.03592503" saturationOffset="-0.23865601" brightnessOffset="-0.15686274" alphaOffset="0"/>
151.12240 +                                          </stop>
151.12241 +                                          <stop position="0.53977275" midpoint="0.5">
151.12242 +                                             <matte red="74" green="96" blue="4" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.035979107" saturationOffset="0.23766291" brightnessOffset="-0.3254902" alphaOffset="0"/>
151.12243 +                                          </stop>
151.12244 +                                          <stop position="0.79341316" midpoint="0.5">
151.12245 +                                             <matte red="71" green="94" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.03690417" saturationOffset="0.2793296" brightnessOffset="-0.33333334" alphaOffset="0"/>
151.12246 +                                          </stop>
151.12247 +                                          <stop position="1.0" midpoint="0.5">
151.12248 +                                             <matte red="86" green="109" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.03129223" saturationOffset="0.2793296" brightnessOffset="-0.27450982" alphaOffset="0"/>
151.12249 +                                          </stop>
151.12250 +                                       </gradient>
151.12251 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.12252 +                                    </rectangle>
151.12253 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.12254 +                                       <gradient cycleMethod="NO_CYCLE">
151.12255 +                                          <stop position="0.0" midpoint="0.5">
151.12256 +                                             <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="-0.17054264" saturationOffset="-0.7206704" brightnessOffset="-0.7019608" alphaOffset="0"/>
151.12257 +                                          </stop>
151.12258 +                                          <stop position="1.0" midpoint="0.5">
151.12259 +                                             <matte red="30" green="59" blue="0" alpha="255" uiDefaultParentName="nimbusGreen" hueOffset="0.07804492" saturationOffset="0.2793296" brightnessOffset="-0.47058827" alphaOffset="0"/>
151.12260 +                                          </stop>
151.12261 +                                       </gradient>
151.12262 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.12263 +                                    </rectangle>
151.12264 +                                    <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.12265 +                                       <matte red="190" green="197" blue="212" alpha="190" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0025252104" saturationOffset="-0.0067527294" brightnessOffset="0.086274505" alphaOffset="-65"/>
151.12266 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12267 +                                    </rectangle>
151.12268 +                                 </shapes>
151.12269 +                                 <effects/>
151.12270 +                              </layer>
151.12271 +                              <templateLayer fileName="113fc1017c9.png">
151.12272 +                                 <layer name="Template" type="template">
151.12273 +                                    <opacity>1.0</opacity>
151.12274 +                                    <fillOpacity>1.0</fillOpacity>
151.12275 +                                    <blendingMode>NORMAL</blendingMode>
151.12276 +                                    <locked>false</locked>
151.12277 +                                    <visible>false</visible>
151.12278 +                                    <shapes/>
151.12279 +                                    <effects/>
151.12280 +                                 </layer>
151.12281 +                              </templateLayer>
151.12282 +                           </canvas>
151.12283 +                        </state>
151.12284 +                     </backgroundStates>
151.12285 +                     <foregroundStates/>
151.12286 +                     <borderStates/>
151.12287 +                     <regions/>
151.12288 +                  </uiComponent>
151.12289 +                  <uiComponent opaque="false" componentName="InternalFrameTitlePane.closeButton" type="javax.swing.JButton" name="Button" ui="ButtonUI" subregion="true">
151.12290 +                     <stateTypes>
151.12291 +                        <stateType key="Enabled"/>
151.12292 +                        <stateType key="MouseOver"/>
151.12293 +                        <stateType key="Pressed"/>
151.12294 +                        <stateType key="Disabled"/>
151.12295 +                        <stateType key="Focused"/>
151.12296 +                        <stateType key="Selected"/>
151.12297 +                        <stateType key="WindowNotFocused">
151.12298 +                           <codeSnippet><![CDATA[
151.12299 +                               Component parent = c;
151.12300 +                               while (parent.getParent() != null) {
151.12301 +                                   if (parent instanceof JInternalFrame) {
151.12302 +                                       break;
151.12303 +                                   }
151.12304 +                                   parent = parent.getParent();
151.12305 +                               }
151.12306 +                               if (parent instanceof JInternalFrame) {
151.12307 +                                   return !(((JInternalFrame)parent).isSelected());
151.12308 +                               }
151.12309 +                               return false;]]></codeSnippet>
151.12310 +                        </stateType>
151.12311 +                     </stateTypes>
151.12312 +                     <contentMargins top="9" bottom="9" left="9" right="9"/>
151.12313 +                     <style>
151.12314 +                        <textForeground/>
151.12315 +                        <textBackground/>
151.12316 +                        <background/>
151.12317 +                        <cacheSettingsInherited>false</cacheSettingsInherited>
151.12318 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.12319 +                        <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.12320 +                        <uiproperties/>
151.12321 +                     </style>
151.12322 +                     <backgroundStates>
151.12323 +                        <state stateKeys="Disabled">
151.12324 +                           <style>
151.12325 +                              <textForeground/>
151.12326 +                              <textBackground/>
151.12327 +                              <background/>
151.12328 +                              <uiproperties/>
151.12329 +                           </style>
151.12330 +                           <canvas>
151.12331 +                              <size width="19" height="18"/>
151.12332 +                              <nextLayerNameIndex>4</nextLayerNameIndex>
151.12333 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.12334 +                              <layer name="Layer 3">
151.12335 +                                 <opacity>1.0</opacity>
151.12336 +                                 <fillOpacity>1.0</fillOpacity>
151.12337 +                                 <blendingMode>NORMAL</blendingMode>
151.12338 +                                 <locked>false</locked>
151.12339 +                                 <visible>true</visible>
151.12340 +                                 <shapes>
151.12341 +                                    <path>
151.12342 +                                       <matte red="198" green="201" blue="208" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.062449392" brightnessOffset="0.07058823" alphaOffset="0"/>
151.12343 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12344 +                                       <points>
151.12345 +                                          <point x="4.886363636363638" y="5.09090909090909" cp1x="4.886363636363638" cp1y="5.09090909090909" cp2x="4.886363636363638" cp2y="5.09090909090909"/>
151.12346 +                                          <point x="6.113636363636362" y="3.84090909090909" cp1x="6.113636363636362" cp1y="3.84090909090909" cp2x="6.113636363636362" cp2y="3.84090909090909"/>
151.12347 +                                          <point x="9.5" y="7.272727272727275" cp1x="9.5" cp1y="7.272727272727275" cp2x="9.5" cp2y="7.272727272727275"/>
151.12348 +                                          <point x="12.795454545454541" y="3.7954545454545436" cp1x="12.795454545454541" cp1y="3.7954545454545436" cp2x="12.795454545454541" cp2y="3.7954545454545436"/>
151.12349 +                                          <point x="14.13636363636364" y="5.136363636363635" cp1x="14.13636363636364" cp1y="5.136363636363635" cp2x="14.13636363636364" cp2y="5.136363636363635"/>
151.12350 +                                          <point x="10.772727272727279" y="8.477272727272728" cp1x="10.772727272727279" cp1y="8.477272727272728" cp2x="10.772727272727279" cp2y="8.477272727272728"/>
151.12351 +                                          <point x="14.227272727272732" y="11.749999999999996" cp1x="14.227272727272732" cp1y="11.749999999999996" cp2x="14.227272727272732" cp2y="11.749999999999996"/>
151.12352 +                                          <point x="12.795454545454543" y="13.31818181818182" cp1x="12.795454545454543" cp1y="13.31818181818182" cp2x="12.795454545454543" cp2y="13.31818181818182"/>
151.12353 +                                          <point x="9.477272727272725" y="9.749999999999993" cp1x="9.477272727272725" cp1y="9.749999999999993" cp2x="9.477272727272725" cp2y="9.749999999999993"/>
151.12354 +                                          <point x="6.295454545454543" y="13.36363636363637" cp1x="6.295454545454543" cp1y="13.36363636363637" cp2x="6.295454545454543" cp2y="13.36363636363637"/>
151.12355 +                                          <point x="4.795454545454548" y="11.818181818181813" cp1x="4.795454545454548" cp1y="11.818181818181813" cp2x="4.795454545454548" cp2y="11.818181818181813"/>
151.12356 +                                          <point x="8.295454545454541" y="8.499999999999998" cp1x="8.295454545454541" cp1y="8.499999999999998" cp2x="8.295454545454541" cp2y="8.499999999999998"/>
151.12357 +                                       </points>
151.12358 +                                    </path>
151.12359 +                                    <path>
151.12360 +                                       <matte red="152" green="156" blue="165" alpha="133" uiDefaultParentName="nimbusRed" hueOffset="0.6005698" saturationOffset="-0.7200287" brightnessOffset="-0.015686274" alphaOffset="-122"/>
151.12361 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12362 +                                       <points>
151.12363 +                                          <point x="4.749999999999998" y="13.27272727272728" cp1x="4.749999999999998" cp1y="13.27272727272728" cp2x="4.749999999999998" cp2y="13.27272727272728"/>
151.12364 +                                          <point x="5.704545454545453" y="14.295454545454552" cp1x="5.704545454545453" cp1y="14.295454545454552" cp2x="5.704545454545453" cp2y="14.295454545454552"/>
151.12365 +                                          <point x="9.590909090909095" y="10.636363636363644" cp1x="9.590909090909095" cp1y="10.636363636363644" cp2x="9.590909090909095" cp2y="10.636363636363644"/>
151.12366 +                                          <point x="13.000000000000005" y="14.318181818181825" cp1x="13.000000000000005" cp1y="14.318181818181825" cp2x="13.000000000000005" cp2y="14.318181818181825"/>
151.12367 +                                          <point x="14.431818181818185" y="12.954545454545462" cp1x="14.431818181818185" cp1y="12.954545454545462" cp2x="14.431818181818185" cp2y="12.954545454545462"/>
151.12368 +                                          <point x="11.318181818181822" y="9.431818181818189" cp1x="11.318181818181822" cp1y="9.431818181818189" cp2x="11.318181818181822" cp2y="9.431818181818189"/>
151.12369 +                                          <point x="14.318181818181822" y="6.136363636363636" cp1x="14.318181818181822" cp1y="6.136363636363636" cp2x="14.318181818181822" cp2y="6.136363636363636"/>
151.12370 +                                          <point x="12.977272727272732" y="4.5681818181818175" cp1x="12.977272727272732" cp1y="4.5681818181818175" cp2x="12.977272727272732" cp2y="4.5681818181818175"/>
151.12371 +                                          <point x="9.659090909090912" y="7.931818181818182" cp1x="9.659090909090912" cp1y="7.931818181818182" cp2x="9.659090909090912" cp2y="7.931818181818182"/>
151.12372 +                                          <point x="6.272727272727272" y="4.613636363636363" cp1x="6.272727272727272" cp1y="4.613636363636363" cp2x="6.272727272727272" cp2y="4.613636363636363"/>
151.12373 +                                          <point x="4.886363636363635" y="5.977272727272727" cp1x="4.886363636363635" cp1y="5.977272727272727" cp2x="4.886363636363635" cp2y="5.977272727272727"/>
151.12374 +                                          <point x="8.113636363636365" y="9.454545454545467" cp1x="8.113636363636365" cp1y="9.454545454545467" cp2x="8.113636363636365" cp2y="9.454545454545467"/>
151.12375 +                                       </points>
151.12376 +                                    </path>
151.12377 +                                 </shapes>
151.12378 +                                 <effects/>
151.12379 +                              </layer>
151.12380 +                              <layer name="Layer 1">
151.12381 +                                 <opacity>1.0</opacity>
151.12382 +                                 <fillOpacity>1.0</fillOpacity>
151.12383 +                                 <blendingMode>NORMAL</blendingMode>
151.12384 +                                 <locked>false</locked>
151.12385 +                                 <visible>true</visible>
151.12386 +                                 <shapes>
151.12387 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.12388 +                                       <gradient cycleMethod="NO_CYCLE">
151.12389 +                                          <stop position="0.0" midpoint="0.5">
151.12390 +                                             <matte red="185" green="188" blue="193" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="0.5893519" saturationOffset="-0.75736576" brightnessOffset="0.09411764" alphaOffset="0"/>
151.12391 +                                          </stop>
151.12392 +                                          <stop position="1.0" midpoint="0.5">
151.12393 +                                             <matte red="154" green="159" blue="169" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="0.5962963" saturationOffset="-0.71005917" brightnessOffset="0.0" alphaOffset="0"/>
151.12394 +                                          </stop>
151.12395 +                                       </gradient>
151.12396 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.12397 +                                    </rectangle>
151.12398 +                                 </shapes>
151.12399 +                                 <effects/>
151.12400 +                              </layer>
151.12401 +                              <templateLayer fileName="113fc2cb661.png">
151.12402 +                                 <layer name="Template" type="template">
151.12403 +                                    <opacity>1.0</opacity>
151.12404 +                                    <fillOpacity>1.0</fillOpacity>
151.12405 +                                    <blendingMode>NORMAL</blendingMode>
151.12406 +                                    <locked>false</locked>
151.12407 +                                    <visible>false</visible>
151.12408 +                                    <shapes/>
151.12409 +                                    <effects/>
151.12410 +                                 </layer>
151.12411 +                              </templateLayer>
151.12412 +                           </canvas>
151.12413 +                        </state>
151.12414 +                        <state stateKeys="Enabled">
151.12415 +                           <style>
151.12416 +                              <textForeground/>
151.12417 +                              <textBackground/>
151.12418 +                              <background/>
151.12419 +                              <uiproperties/>
151.12420 +                           </style>
151.12421 +                           <canvas>
151.12422 +                              <size width="19" height="18"/>
151.12423 +                              <nextLayerNameIndex>4</nextLayerNameIndex>
151.12424 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.12425 +                              <layer name="Layer 3">
151.12426 +                                 <opacity>1.0</opacity>
151.12427 +                                 <fillOpacity>1.0</fillOpacity>
151.12428 +                                 <blendingMode>NORMAL</blendingMode>
151.12429 +                                 <locked>false</locked>
151.12430 +                                 <visible>true</visible>
151.12431 +                                 <shapes>
151.12432 +                                    <path>
151.12433 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.12434 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12435 +                                       <points>
151.12436 +                                          <point x="4.886363636363638" y="5.09090909090909" cp1x="4.886363636363638" cp1y="5.09090909090909" cp2x="4.886363636363638" cp2y="5.09090909090909"/>
151.12437 +                                          <point x="6.113636363636362" y="3.84090909090909" cp1x="6.113636363636362" cp1y="3.84090909090909" cp2x="6.113636363636362" cp2y="3.84090909090909"/>
151.12438 +                                          <point x="9.5" y="7.272727272727275" cp1x="9.5" cp1y="7.272727272727275" cp2x="9.5" cp2y="7.272727272727275"/>
151.12439 +                                          <point x="12.795454545454541" y="3.7954545454545436" cp1x="12.795454545454541" cp1y="3.7954545454545436" cp2x="12.795454545454541" cp2y="3.7954545454545436"/>
151.12440 +                                          <point x="14.13636363636364" y="5.136363636363635" cp1x="14.13636363636364" cp1y="5.136363636363635" cp2x="14.13636363636364" cp2y="5.136363636363635"/>
151.12441 +                                          <point x="10.772727272727279" y="8.477272727272728" cp1x="10.772727272727279" cp1y="8.477272727272728" cp2x="10.772727272727279" cp2y="8.477272727272728"/>
151.12442 +                                          <point x="14.227272727272732" y="11.749999999999996" cp1x="14.227272727272732" cp1y="11.749999999999996" cp2x="14.227272727272732" cp2y="11.749999999999996"/>
151.12443 +                                          <point x="12.795454545454543" y="13.31818181818182" cp1x="12.795454545454543" cp1y="13.31818181818182" cp2x="12.795454545454543" cp2y="13.31818181818182"/>
151.12444 +                                          <point x="9.477272727272725" y="9.749999999999993" cp1x="9.477272727272725" cp1y="9.749999999999993" cp2x="9.477272727272725" cp2y="9.749999999999993"/>
151.12445 +                                          <point x="6.295454545454543" y="13.36363636363637" cp1x="6.295454545454543" cp1y="13.36363636363637" cp2x="6.295454545454543" cp2y="13.36363636363637"/>
151.12446 +                                          <point x="4.795454545454548" y="11.818181818181813" cp1x="4.795454545454548" cp1y="11.818181818181813" cp2x="4.795454545454548" cp2y="11.818181818181813"/>
151.12447 +                                          <point x="8.295454545454541" y="8.499999999999998" cp1x="8.295454545454541" cp1y="8.499999999999998" cp2x="8.295454545454541" cp2y="8.499999999999998"/>
151.12448 +                                       </points>
151.12449 +                                    </path>
151.12450 +                                    <path>
151.12451 +                                       <matte red="71" green="21" blue="14" alpha="133" uiDefaultParentName="nimbusRed" hueOffset="0.0056530247" saturationOffset="0.0040003657" brightnessOffset="-0.38431373" alphaOffset="-122"/>
151.12452 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12453 +                                       <points>
151.12454 +                                          <point x="4.749999999999998" y="13.27272727272728" cp1x="4.749999999999998" cp1y="13.27272727272728" cp2x="4.749999999999998" cp2y="13.27272727272728"/>
151.12455 +                                          <point x="5.704545454545453" y="14.295454545454552" cp1x="5.704545454545453" cp1y="14.295454545454552" cp2x="5.704545454545453" cp2y="14.295454545454552"/>
151.12456 +                                          <point x="9.590909090909095" y="10.636363636363644" cp1x="9.590909090909095" cp1y="10.636363636363644" cp2x="9.590909090909095" cp2y="10.636363636363644"/>
151.12457 +                                          <point x="13.000000000000005" y="14.318181818181825" cp1x="13.000000000000005" cp1y="14.318181818181825" cp2x="13.000000000000005" cp2y="14.318181818181825"/>
151.12458 +                                          <point x="14.431818181818185" y="12.954545454545462" cp1x="14.431818181818185" cp1y="12.954545454545462" cp2x="14.431818181818185" cp2y="12.954545454545462"/>
151.12459 +                                          <point x="11.318181818181822" y="9.431818181818189" cp1x="11.318181818181822" cp1y="9.431818181818189" cp2x="11.318181818181822" cp2y="9.431818181818189"/>
151.12460 +                                          <point x="14.318181818181822" y="6.136363636363636" cp1x="14.318181818181822" cp1y="6.136363636363636" cp2x="14.318181818181822" cp2y="6.136363636363636"/>
151.12461 +                                          <point x="12.977272727272732" y="4.5681818181818175" cp1x="12.977272727272732" cp1y="4.5681818181818175" cp2x="12.977272727272732" cp2y="4.5681818181818175"/>
151.12462 +                                          <point x="9.659090909090912" y="7.931818181818182" cp1x="9.659090909090912" cp1y="7.931818181818182" cp2x="9.659090909090912" cp2y="7.931818181818182"/>
151.12463 +                                          <point x="6.272727272727272" y="4.613636363636363" cp1x="6.272727272727272" cp1y="4.613636363636363" cp2x="6.272727272727272" cp2y="4.613636363636363"/>
151.12464 +                                          <point x="4.886363636363635" y="5.977272727272727" cp1x="4.886363636363635" cp1y="5.977272727272727" cp2x="4.886363636363635" cp2y="5.977272727272727"/>
151.12465 +                                          <point x="8.113636363636365" y="9.454545454545467" cp1x="8.113636363636365" cp1y="9.454545454545467" cp2x="8.113636363636365" cp2y="9.454545454545467"/>
151.12466 +                                       </points>
151.12467 +                                    </path>
151.12468 +                                 </shapes>
151.12469 +                                 <effects/>
151.12470 +                              </layer>
151.12471 +                              <layer name="Layer 1">
151.12472 +                                 <opacity>1.0</opacity>
151.12473 +                                 <fillOpacity>1.0</fillOpacity>
151.12474 +                                 <blendingMode>NORMAL</blendingMode>
151.12475 +                                 <locked>false</locked>
151.12476 +                                 <visible>true</visible>
151.12477 +                                 <shapes>
151.12478 +                                    <rectangle x1="1.0" x2="18.0" y1="0.9545454545454546" y2="15.954545454545455" rounding="6.749999999999993">
151.12479 +                                       <gradient cycleMethod="NO_CYCLE">
151.12480 +                                          <stop position="0.0" midpoint="0.5">
151.12481 +                                             <matte red="199" green="121" blue="113" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="6.890595E-4" saturationOffset="-0.36665577" brightnessOffset="0.11764705" alphaOffset="0"/>
151.12482 +                                          </stop>
151.12483 +                                          <stop position="0.53977275" midpoint="0.5">
151.12484 +                                             <matte red="161" green="28" blue="16" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-0.001021713" saturationOffset="0.101804554" brightnessOffset="-0.031372547" alphaOffset="0"/>
151.12485 +                                          </stop>
151.12486 +                                          <stop position="0.6505682" midpoint="0.5">
151.12487 +                                             <matte red="160" green="24" blue="11" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-2.7342606E-4" saturationOffset="0.13243341" brightnessOffset="-0.035294116" alphaOffset="0"/>
151.12488 +                                          </stop>
151.12489 +                                          <stop position="1.0" midpoint="0.5">
151.12490 +                                             <matte red="186" green="50" blue="37" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-2.7342606E-4" saturationOffset="0.002258718" brightnessOffset="0.06666666" alphaOffset="0"/>
151.12491 +                                          </stop>
151.12492 +                                       </gradient>
151.12493 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.12494 +                                    </rectangle>
151.12495 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.12496 +                                       <gradient cycleMethod="NO_CYCLE">
151.12497 +                                          <stop position="0.0" midpoint="0.5">
151.12498 +                                             <matte red="56" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="0.20118344" brightnessOffset="-0.4431373" alphaOffset="0"/>
151.12499 +                                          </stop>
151.12500 +                                          <stop position="1.0" midpoint="0.5">
151.12501 +                                             <matte red="159" green="23" blue="10" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-2.7342606E-4" saturationOffset="0.13829035" brightnessOffset="-0.039215684" alphaOffset="0"/>
151.12502 +                                          </stop>
151.12503 +                                       </gradient>
151.12504 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.12505 +                                    </rectangle>
151.12506 +                                    <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.12507 +                                       <matte red="83" green="86" blue="93" alpha="70" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.0029994324" brightnessOffset="-0.38039216" alphaOffset="-185"/>
151.12508 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12509 +                                    </rectangle>
151.12510 +                                 </shapes>
151.12511 +                                 <effects/>
151.12512 +                              </layer>
151.12513 +                              <templateLayer fileName="113e1ff5a78.png">
151.12514 +                                 <layer name="Template" type="template">
151.12515 +                                    <opacity>1.0</opacity>
151.12516 +                                    <fillOpacity>1.0</fillOpacity>
151.12517 +                                    <blendingMode>NORMAL</blendingMode>
151.12518 +                                    <locked>false</locked>
151.12519 +                                    <visible>false</visible>
151.12520 +                                    <shapes/>
151.12521 +                                    <effects/>
151.12522 +                                 </layer>
151.12523 +                              </templateLayer>
151.12524 +                           </canvas>
151.12525 +                        </state>
151.12526 +                        <state stateKeys="MouseOver">
151.12527 +                           <style>
151.12528 +                              <textForeground/>
151.12529 +                              <textBackground/>
151.12530 +                              <background/>
151.12531 +                              <uiproperties/>
151.12532 +                           </style>
151.12533 +                           <canvas>
151.12534 +                              <size width="19" height="18"/>
151.12535 +                              <nextLayerNameIndex>4</nextLayerNameIndex>
151.12536 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.12537 +                              <layer name="Layer 3">
151.12538 +                                 <opacity>1.0</opacity>
151.12539 +                                 <fillOpacity>1.0</fillOpacity>
151.12540 +                                 <blendingMode>NORMAL</blendingMode>
151.12541 +                                 <locked>false</locked>
151.12542 +                                 <visible>true</visible>
151.12543 +                                 <shapes>
151.12544 +                                    <path>
151.12545 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.12546 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12547 +                                       <points>
151.12548 +                                          <point x="4.886363636363638" y="5.09090909090909" cp1x="4.886363636363638" cp1y="5.09090909090909" cp2x="4.886363636363638" cp2y="5.09090909090909"/>
151.12549 +                                          <point x="6.113636363636362" y="3.84090909090909" cp1x="6.113636363636362" cp1y="3.84090909090909" cp2x="6.113636363636362" cp2y="3.84090909090909"/>
151.12550 +                                          <point x="9.5" y="7.272727272727275" cp1x="9.5" cp1y="7.272727272727275" cp2x="9.5" cp2y="7.272727272727275"/>
151.12551 +                                          <point x="12.795454545454541" y="3.7954545454545436" cp1x="12.795454545454541" cp1y="3.7954545454545436" cp2x="12.795454545454541" cp2y="3.7954545454545436"/>
151.12552 +                                          <point x="14.13636363636364" y="5.136363636363635" cp1x="14.13636363636364" cp1y="5.136363636363635" cp2x="14.13636363636364" cp2y="5.136363636363635"/>
151.12553 +                                          <point x="10.772727272727279" y="8.477272727272728" cp1x="10.772727272727279" cp1y="8.477272727272728" cp2x="10.772727272727279" cp2y="8.477272727272728"/>
151.12554 +                                          <point x="14.227272727272732" y="11.749999999999996" cp1x="14.227272727272732" cp1y="11.749999999999996" cp2x="14.227272727272732" cp2y="11.749999999999996"/>
151.12555 +                                          <point x="12.795454545454543" y="13.31818181818182" cp1x="12.795454545454543" cp1y="13.31818181818182" cp2x="12.795454545454543" cp2y="13.31818181818182"/>
151.12556 +                                          <point x="9.477272727272725" y="9.749999999999993" cp1x="9.477272727272725" cp1y="9.749999999999993" cp2x="9.477272727272725" cp2y="9.749999999999993"/>
151.12557 +                                          <point x="6.295454545454543" y="13.36363636363637" cp1x="6.295454545454543" cp1y="13.36363636363637" cp2x="6.295454545454543" cp2y="13.36363636363637"/>
151.12558 +                                          <point x="4.795454545454548" y="11.818181818181813" cp1x="4.795454545454548" cp1y="11.818181818181813" cp2x="4.795454545454548" cp2y="11.818181818181813"/>
151.12559 +                                          <point x="8.295454545454541" y="8.499999999999998" cp1x="8.295454545454541" cp1y="8.499999999999998" cp2x="8.295454545454541" cp2y="8.499999999999998"/>
151.12560 +                                       </points>
151.12561 +                                    </path>
151.12562 +                                    <path>
151.12563 +                                       <matte red="170" green="0" blue="0" alpha="133" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="0.20118344" brightnessOffset="0.0039215684" alphaOffset="-122"/>
151.12564 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12565 +                                       <points>
151.12566 +                                          <point x="4.749999999999998" y="13.27272727272728" cp1x="4.749999999999998" cp1y="13.27272727272728" cp2x="4.749999999999998" cp2y="13.27272727272728"/>
151.12567 +                                          <point x="5.704545454545453" y="14.295454545454552" cp1x="5.704545454545453" cp1y="14.295454545454552" cp2x="5.704545454545453" cp2y="14.295454545454552"/>
151.12568 +                                          <point x="9.590909090909095" y="10.636363636363644" cp1x="9.590909090909095" cp1y="10.636363636363644" cp2x="9.590909090909095" cp2y="10.636363636363644"/>
151.12569 +                                          <point x="13.000000000000005" y="14.318181818181825" cp1x="13.000000000000005" cp1y="14.318181818181825" cp2x="13.000000000000005" cp2y="14.318181818181825"/>
151.12570 +                                          <point x="14.431818181818185" y="12.954545454545462" cp1x="14.431818181818185" cp1y="12.954545454545462" cp2x="14.431818181818185" cp2y="12.954545454545462"/>
151.12571 +                                          <point x="11.318181818181822" y="9.431818181818189" cp1x="11.318181818181822" cp1y="9.431818181818189" cp2x="11.318181818181822" cp2y="9.431818181818189"/>
151.12572 +                                          <point x="14.318181818181822" y="6.136363636363636" cp1x="14.318181818181822" cp1y="6.136363636363636" cp2x="14.318181818181822" cp2y="6.136363636363636"/>
151.12573 +                                          <point x="12.977272727272732" y="4.5681818181818175" cp1x="12.977272727272732" cp1y="4.5681818181818175" cp2x="12.977272727272732" cp2y="4.5681818181818175"/>
151.12574 +                                          <point x="9.659090909090912" y="7.931818181818182" cp1x="9.659090909090912" cp1y="7.931818181818182" cp2x="9.659090909090912" cp2y="7.931818181818182"/>
151.12575 +                                          <point x="6.272727272727272" y="4.613636363636363" cp1x="6.272727272727272" cp1y="4.613636363636363" cp2x="6.272727272727272" cp2y="4.613636363636363"/>
151.12576 +                                          <point x="4.886363636363635" y="5.977272727272727" cp1x="4.886363636363635" cp1y="5.977272727272727" cp2x="4.886363636363635" cp2y="5.977272727272727"/>
151.12577 +                                          <point x="8.113636363636365" y="9.454545454545467" cp1x="8.113636363636365" cp1y="9.454545454545467" cp2x="8.113636363636365" cp2y="9.454545454545467"/>
151.12578 +                                       </points>
151.12579 +                                    </path>
151.12580 +                                 </shapes>
151.12581 +                                 <effects/>
151.12582 +                              </layer>
151.12583 +                              <layer name="Layer 1">
151.12584 +                                 <opacity>1.0</opacity>
151.12585 +                                 <fillOpacity>1.0</fillOpacity>
151.12586 +                                 <blendingMode>NORMAL</blendingMode>
151.12587 +                                 <locked>false</locked>
151.12588 +                                 <visible>true</visible>
151.12589 +                                 <shapes>
151.12590 +                                    <rectangle x1="1.0" x2="18.0" y1="0.9318181818181819" y2="15.931818181818182" rounding="6.749999999999993">
151.12591 +                                       <gradient cycleMethod="NO_CYCLE">
151.12592 +                                          <stop position="0.0" midpoint="0.5">
151.12593 +                                             <matte red="210" green="132" blue="124" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="6.890595E-4" saturationOffset="-0.38929275" brightnessOffset="0.1607843" alphaOffset="0"/>
151.12594 +                                          </stop>
151.12595 +                                          <stop position="0.53977275" midpoint="0.5">
151.12596 +                                             <matte red="180" green="47" blue="34" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="2.537202E-5" saturationOffset="0.012294531" brightnessOffset="0.043137252" alphaOffset="0"/>
151.12597 +                                          </stop>
151.12598 +                                          <stop position="0.6505682" midpoint="0.5">
151.12599 +                                             <matte red="179" green="43" blue="30" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-2.7342606E-4" saturationOffset="0.033585668" brightnessOffset="0.039215684" alphaOffset="0"/>
151.12600 +                                          </stop>
151.12601 +                                          <stop position="0.97904193" midpoint="0.5">
151.12602 +                                             <matte red="205" green="69" blue="56" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-2.7342606E-4" saturationOffset="-0.07198727" brightnessOffset="0.14117646" alphaOffset="0"/>
151.12603 +                                          </stop>
151.12604 +                                       </gradient>
151.12605 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.12606 +                                    </rectangle>
151.12607 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.12608 +                                       <gradient cycleMethod="NO_CYCLE">
151.12609 +                                          <stop position="0.0" midpoint="0.5">
151.12610 +                                             <matte red="70" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="0.20118344" brightnessOffset="-0.3882353" alphaOffset="0"/>
151.12611 +                                          </stop>
151.12612 +                                          <stop position="1.0" midpoint="0.5">
151.12613 +                                             <matte red="135" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="0.20118344" brightnessOffset="-0.13333333" alphaOffset="0"/>
151.12614 +                                          </stop>
151.12615 +                                       </gradient>
151.12616 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.12617 +                                    </rectangle>
151.12618 +                                    <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.12619 +                                       <matte red="83" green="86" blue="93" alpha="70" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.0029994324" brightnessOffset="-0.38039216" alphaOffset="-185"/>
151.12620 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12621 +                                    </rectangle>
151.12622 +                                 </shapes>
151.12623 +                                 <effects/>
151.12624 +                              </layer>
151.12625 +                              <templateLayer fileName="113fc301011.png">
151.12626 +                                 <layer name="Template" type="template">
151.12627 +                                    <opacity>1.0</opacity>
151.12628 +                                    <fillOpacity>1.0</fillOpacity>
151.12629 +                                    <blendingMode>NORMAL</blendingMode>
151.12630 +                                    <locked>false</locked>
151.12631 +                                    <visible>false</visible>
151.12632 +                                    <shapes/>
151.12633 +                                    <effects/>
151.12634 +                                 </layer>
151.12635 +                              </templateLayer>
151.12636 +                           </canvas>
151.12637 +                        </state>
151.12638 +                        <state stateKeys="Pressed">
151.12639 +                           <style>
151.12640 +                              <textForeground/>
151.12641 +                              <textBackground/>
151.12642 +                              <background/>
151.12643 +                              <uiproperties/>
151.12644 +                           </style>
151.12645 +                           <canvas>
151.12646 +                              <size width="19" height="18"/>
151.12647 +                              <nextLayerNameIndex>4</nextLayerNameIndex>
151.12648 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.12649 +                              <layer name="Layer 3">
151.12650 +                                 <opacity>1.0</opacity>
151.12651 +                                 <fillOpacity>1.0</fillOpacity>
151.12652 +                                 <blendingMode>NORMAL</blendingMode>
151.12653 +                                 <locked>false</locked>
151.12654 +                                 <visible>true</visible>
151.12655 +                                 <shapes>
151.12656 +                                    <path>
151.12657 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.12658 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12659 +                                       <points>
151.12660 +                                          <point x="4.886363636363638" y="5.09090909090909" cp1x="4.886363636363638" cp1y="5.09090909090909" cp2x="4.886363636363638" cp2y="5.09090909090909"/>
151.12661 +                                          <point x="6.113636363636362" y="3.84090909090909" cp1x="6.113636363636362" cp1y="3.84090909090909" cp2x="6.113636363636362" cp2y="3.84090909090909"/>
151.12662 +                                          <point x="9.5" y="7.272727272727275" cp1x="9.5" cp1y="7.272727272727275" cp2x="9.5" cp2y="7.272727272727275"/>
151.12663 +                                          <point x="12.795454545454541" y="3.7954545454545436" cp1x="12.795454545454541" cp1y="3.7954545454545436" cp2x="12.795454545454541" cp2y="3.7954545454545436"/>
151.12664 +                                          <point x="14.13636363636364" y="5.136363636363635" cp1x="14.13636363636364" cp1y="5.136363636363635" cp2x="14.13636363636364" cp2y="5.136363636363635"/>
151.12665 +                                          <point x="10.772727272727279" y="8.477272727272728" cp1x="10.772727272727279" cp1y="8.477272727272728" cp2x="10.772727272727279" cp2y="8.477272727272728"/>
151.12666 +                                          <point x="14.227272727272732" y="11.749999999999996" cp1x="14.227272727272732" cp1y="11.749999999999996" cp2x="14.227272727272732" cp2y="11.749999999999996"/>
151.12667 +                                          <point x="12.795454545454543" y="13.31818181818182" cp1x="12.795454545454543" cp1y="13.31818181818182" cp2x="12.795454545454543" cp2y="13.31818181818182"/>
151.12668 +                                          <point x="9.477272727272725" y="9.749999999999993" cp1x="9.477272727272725" cp1y="9.749999999999993" cp2x="9.477272727272725" cp2y="9.749999999999993"/>
151.12669 +                                          <point x="6.295454545454543" y="13.36363636363637" cp1x="6.295454545454543" cp1y="13.36363636363637" cp2x="6.295454545454543" cp2y="13.36363636363637"/>
151.12670 +                                          <point x="4.795454545454548" y="11.818181818181813" cp1x="4.795454545454548" cp1y="11.818181818181813" cp2x="4.795454545454548" cp2y="11.818181818181813"/>
151.12671 +                                          <point x="8.295454545454541" y="8.499999999999998" cp1x="8.295454545454541" cp1y="8.499999999999998" cp2x="8.295454545454541" cp2y="8.499999999999998"/>
151.12672 +                                       </points>
151.12673 +                                    </path>
151.12674 +                                    <path>
151.12675 +                                       <matte red="88" green="0" blue="0" alpha="133" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="0.20118344" brightnessOffset="-0.31764707" alphaOffset="-122"/>
151.12676 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12677 +                                       <points>
151.12678 +                                          <point x="4.749999999999998" y="13.27272727272728" cp1x="4.749999999999998" cp1y="13.27272727272728" cp2x="4.749999999999998" cp2y="13.27272727272728"/>
151.12679 +                                          <point x="5.704545454545453" y="14.295454545454552" cp1x="5.704545454545453" cp1y="14.295454545454552" cp2x="5.704545454545453" cp2y="14.295454545454552"/>
151.12680 +                                          <point x="9.590909090909095" y="10.636363636363644" cp1x="9.590909090909095" cp1y="10.636363636363644" cp2x="9.590909090909095" cp2y="10.636363636363644"/>
151.12681 +                                          <point x="13.000000000000005" y="14.318181818181825" cp1x="13.000000000000005" cp1y="14.318181818181825" cp2x="13.000000000000005" cp2y="14.318181818181825"/>
151.12682 +                                          <point x="14.431818181818185" y="12.954545454545462" cp1x="14.431818181818185" cp1y="12.954545454545462" cp2x="14.431818181818185" cp2y="12.954545454545462"/>
151.12683 +                                          <point x="11.318181818181822" y="9.431818181818189" cp1x="11.318181818181822" cp1y="9.431818181818189" cp2x="11.318181818181822" cp2y="9.431818181818189"/>
151.12684 +                                          <point x="14.318181818181822" y="6.136363636363636" cp1x="14.318181818181822" cp1y="6.136363636363636" cp2x="14.318181818181822" cp2y="6.136363636363636"/>
151.12685 +                                          <point x="12.977272727272732" y="4.5681818181818175" cp1x="12.977272727272732" cp1y="4.5681818181818175" cp2x="12.977272727272732" cp2y="4.5681818181818175"/>
151.12686 +                                          <point x="9.659090909090912" y="7.931818181818182" cp1x="9.659090909090912" cp1y="7.931818181818182" cp2x="9.659090909090912" cp2y="7.931818181818182"/>
151.12687 +                                          <point x="6.272727272727272" y="4.613636363636363" cp1x="6.272727272727272" cp1y="4.613636363636363" cp2x="6.272727272727272" cp2y="4.613636363636363"/>
151.12688 +                                          <point x="4.886363636363635" y="5.977272727272727" cp1x="4.886363636363635" cp1y="5.977272727272727" cp2x="4.886363636363635" cp2y="5.977272727272727"/>
151.12689 +                                          <point x="8.113636363636365" y="9.454545454545467" cp1x="8.113636363636365" cp1y="9.454545454545467" cp2x="8.113636363636365" cp2y="9.454545454545467"/>
151.12690 +                                       </points>
151.12691 +                                    </path>
151.12692 +                                 </shapes>
151.12693 +                                 <effects/>
151.12694 +                              </layer>
151.12695 +                              <layer name="Layer 1">
151.12696 +                                 <opacity>1.0</opacity>
151.12697 +                                 <fillOpacity>1.0</fillOpacity>
151.12698 +                                 <blendingMode>NORMAL</blendingMode>
151.12699 +                                 <locked>false</locked>
151.12700 +                                 <visible>true</visible>
151.12701 +                                 <shapes>
151.12702 +                                    <rectangle x1="1.0" x2="18.0" y1="0.9545454545454546" y2="15.954545454545455" rounding="6.749999999999993">
151.12703 +                                       <gradient cycleMethod="NO_CYCLE">
151.12704 +                                          <stop position="0.0" midpoint="0.5">
151.12705 +                                             <matte red="174" green="72" blue="72" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="-0.21260965" brightnessOffset="0.019607842" alphaOffset="0"/>
151.12706 +                                          </stop>
151.12707 +                                          <stop position="0.53977275" midpoint="0.5">
151.12708 +                                             <matte red="144" green="4" blue="4" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="0.17340565" brightnessOffset="-0.09803921" alphaOffset="0"/>
151.12709 +                                          </stop>
151.12710 +                                          <stop position="0.6505682" midpoint="0.5">
151.12711 +                                             <matte red="142" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="0.20118344" brightnessOffset="-0.10588235" alphaOffset="0"/>
151.12712 +                                          </stop>
151.12713 +                                          <stop position="0.98203593" midpoint="0.5">
151.12714 +                                             <matte red="157" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="0.20118344" brightnessOffset="-0.04705882" alphaOffset="0"/>
151.12715 +                                          </stop>
151.12716 +                                       </gradient>
151.12717 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.12718 +                                    </rectangle>
151.12719 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.12720 +                                       <gradient cycleMethod="NO_CYCLE">
151.12721 +                                          <stop position="0.0" midpoint="0.5">
151.12722 +                                             <matte red="43" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="0.20118344" brightnessOffset="-0.49411768" alphaOffset="0"/>
151.12723 +                                          </stop>
151.12724 +                                          <stop position="1.0" midpoint="0.5">
151.12725 +                                             <matte red="117" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="0.20118344" brightnessOffset="-0.20392159" alphaOffset="0"/>
151.12726 +                                          </stop>
151.12727 +                                       </gradient>
151.12728 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.12729 +                                    </rectangle>
151.12730 +                                    <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.12731 +                                       <matte red="255" green="255" blue="255" alpha="115" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-140"/>
151.12732 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12733 +                                    </rectangle>
151.12734 +                                 </shapes>
151.12735 +                                 <effects/>
151.12736 +                              </layer>
151.12737 +                              <templateLayer fileName="113fc32c397.png">
151.12738 +                                 <layer name="Template" type="template">
151.12739 +                                    <opacity>1.0</opacity>
151.12740 +                                    <fillOpacity>1.0</fillOpacity>
151.12741 +                                    <blendingMode>NORMAL</blendingMode>
151.12742 +                                    <locked>false</locked>
151.12743 +                                    <visible>false</visible>
151.12744 +                                    <shapes/>
151.12745 +                                    <effects/>
151.12746 +                                 </layer>
151.12747 +                              </templateLayer>
151.12748 +                           </canvas>
151.12749 +                        </state>
151.12750 +                        <state stateKeys="Enabled+WindowNotFocused">
151.12751 +                           <style>
151.12752 +                              <textForeground/>
151.12753 +                              <textBackground/>
151.12754 +                              <background/>
151.12755 +                              <uiproperties/>
151.12756 +                           </style>
151.12757 +                           <canvas>
151.12758 +                              <size width="19" height="18"/>
151.12759 +                              <nextLayerNameIndex>4</nextLayerNameIndex>
151.12760 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.12761 +                              <layer name="Layer 3">
151.12762 +                                 <opacity>1.0</opacity>
151.12763 +                                 <fillOpacity>1.0</fillOpacity>
151.12764 +                                 <blendingMode>NORMAL</blendingMode>
151.12765 +                                 <locked>false</locked>
151.12766 +                                 <visible>true</visible>
151.12767 +                                 <shapes>
151.12768 +                                    <path>
151.12769 +                                       <matte red="100" green="103" blue="109" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.027957506" brightnessOffset="-0.31764707" alphaOffset="0"/>
151.12770 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12771 +                                       <points>
151.12772 +                                          <point x="4.886363636363638" y="5.09090909090909" cp1x="4.886363636363638" cp1y="5.09090909090909" cp2x="4.886363636363638" cp2y="5.09090909090909"/>
151.12773 +                                          <point x="6.113636363636362" y="3.84090909090909" cp1x="6.113636363636362" cp1y="3.84090909090909" cp2x="6.113636363636362" cp2y="3.84090909090909"/>
151.12774 +                                          <point x="9.5" y="7.272727272727275" cp1x="9.5" cp1y="7.272727272727275" cp2x="9.5" cp2y="7.272727272727275"/>
151.12775 +                                          <point x="12.795454545454541" y="3.7954545454545436" cp1x="12.795454545454541" cp1y="3.7954545454545436" cp2x="12.795454545454541" cp2y="3.7954545454545436"/>
151.12776 +                                          <point x="14.13636363636364" y="5.136363636363635" cp1x="14.13636363636364" cp1y="5.136363636363635" cp2x="14.13636363636364" cp2y="5.136363636363635"/>
151.12777 +                                          <point x="10.772727272727279" y="8.477272727272728" cp1x="10.772727272727279" cp1y="8.477272727272728" cp2x="10.772727272727279" cp2y="8.477272727272728"/>
151.12778 +                                          <point x="14.227272727272732" y="11.749999999999996" cp1x="14.227272727272732" cp1y="11.749999999999996" cp2x="14.227272727272732" cp2y="11.749999999999996"/>
151.12779 +                                          <point x="12.795454545454543" y="13.31818181818182" cp1x="12.795454545454543" cp1y="13.31818181818182" cp2x="12.795454545454543" cp2y="13.31818181818182"/>
151.12780 +                                          <point x="9.477272727272725" y="9.749999999999993" cp1x="9.477272727272725" cp1y="9.749999999999993" cp2x="9.477272727272725" cp2y="9.749999999999993"/>
151.12781 +                                          <point x="6.295454545454543" y="13.36363636363637" cp1x="6.295454545454543" cp1y="13.36363636363637" cp2x="6.295454545454543" cp2y="13.36363636363637"/>
151.12782 +                                          <point x="4.795454545454548" y="11.818181818181813" cp1x="4.795454545454548" cp1y="11.818181818181813" cp2x="4.795454545454548" cp2y="11.818181818181813"/>
151.12783 +                                          <point x="8.295454545454541" y="8.499999999999998" cp1x="8.295454545454541" cp1y="8.499999999999998" cp2x="8.295454545454541" cp2y="8.499999999999998"/>
151.12784 +                                       </points>
151.12785 +                                    </path>
151.12786 +                                 </shapes>
151.12787 +                                 <effects/>
151.12788 +                              </layer>
151.12789 +                              <layer name="Layer 1">
151.12790 +                                 <opacity>1.0</opacity>
151.12791 +                                 <fillOpacity>1.0</fillOpacity>
151.12792 +                                 <blendingMode>NORMAL</blendingMode>
151.12793 +                                 <locked>false</locked>
151.12794 +                                 <visible>true</visible>
151.12795 +                                 <shapes>
151.12796 +                                    <rectangle x1="1.0" x2="18.0" y1="0.9545454545454546" y2="15.954545454545455" rounding="6.749999999999993">
151.12797 +                                       <gradient cycleMethod="NO_CYCLE">
151.12798 +                                          <stop position="0.0" midpoint="0.5">
151.12799 +                                             <matte red="219" green="221" blue="224" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="0.58518517" saturationOffset="-0.77649516" brightnessOffset="0.21568626" alphaOffset="0"/>
151.12800 +                                          </stop>
151.12801 +                                          <stop position="0.48203593" midpoint="0.5">
151.12802 +                                             <matte red="183" green="187" blue="195" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="0.5962963" saturationOffset="-0.7372781" brightnessOffset="0.10196078" alphaOffset="0"/>
151.12803 +                                          </stop>
151.12804 +                                          <stop position="0.6856288" midpoint="0.5">
151.12805 +                                             <matte red="183" green="187" blue="195" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="0.5962963" saturationOffset="-0.7372781" brightnessOffset="0.10196078" alphaOffset="0"/>
151.12806 +                                          </stop>
151.12807 +                                          <stop position="1.0" midpoint="0.5">
151.12808 +                                             <matte red="189" green="193" blue="201" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="0.5962963" saturationOffset="-0.73911506" brightnessOffset="0.12549019" alphaOffset="0"/>
151.12809 +                                          </stop>
151.12810 +                                       </gradient>
151.12811 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.12812 +                                    </rectangle>
151.12813 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.12814 +                                       <gradient cycleMethod="NO_CYCLE">
151.12815 +                                          <stop position="0.0" midpoint="0.5">
151.12816 +                                             <matte red="136" green="141" blue="151" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="0.5962963" saturationOffset="-0.6994788" brightnessOffset="-0.07058823" alphaOffset="0"/>
151.12817 +                                          </stop>
151.12818 +                                          <stop position="1.0" midpoint="0.5">
151.12819 +                                             <matte red="95" green="100" blue="110" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="0.5962963" saturationOffset="-0.66245294" brightnessOffset="-0.23137257" alphaOffset="0"/>
151.12820 +                                          </stop>
151.12821 +                                       </gradient>
151.12822 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.12823 +                                    </rectangle>
151.12824 +                                 </shapes>
151.12825 +                                 <effects/>
151.12826 +                              </layer>
151.12827 +                              <templateLayer fileName="113fc34f80e.png">
151.12828 +                                 <layer name="Template" type="template">
151.12829 +                                    <opacity>1.0</opacity>
151.12830 +                                    <fillOpacity>1.0</fillOpacity>
151.12831 +                                    <blendingMode>NORMAL</blendingMode>
151.12832 +                                    <locked>false</locked>
151.12833 +                                    <visible>false</visible>
151.12834 +                                    <shapes/>
151.12835 +                                    <effects/>
151.12836 +                                 </layer>
151.12837 +                              </templateLayer>
151.12838 +                           </canvas>
151.12839 +                        </state>
151.12840 +                        <state stateKeys="MouseOver+WindowNotFocused">
151.12841 +                           <style>
151.12842 +                              <textForeground/>
151.12843 +                              <textBackground/>
151.12844 +                              <background/>
151.12845 +                              <uiproperties/>
151.12846 +                           </style>
151.12847 +                           <canvas>
151.12848 +                              <size width="19" height="18"/>
151.12849 +                              <nextLayerNameIndex>4</nextLayerNameIndex>
151.12850 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.12851 +                              <layer name="Layer 3">
151.12852 +                                 <opacity>1.0</opacity>
151.12853 +                                 <fillOpacity>1.0</fillOpacity>
151.12854 +                                 <blendingMode>NORMAL</blendingMode>
151.12855 +                                 <locked>false</locked>
151.12856 +                                 <visible>true</visible>
151.12857 +                                 <shapes>
151.12858 +                                    <path>
151.12859 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.12860 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12861 +                                       <points>
151.12862 +                                          <point x="4.886363636363638" y="5.09090909090909" cp1x="4.886363636363638" cp1y="5.09090909090909" cp2x="4.886363636363638" cp2y="5.09090909090909"/>
151.12863 +                                          <point x="6.113636363636362" y="3.84090909090909" cp1x="6.113636363636362" cp1y="3.84090909090909" cp2x="6.113636363636362" cp2y="3.84090909090909"/>
151.12864 +                                          <point x="9.5" y="7.272727272727275" cp1x="9.5" cp1y="7.272727272727275" cp2x="9.5" cp2y="7.272727272727275"/>
151.12865 +                                          <point x="12.795454545454541" y="3.7954545454545436" cp1x="12.795454545454541" cp1y="3.7954545454545436" cp2x="12.795454545454541" cp2y="3.7954545454545436"/>
151.12866 +                                          <point x="14.13636363636364" y="5.136363636363635" cp1x="14.13636363636364" cp1y="5.136363636363635" cp2x="14.13636363636364" cp2y="5.136363636363635"/>
151.12867 +                                          <point x="10.772727272727279" y="8.477272727272728" cp1x="10.772727272727279" cp1y="8.477272727272728" cp2x="10.772727272727279" cp2y="8.477272727272728"/>
151.12868 +                                          <point x="14.227272727272732" y="11.749999999999996" cp1x="14.227272727272732" cp1y="11.749999999999996" cp2x="14.227272727272732" cp2y="11.749999999999996"/>
151.12869 +                                          <point x="12.795454545454543" y="13.31818181818182" cp1x="12.795454545454543" cp1y="13.31818181818182" cp2x="12.795454545454543" cp2y="13.31818181818182"/>
151.12870 +                                          <point x="9.477272727272725" y="9.749999999999993" cp1x="9.477272727272725" cp1y="9.749999999999993" cp2x="9.477272727272725" cp2y="9.749999999999993"/>
151.12871 +                                          <point x="6.295454545454543" y="13.36363636363637" cp1x="6.295454545454543" cp1y="13.36363636363637" cp2x="6.295454545454543" cp2y="13.36363636363637"/>
151.12872 +                                          <point x="4.795454545454548" y="11.818181818181813" cp1x="4.795454545454548" cp1y="11.818181818181813" cp2x="4.795454545454548" cp2y="11.818181818181813"/>
151.12873 +                                          <point x="8.295454545454541" y="8.499999999999998" cp1x="8.295454545454541" cp1y="8.499999999999998" cp2x="8.295454545454541" cp2y="8.499999999999998"/>
151.12874 +                                       </points>
151.12875 +                                    </path>
151.12876 +                                    <path>
151.12877 +                                       <matte red="170" green="0" blue="0" alpha="133" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="0.20118344" brightnessOffset="0.0039215684" alphaOffset="-122"/>
151.12878 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12879 +                                       <points>
151.12880 +                                          <point x="4.749999999999998" y="13.27272727272728" cp1x="4.749999999999998" cp1y="13.27272727272728" cp2x="4.749999999999998" cp2y="13.27272727272728"/>
151.12881 +                                          <point x="5.704545454545453" y="14.295454545454552" cp1x="5.704545454545453" cp1y="14.295454545454552" cp2x="5.704545454545453" cp2y="14.295454545454552"/>
151.12882 +                                          <point x="9.590909090909095" y="10.636363636363644" cp1x="9.590909090909095" cp1y="10.636363636363644" cp2x="9.590909090909095" cp2y="10.636363636363644"/>
151.12883 +                                          <point x="13.000000000000005" y="14.318181818181825" cp1x="13.000000000000005" cp1y="14.318181818181825" cp2x="13.000000000000005" cp2y="14.318181818181825"/>
151.12884 +                                          <point x="14.431818181818185" y="12.954545454545462" cp1x="14.431818181818185" cp1y="12.954545454545462" cp2x="14.431818181818185" cp2y="12.954545454545462"/>
151.12885 +                                          <point x="11.318181818181822" y="9.431818181818189" cp1x="11.318181818181822" cp1y="9.431818181818189" cp2x="11.318181818181822" cp2y="9.431818181818189"/>
151.12886 +                                          <point x="14.318181818181822" y="6.136363636363636" cp1x="14.318181818181822" cp1y="6.136363636363636" cp2x="14.318181818181822" cp2y="6.136363636363636"/>
151.12887 +                                          <point x="12.977272727272732" y="4.5681818181818175" cp1x="12.977272727272732" cp1y="4.5681818181818175" cp2x="12.977272727272732" cp2y="4.5681818181818175"/>
151.12888 +                                          <point x="9.659090909090912" y="7.931818181818182" cp1x="9.659090909090912" cp1y="7.931818181818182" cp2x="9.659090909090912" cp2y="7.931818181818182"/>
151.12889 +                                          <point x="6.272727272727272" y="4.613636363636363" cp1x="6.272727272727272" cp1y="4.613636363636363" cp2x="6.272727272727272" cp2y="4.613636363636363"/>
151.12890 +                                          <point x="4.886363636363635" y="5.977272727272727" cp1x="4.886363636363635" cp1y="5.977272727272727" cp2x="4.886363636363635" cp2y="5.977272727272727"/>
151.12891 +                                          <point x="8.113636363636365" y="9.454545454545467" cp1x="8.113636363636365" cp1y="9.454545454545467" cp2x="8.113636363636365" cp2y="9.454545454545467"/>
151.12892 +                                       </points>
151.12893 +                                    </path>
151.12894 +                                 </shapes>
151.12895 +                                 <effects/>
151.12896 +                              </layer>
151.12897 +                              <layer name="Layer 1">
151.12898 +                                 <opacity>1.0</opacity>
151.12899 +                                 <fillOpacity>1.0</fillOpacity>
151.12900 +                                 <blendingMode>NORMAL</blendingMode>
151.12901 +                                 <locked>false</locked>
151.12902 +                                 <visible>true</visible>
151.12903 +                                 <shapes>
151.12904 +                                    <rectangle x1="1.0" x2="18.0" y1="0.9318181818181819" y2="15.931818181818182" rounding="6.749999999999993">
151.12905 +                                       <gradient cycleMethod="NO_CYCLE">
151.12906 +                                          <stop position="0.0" midpoint="0.5">
151.12907 +                                             <matte red="210" green="132" blue="124" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="6.890595E-4" saturationOffset="-0.38929275" brightnessOffset="0.1607843" alphaOffset="0"/>
151.12908 +                                          </stop>
151.12909 +                                          <stop position="0.53977275" midpoint="0.5">
151.12910 +                                             <matte red="180" green="47" blue="34" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="2.537202E-5" saturationOffset="0.012294531" brightnessOffset="0.043137252" alphaOffset="0"/>
151.12911 +                                          </stop>
151.12912 +                                          <stop position="0.6505682" midpoint="0.5">
151.12913 +                                             <matte red="179" green="43" blue="30" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-2.7342606E-4" saturationOffset="0.033585668" brightnessOffset="0.039215684" alphaOffset="0"/>
151.12914 +                                          </stop>
151.12915 +                                          <stop position="0.97904193" midpoint="0.5">
151.12916 +                                             <matte red="205" green="69" blue="56" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-2.7342606E-4" saturationOffset="-0.07198727" brightnessOffset="0.14117646" alphaOffset="0"/>
151.12917 +                                          </stop>
151.12918 +                                       </gradient>
151.12919 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.12920 +                                    </rectangle>
151.12921 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.12922 +                                       <gradient cycleMethod="NO_CYCLE">
151.12923 +                                          <stop position="0.0" midpoint="0.5">
151.12924 +                                             <matte red="70" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="0.20118344" brightnessOffset="-0.3882353" alphaOffset="0"/>
151.12925 +                                          </stop>
151.12926 +                                          <stop position="1.0" midpoint="0.5">
151.12927 +                                             <matte red="135" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="0.20118344" brightnessOffset="-0.13333333" alphaOffset="0"/>
151.12928 +                                          </stop>
151.12929 +                                       </gradient>
151.12930 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.12931 +                                    </rectangle>
151.12932 +                                    <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.12933 +                                       <matte red="83" green="86" blue="93" alpha="70" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.0029994324" brightnessOffset="-0.38039216" alphaOffset="-185"/>
151.12934 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12935 +                                    </rectangle>
151.12936 +                                 </shapes>
151.12937 +                                 <effects/>
151.12938 +                              </layer>
151.12939 +                              <templateLayer fileName="113fc301011.png">
151.12940 +                                 <layer name="Template" type="template">
151.12941 +                                    <opacity>1.0</opacity>
151.12942 +                                    <fillOpacity>1.0</fillOpacity>
151.12943 +                                    <blendingMode>NORMAL</blendingMode>
151.12944 +                                    <locked>false</locked>
151.12945 +                                    <visible>false</visible>
151.12946 +                                    <shapes/>
151.12947 +                                    <effects/>
151.12948 +                                 </layer>
151.12949 +                              </templateLayer>
151.12950 +                           </canvas>
151.12951 +                        </state>
151.12952 +                        <state stateKeys="Pressed+WindowNotFocused">
151.12953 +                           <style>
151.12954 +                              <textForeground/>
151.12955 +                              <textBackground/>
151.12956 +                              <background/>
151.12957 +                              <uiproperties/>
151.12958 +                           </style>
151.12959 +                           <canvas>
151.12960 +                              <size width="19" height="18"/>
151.12961 +                              <nextLayerNameIndex>4</nextLayerNameIndex>
151.12962 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.12963 +                              <layer name="Layer 3">
151.12964 +                                 <opacity>1.0</opacity>
151.12965 +                                 <fillOpacity>1.0</fillOpacity>
151.12966 +                                 <blendingMode>NORMAL</blendingMode>
151.12967 +                                 <locked>false</locked>
151.12968 +                                 <visible>true</visible>
151.12969 +                                 <shapes>
151.12970 +                                    <path>
151.12971 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.12972 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12973 +                                       <points>
151.12974 +                                          <point x="4.886363636363638" y="5.09090909090909" cp1x="4.886363636363638" cp1y="5.09090909090909" cp2x="4.886363636363638" cp2y="5.09090909090909"/>
151.12975 +                                          <point x="6.113636363636362" y="3.84090909090909" cp1x="6.113636363636362" cp1y="3.84090909090909" cp2x="6.113636363636362" cp2y="3.84090909090909"/>
151.12976 +                                          <point x="9.5" y="7.272727272727275" cp1x="9.5" cp1y="7.272727272727275" cp2x="9.5" cp2y="7.272727272727275"/>
151.12977 +                                          <point x="12.795454545454541" y="3.7954545454545436" cp1x="12.795454545454541" cp1y="3.7954545454545436" cp2x="12.795454545454541" cp2y="3.7954545454545436"/>
151.12978 +                                          <point x="14.13636363636364" y="5.136363636363635" cp1x="14.13636363636364" cp1y="5.136363636363635" cp2x="14.13636363636364" cp2y="5.136363636363635"/>
151.12979 +                                          <point x="10.772727272727279" y="8.477272727272728" cp1x="10.772727272727279" cp1y="8.477272727272728" cp2x="10.772727272727279" cp2y="8.477272727272728"/>
151.12980 +                                          <point x="14.227272727272732" y="11.749999999999996" cp1x="14.227272727272732" cp1y="11.749999999999996" cp2x="14.227272727272732" cp2y="11.749999999999996"/>
151.12981 +                                          <point x="12.795454545454543" y="13.31818181818182" cp1x="12.795454545454543" cp1y="13.31818181818182" cp2x="12.795454545454543" cp2y="13.31818181818182"/>
151.12982 +                                          <point x="9.477272727272725" y="9.749999999999993" cp1x="9.477272727272725" cp1y="9.749999999999993" cp2x="9.477272727272725" cp2y="9.749999999999993"/>
151.12983 +                                          <point x="6.295454545454543" y="13.36363636363637" cp1x="6.295454545454543" cp1y="13.36363636363637" cp2x="6.295454545454543" cp2y="13.36363636363637"/>
151.12984 +                                          <point x="4.795454545454548" y="11.818181818181813" cp1x="4.795454545454548" cp1y="11.818181818181813" cp2x="4.795454545454548" cp2y="11.818181818181813"/>
151.12985 +                                          <point x="8.295454545454541" y="8.499999999999998" cp1x="8.295454545454541" cp1y="8.499999999999998" cp2x="8.295454545454541" cp2y="8.499999999999998"/>
151.12986 +                                       </points>
151.12987 +                                    </path>
151.12988 +                                    <path>
151.12989 +                                       <matte red="88" green="0" blue="0" alpha="133" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="0.20118344" brightnessOffset="-0.31764707" alphaOffset="-122"/>
151.12990 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.12991 +                                       <points>
151.12992 +                                          <point x="4.749999999999998" y="13.27272727272728" cp1x="4.749999999999998" cp1y="13.27272727272728" cp2x="4.749999999999998" cp2y="13.27272727272728"/>
151.12993 +                                          <point x="5.704545454545453" y="14.295454545454552" cp1x="5.704545454545453" cp1y="14.295454545454552" cp2x="5.704545454545453" cp2y="14.295454545454552"/>
151.12994 +                                          <point x="9.590909090909095" y="10.636363636363644" cp1x="9.590909090909095" cp1y="10.636363636363644" cp2x="9.590909090909095" cp2y="10.636363636363644"/>
151.12995 +                                          <point x="13.000000000000005" y="14.318181818181825" cp1x="13.000000000000005" cp1y="14.318181818181825" cp2x="13.000000000000005" cp2y="14.318181818181825"/>
151.12996 +                                          <point x="14.431818181818185" y="12.954545454545462" cp1x="14.431818181818185" cp1y="12.954545454545462" cp2x="14.431818181818185" cp2y="12.954545454545462"/>
151.12997 +                                          <point x="11.318181818181822" y="9.431818181818189" cp1x="11.318181818181822" cp1y="9.431818181818189" cp2x="11.318181818181822" cp2y="9.431818181818189"/>
151.12998 +                                          <point x="14.318181818181822" y="6.136363636363636" cp1x="14.318181818181822" cp1y="6.136363636363636" cp2x="14.318181818181822" cp2y="6.136363636363636"/>
151.12999 +                                          <point x="12.977272727272732" y="4.5681818181818175" cp1x="12.977272727272732" cp1y="4.5681818181818175" cp2x="12.977272727272732" cp2y="4.5681818181818175"/>
151.13000 +                                          <point x="9.659090909090912" y="7.931818181818182" cp1x="9.659090909090912" cp1y="7.931818181818182" cp2x="9.659090909090912" cp2y="7.931818181818182"/>
151.13001 +                                          <point x="6.272727272727272" y="4.613636363636363" cp1x="6.272727272727272" cp1y="4.613636363636363" cp2x="6.272727272727272" cp2y="4.613636363636363"/>
151.13002 +                                          <point x="4.886363636363635" y="5.977272727272727" cp1x="4.886363636363635" cp1y="5.977272727272727" cp2x="4.886363636363635" cp2y="5.977272727272727"/>
151.13003 +                                          <point x="8.113636363636365" y="9.454545454545467" cp1x="8.113636363636365" cp1y="9.454545454545467" cp2x="8.113636363636365" cp2y="9.454545454545467"/>
151.13004 +                                       </points>
151.13005 +                                    </path>
151.13006 +                                 </shapes>
151.13007 +                                 <effects/>
151.13008 +                              </layer>
151.13009 +                              <layer name="Layer 1">
151.13010 +                                 <opacity>1.0</opacity>
151.13011 +                                 <fillOpacity>1.0</fillOpacity>
151.13012 +                                 <blendingMode>NORMAL</blendingMode>
151.13013 +                                 <locked>false</locked>
151.13014 +                                 <visible>true</visible>
151.13015 +                                 <shapes>
151.13016 +                                    <rectangle x1="1.0" x2="18.0" y1="0.9545454545454546" y2="15.954545454545455" rounding="6.749999999999993">
151.13017 +                                       <gradient cycleMethod="NO_CYCLE">
151.13018 +                                          <stop position="0.0" midpoint="0.5">
151.13019 +                                             <matte red="174" green="72" blue="72" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="-0.21260965" brightnessOffset="0.019607842" alphaOffset="0"/>
151.13020 +                                          </stop>
151.13021 +                                          <stop position="0.53977275" midpoint="0.5">
151.13022 +                                             <matte red="144" green="4" blue="4" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="0.17340565" brightnessOffset="-0.09803921" alphaOffset="0"/>
151.13023 +                                          </stop>
151.13024 +                                          <stop position="0.6505682" midpoint="0.5">
151.13025 +                                             <matte red="142" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="0.20118344" brightnessOffset="-0.10588235" alphaOffset="0"/>
151.13026 +                                          </stop>
151.13027 +                                          <stop position="0.98203593" midpoint="0.5">
151.13028 +                                             <matte red="157" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="0.20118344" brightnessOffset="-0.04705882" alphaOffset="0"/>
151.13029 +                                          </stop>
151.13030 +                                       </gradient>
151.13031 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.2544117647058825" y2="1.0016666666666667"/>
151.13032 +                                    </rectangle>
151.13033 +                                    <rectangle x1="0.0" x2="19.0" y1="0.0" y2="17.0" rounding="8.600000000000014">
151.13034 +                                       <gradient cycleMethod="NO_CYCLE">
151.13035 +                                          <stop position="0.0" midpoint="0.5">
151.13036 +                                             <matte red="43" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="0.20118344" brightnessOffset="-0.49411768" alphaOffset="0"/>
151.13037 +                                          </stop>
151.13038 +                                          <stop position="1.0" midpoint="0.5">
151.13039 +                                             <matte red="117" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="0.20118344" brightnessOffset="-0.20392159" alphaOffset="0"/>
151.13040 +                                          </stop>
151.13041 +                                       </gradient>
151.13042 +                                       <paintPoints x1="0.24868421052631579" y1="0.0014705882352941176" x2="0.2486842105263158" y2="1.0"/>
151.13043 +                                    </rectangle>
151.13044 +                                    <rectangle x1="0.0" x2="19.0" y1="11.0" y2="18.0" rounding="6.0">
151.13045 +                                       <matte red="255" green="255" blue="255" alpha="115" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-140"/>
151.13046 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.13047 +                                    </rectangle>
151.13048 +                                 </shapes>
151.13049 +                                 <effects/>
151.13050 +                              </layer>
151.13051 +                              <templateLayer fileName="113fc32c397.png">
151.13052 +                                 <layer name="Template" type="template">
151.13053 +                                    <opacity>1.0</opacity>
151.13054 +                                    <fillOpacity>1.0</fillOpacity>
151.13055 +                                    <blendingMode>NORMAL</blendingMode>
151.13056 +                                    <locked>false</locked>
151.13057 +                                    <visible>false</visible>
151.13058 +                                    <shapes/>
151.13059 +                                    <effects/>
151.13060 +                                 </layer>
151.13061 +                              </templateLayer>
151.13062 +                           </canvas>
151.13063 +                        </state>
151.13064 +                     </backgroundStates>
151.13065 +                     <foregroundStates/>
151.13066 +                     <borderStates/>
151.13067 +                     <regions/>
151.13068 +                  </uiComponent>
151.13069 +               </regions>
151.13070 +            </region>
151.13071 +         </regions>
151.13072 +      </uiComponent>
151.13073 +      <uiComponent opaque="false" type="javax.swing.JInternalFrame.JDesktopIcon" name="DesktopIcon" ui="DesktopIconUI" subregion="false">
151.13074 +         <stateTypes/>
151.13075 +         <contentMargins top="4" bottom="5" left="6" right="4"/>
151.13076 +         <style>
151.13077 +            <textForeground/>
151.13078 +            <textBackground/>
151.13079 +            <background/>
151.13080 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.13081 +            <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.13082 +            <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.13083 +            <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.13084 +            <uiproperties/>
151.13085 +         </style>
151.13086 +         <backgroundStates>
151.13087 +            <state stateKeys="Enabled">
151.13088 +               <style>
151.13089 +                  <textForeground/>
151.13090 +                  <textBackground/>
151.13091 +                  <background/>
151.13092 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.13093 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.13094 +                  <uiproperties/>
151.13095 +               </style>
151.13096 +               <canvas>
151.13097 +                  <size width="28" height="26"/>
151.13098 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.13099 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.13100 +                  <layer name="Layer 1">
151.13101 +                     <opacity>1.0</opacity>
151.13102 +                     <fillOpacity>1.0</fillOpacity>
151.13103 +                     <blendingMode>NORMAL</blendingMode>
151.13104 +                     <locked>false</locked>
151.13105 +                     <visible>true</visible>
151.13106 +                     <shapes>
151.13107 +                        <rectangle x1="4.0" x2="25.0" y1="2.0" y2="22.0" rounding="0.0">
151.13108 +                           <gradient cycleMethod="NO_CYCLE">
151.13109 +                              <stop position="0.0" midpoint="0.24">
151.13110 +                                 <matte red="227" green="229" blue="232" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.01111114" saturationOffset="-0.088974595" brightnessOffset="0.16470587" alphaOffset="0"/>
151.13111 +                              </stop>
151.13112 +                              <stop position="1.0" midpoint="0.5">
151.13113 +                                 <matte red="170" green="175" blue="185" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.029445238" brightnessOffset="-0.019607842" alphaOffset="0"/>
151.13114 +                              </stop>
151.13115 +                           </gradient>
151.13116 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.13117 +                        </rectangle>
151.13118 +                        <rectangle x1="3.0" x2="27.0" y1="1.0" y2="23.0" rounding="3.1000000000000005">
151.13119 +                           <gradient cycleMethod="NO_CYCLE">
151.13120 +                              <stop position="0.0" midpoint="0.5">
151.13121 +                                 <matte red="240" green="241" blue="242" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.102261856" brightnessOffset="0.20392156" alphaOffset="0"/>
151.13122 +                              </stop>
151.13123 +                              <stop position="1.0" midpoint="0.5">
151.13124 +                                 <matte red="204" green="207" blue="213" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.0682728" brightnessOffset="0.09019607" alphaOffset="0"/>
151.13125 +                              </stop>
151.13126 +                           </gradient>
151.13127 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.13128 +                        </rectangle>
151.13129 +                        <rectangle x1="2.0" x2="27.0" y1="0.0" y2="24.0" rounding="4.833333333333331">
151.13130 +                           <matte red="43" green="46" blue="51" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.02551502" saturationOffset="-0.47885156" brightnessOffset="-0.34901965" alphaOffset="0"/>
151.13131 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.13132 +                        </rectangle>
151.13133 +                     </shapes>
151.13134 +                     <effects/>
151.13135 +                  </layer>
151.13136 +               </canvas>
151.13137 +            </state>
151.13138 +         </backgroundStates>
151.13139 +         <foregroundStates/>
151.13140 +         <borderStates/>
151.13141 +         <regions/>
151.13142 +      </uiComponent>
151.13143 +      <uiComponent opaque="true" type="javax.swing.JDesktopPane" name="DesktopPane" ui="DesktopPaneUI" subregion="false">
151.13144 +         <stateTypes/>
151.13145 +         <contentMargins top="0" bottom="0" left="0" right="0"/>
151.13146 +         <style>
151.13147 +            <textForeground/>
151.13148 +            <textBackground/>
151.13149 +            <background/>
151.13150 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.13151 +            <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.13152 +            <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.13153 +            <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.13154 +            <uiproperties/>
151.13155 +         </style>
151.13156 +         <backgroundStates>
151.13157 +            <state stateKeys="Enabled">
151.13158 +               <style>
151.13159 +                  <textForeground/>
151.13160 +                  <textBackground/>
151.13161 +                  <background/>
151.13162 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.13163 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.13164 +                  <uiproperties/>
151.13165 +               </style>
151.13166 +               <canvas>
151.13167 +                  <size width="300" height="232"/>
151.13168 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.13169 +                  <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.13170 +                  <layer name="Layer 1">
151.13171 +                     <opacity>1.0</opacity>
151.13172 +                     <fillOpacity>1.0</fillOpacity>
151.13173 +                     <blendingMode>NORMAL</blendingMode>
151.13174 +                     <locked>false</locked>
151.13175 +                     <visible>true</visible>
151.13176 +                     <shapes>
151.13177 +                        <path>
151.13178 +                           <gradient cycleMethod="NO_CYCLE">
151.13179 +                              <stop position="0.0" midpoint="0.5">
151.13180 +                                 <matte red="49" green="81" blue="102" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.012613952" saturationOffset="-0.11610645" brightnessOffset="-0.14901963" alphaOffset="0"/>
151.13181 +                              </stop>
151.13182 +                              <stop position="1.0" midpoint="0.5">
151.13183 +                                 <matte red="35" green="62" blue="84" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0038217902" saturationOffset="-0.05238098" brightnessOffset="-0.21960786" alphaOffset="0"/>
151.13184 +                              </stop>
151.13185 +                           </gradient>
151.13186 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.13187 +                           <points>
151.13188 +                              <point x="0.0" y="232.0" cp1x="0.0" cp1y="232.0" cp2x="0.0" cp2y="232.0"/>
151.13189 +                              <point x="0.0" y="138.5" cp1x="0.0" cp1y="138.5" cp2x="0.0" cp2y="138.5"/>
151.13190 +                              <point x="22.0" y="185.0" cp1x="12.0" cp1y="165.5" cp2x="32.0" cp2y="204.5"/>
151.13191 +                              <point x="50.0" y="232.0" cp1x="50.0" cp1y="231.5" cp2x="50.0" cp2y="232.5"/>
151.13192 +                           </points>
151.13193 +                        </path>
151.13194 +                        <path>
151.13195 +                           <gradient cycleMethod="NO_CYCLE">
151.13196 +                              <stop position="0.0" midpoint="0.5">
151.13197 +                                 <matte red="70" green="110" blue="142" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.004577577" saturationOffset="-0.12867206" brightnessOffset="0.007843137" alphaOffset="0"/>
151.13198 +                              </stop>
151.13199 +                              <stop position="1.0" midpoint="0.5">
151.13200 +                                 <matte red="35" green="63" blue="86" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0034883022" saturationOffset="-0.042691052" brightnessOffset="-0.21176472" alphaOffset="0"/>
151.13201 +                              </stop>
151.13202 +                           </gradient>
151.13203 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.13204 +                           <points>
151.13205 +                              <point x="82.0" y="232.0" cp1x="82.0" cp1y="232.0" cp2x="82.0" cp2y="232.0"/>
151.13206 +                              <point x="79.0" y="153.0" cp1x="84.0" cp1y="190.0" cp2x="74.0" cp2y="116.0"/>
151.13207 +                              <point x="58.0" y="52.0" cp1x="67.0" cp1y="85.5" cp2x="49.0" cp2y="18.5"/>
151.13208 +                              <point x="40.0" y="0.0" cp1x="40.0" cp1y="0.0" cp2x="40.0" cp2y="0.0"/>
151.13209 +                              <point x="0.0" y="0.0" cp1x="0.0" cp1y="0.0" cp2x="0.0" cp2y="0.0"/>
151.13210 +                              <point x="0.0" y="142.0" cp1x="0.0" cp1y="142.0" cp2x="0.0" cp2y="142.0"/>
151.13211 +                              <point x="45.0" y="232.0" cp1x="45.0" cp1y="231.5" cp2x="45.0" cp2y="232.5"/>
151.13212 +                           </points>
151.13213 +                        </path>
151.13214 +                        <path>
151.13215 +                           <gradient cycleMethod="NO_CYCLE">
151.13216 +                              <stop position="0.0" midpoint="0.5">
151.13217 +                                 <matte red="55" green="88" blue="112" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.008476257" saturationOffset="-0.1267857" brightnessOffset="-0.109803945" alphaOffset="0"/>
151.13218 +                              </stop>
151.13219 +                              <stop position="1.0" midpoint="0.5">
151.13220 +                                 <matte red="53" green="85" blue="108" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.008954704" saturationOffset="-0.12645501" brightnessOffset="-0.12549022" alphaOffset="0"/>
151.13221 +                              </stop>
151.13222 +                           </gradient>
151.13223 +                           <paintPoints x1="0.35483870967741926" y1="0.1142857142857143" x2="0.4838709677419357" y2="0.980952380952381"/>
151.13224 +                           <points>
151.13225 +                              <point x="182.0" y="232.0" cp1x="182.0" cp1y="232.0" cp2x="182.0" cp2y="232.0"/>
151.13226 +                              <point x="192.0" y="204.5" cp1x="185.0" cp1y="221.5" cp2x="199.0" cp2y="187.5"/>
151.13227 +                              <point x="203.25" y="179.75" cp1x="203.25" cp1y="179.75" cp2x="203.25" cp2y="179.75"/>
151.13228 +                              <point x="222.5" y="205.0" cp1x="211.5" cp1y="190.0" cp2x="233.5" cp2y="220.0"/>
151.13229 +                              <point x="244.0" y="232.0" cp1x="244.0" cp1y="231.5" cp2x="244.0" cp2y="232.5"/>
151.13230 +                           </points>
151.13231 +                        </path>
151.13232 +                        <path>
151.13233 +                           <gradient cycleMethod="NO_CYCLE">
151.13234 +                              <stop position="0.0" midpoint="0.5">
151.13235 +                                 <matte red="61" green="96" blue="121" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.009207249" saturationOffset="-0.13984653" brightnessOffset="-0.07450983" alphaOffset="0"/>
151.13236 +                              </stop>
151.13237 +                              <stop position="1.0" midpoint="0.5">
151.13238 +                                 <matte red="54" green="86" blue="108" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.010750473" saturationOffset="-0.13571429" brightnessOffset="-0.12549022" alphaOffset="0"/>
151.13239 +                              </stop>
151.13240 +                           </gradient>
151.13241 +                           <paintPoints x1="0.3511235955056181" y1="0.09326424870466325" x2="0.33426966292134835" y2="0.9846153846153847"/>
151.13242 +                           <points>
151.13243 +                              <point x="156.5" y="232.0" cp1x="156.5" cp1y="232.0" cp2x="156.5" cp2y="232.0"/>
151.13244 +                              <point x="166.5" y="180.5" cp1x="164.5" cp1y="203.0" cp2x="168.5" cp2y="158.0"/>
151.13245 +                              <point x="170.5" y="133.75" cp1x="170.5" cp1y="133.75" cp2x="170.5" cp2y="133.75"/>
151.13246 +                              <point x="203.25" y="179.75" cp1x="203.25" cp1y="179.75" cp2x="203.25" cp2y="179.75"/>
151.13247 +                              <point x="195.25" y="207.0" cp1x="201.25" cp1y="193.0" cp2x="189.25" cp2y="221.0"/>
151.13248 +                              <point x="182.5" y="232.0" cp1x="182.5" cp1y="232.0" cp2x="182.5" cp2y="232.0"/>
151.13249 +                           </points>
151.13250 +                        </path>
151.13251 +                        <path>
151.13252 +                           <gradient cycleMethod="NO_CYCLE">
151.13253 +                              <stop position="0.0" midpoint="0.5">
151.13254 +                                 <matte red="57" green="94" blue="127" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-8.028746E-5" saturationOffset="-0.084533215" brightnessOffset="-0.05098042" alphaOffset="0"/>
151.13255 +                              </stop>
151.13256 +                              <stop position="1.0" midpoint="0.5">
151.13257 +                                 <matte red="57" green="92" blue="115" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.012559712" saturationOffset="-0.13136649" brightnessOffset="-0.09803924" alphaOffset="0"/>
151.13258 +                              </stop>
151.13259 +                           </gradient>
151.13260 +                           <paintPoints x1="0.8659695817490493" y1="0.011049723756906077" x2="0.24809885931558942" y2="0.9502762430939229"/>
151.13261 +                           <points>
151.13262 +                              <point x="170.5" y="134.5" cp1x="170.5" cp1y="134.5" cp2x="170.5" cp2y="134.5"/>
151.13263 +                              <point x="172.5" y="55.5" cp1x="172.5" cp1y="88.5" cp2x="172.5" cp2y="22.5"/>
151.13264 +                              <point x="168.5" y="0.0" cp1x="168.5" cp1y="0.0" cp2x="168.5" cp2y="0.0"/>
151.13265 +                              <point x="300.0" y="0.0" cp1x="300.0" cp1y="0.0" cp2x="300.0" cp2y="0.0"/>
151.13266 +                              <point x="300.0" y="46.0" cp1x="300.0" cp1y="46.0" cp2x="300.0" cp2y="46.0"/>
151.13267 +                              <point x="242.0" y="117.0" cp1x="269.5" cp1y="78.5" cp2x="214.5" cp2y="155.5"/>
151.13268 +                              <point x="203.0" y="180.5" cp1x="203.0" cp1y="180.5" cp2x="203.0" cp2y="180.5"/>
151.13269 +                           </points>
151.13270 +                        </path>
151.13271 +                        <path>
151.13272 +                           <gradient cycleMethod="NO_CYCLE">
151.13273 +                              <stop position="0.0" midpoint="0.5">
151.13274 +                                 <matte red="57" green="94" blue="127" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-8.028746E-5" saturationOffset="-0.084533215" brightnessOffset="-0.05098042" alphaOffset="0"/>
151.13275 +                              </stop>
151.13276 +                              <stop position="1.0" midpoint="0.5">
151.13277 +                                 <matte red="56" green="89" blue="115" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0052053332" saturationOffset="-0.12267083" brightnessOffset="-0.09803924" alphaOffset="0"/>
151.13278 +                              </stop>
151.13279 +                           </gradient>
151.13280 +                           <paintPoints x1="0.25" y1="0.0" x2="0.8353658536585367" y2="0.9522058823529412"/>
151.13281 +                           <points>
151.13282 +                              <point x="101.5" y="0.0" cp1x="101.5" cp1y="0.0" cp2x="101.5" cp2y="0.0"/>
151.13283 +                              <point x="132.5" y="72.0" cp1x="111.5" cp1y="34.5" cp2x="153.5" cp2y="109.5"/>
151.13284 +                              <point x="172.0" y="135.5" cp1x="172.0" cp1y="135.5" cp2x="172.0" cp2y="135.5"/>
151.13285 +                              <point x="182.0" y="56.0" cp1x="183.5" cp1y="85.5" cp2x="180.5" cp2y="26.5"/>
151.13286 +                              <point x="181.5" y="0.0" cp1x="181.5" cp1y="0.0" cp2x="181.5" cp2y="0.0"/>
151.13287 +                           </points>
151.13288 +                        </path>
151.13289 +                        <path>
151.13290 +                           <matte red="255" green="200" blue="0" alpha="6" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.13291 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.13292 +                           <points>
151.13293 +                              <point x="170.0" y="0.0" cp1x="170.0" cp1y="0.0" cp2x="170.0" cp2y="0.0"/>
151.13294 +                              <point x="170.0" y="132.0" cp1x="170.0" cp1y="132.0" cp2x="170.0" cp2y="132.0"/>
151.13295 +                              <point x="202.5" y="179.0" cp1x="202.5" cp1y="179.0" cp2x="202.5" cp2y="179.0"/>
151.13296 +                              <point x="243.5" y="115.5" cp1x="220.0" cp1y="149.0" cp2x="267.0" cp2y="82.0"/>
151.13297 +                              <point x="300.0" y="46.5" cp1x="300.0" cp1y="46.5" cp2x="300.0" cp2y="46.5"/>
151.13298 +                              <point x="300.0" y="0.0" cp1x="300.0" cp1y="0.0" cp2x="300.0" cp2y="0.0"/>
151.13299 +                           </points>
151.13300 +                        </path>
151.13301 +                        <path>
151.13302 +                           <gradient cycleMethod="NO_CYCLE">
151.13303 +                              <stop position="0.0" midpoint="0.5">
151.13304 +                                 <matte red="48" green="83" blue="114" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-3.6883354E-4" saturationOffset="-0.056766927" brightnessOffset="-0.10196081" alphaOffset="0"/>
151.13305 +                              </stop>
151.13306 +                              <stop position="1.0" midpoint="0.5">
151.13307 +                                 <matte red="53" green="85" blue="108" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.008954704" saturationOffset="-0.12645501" brightnessOffset="-0.12549022" alphaOffset="0"/>
151.13308 +                              </stop>
151.13309 +                           </gradient>
151.13310 +                           <paintPoints x1="0.9567307692307692" y1="0.06835443037974684" x2="0.75" y2="1.0"/>
151.13311 +                           <points>
151.13312 +                              <point x="236.5" y="232.0" cp1x="236.5" cp1y="231.5" cp2x="236.5" cp2y="232.5"/>
151.13313 +                              <point x="196.0" y="179.5" cp1x="196.0" cp1y="179.5" cp2x="196.0" cp2y="179.5"/>
151.13314 +                              <point x="300.0" y="34.0" cp1x="300.0" cp1y="34.0" cp2x="300.0" cp2y="34.0"/>
151.13315 +                              <point x="300.0" y="232.0" cp1x="300.0" cp1y="231.5" cp2x="300.5" cp2y="232.5"/>
151.13316 +                           </points>
151.13317 +                        </path>
151.13318 +                        <path>
151.13319 +                           <gradient cycleMethod="NO_CYCLE">
151.13320 +                              <stop position="0.0" midpoint="0.5">
151.13321 +                                 <matte red="70" green="110" blue="142" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.004577577" saturationOffset="-0.12867206" brightnessOffset="0.007843137" alphaOffset="0"/>
151.13322 +                              </stop>
151.13323 +                              <stop position="1.0" midpoint="0.5">
151.13324 +                                 <matte red="43" green="73" blue="96" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0063245893" saturationOffset="-0.08363098" brightnessOffset="-0.17254904" alphaOffset="0"/>
151.13325 +                              </stop>
151.13326 +                           </gradient>
151.13327 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.13328 +                           <points>
151.13329 +                              <point x="81.5" y="232.0" cp1x="81.5" cp1y="231.5" cp2x="81.5" cp2y="232.5"/>
151.13330 +                              <point x="38.5" y="0.0" cp1x="38.5" cp1y="0.0" cp2x="38.5" cp2y="0.0"/>
151.13331 +                              <point x="105.5" y="0.0" cp1x="105.5" cp1y="0.0" cp2x="105.5" cp2y="0.0"/>
151.13332 +                              <point x="176.0" y="133.5" cp1x="176.0" cp1y="133.5" cp2x="176.0" cp2y="133.5"/>
151.13333 +                              <point x="162.5" y="232.0" cp1x="162.5" cp1y="232.0" cp2x="162.5" cp2y="232.0"/>
151.13334 +                           </points>
151.13335 +                        </path>
151.13336 +                     </shapes>
151.13337 +                     <effects/>
151.13338 +                  </layer>
151.13339 +                  <templateLayer fileName="113e0997434.png">
151.13340 +                     <layer name="Template" type="template">
151.13341 +                        <opacity>1.0</opacity>
151.13342 +                        <fillOpacity>1.0</fillOpacity>
151.13343 +                        <blendingMode>NORMAL</blendingMode>
151.13344 +                        <locked>false</locked>
151.13345 +                        <visible>true</visible>
151.13346 +                        <shapes/>
151.13347 +                        <effects/>
151.13348 +                     </layer>
151.13349 +                  </templateLayer>
151.13350 +               </canvas>
151.13351 +            </state>
151.13352 +         </backgroundStates>
151.13353 +         <foregroundStates/>
151.13354 +         <borderStates/>
151.13355 +         <regions/>
151.13356 +      </uiComponent>
151.13357 +      <uiComponent opaque="false" type="javax.swing.JLabel" name="Label" ui="LabelUI" subregion="false">
151.13358 +         <stateTypes/>
151.13359 +         <contentMargins top="0" bottom="0" left="0" right="0"/>
151.13360 +         <style>
151.13361 +            <textForeground/>
151.13362 +            <textBackground/>
151.13363 +            <background/>
151.13364 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.13365 +            <cacheMode>NO_CACHING</cacheMode>
151.13366 +            <uiproperties/>
151.13367 +         </style>
151.13368 +         <backgroundStates>
151.13369 +            <state stateKeys="Disabled">
151.13370 +               <style>
151.13371 +                  <textForeground>
151.13372 +                     <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.13373 +                  </textForeground>
151.13374 +                  <textBackground/>
151.13375 +                  <background/>
151.13376 +                  <inherit-textForeground>false</inherit-textForeground>
151.13377 +                  <uiproperties/>
151.13378 +               </style>
151.13379 +               <canvas>
151.13380 +                  <size width="100" height="30"/>
151.13381 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.13382 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.13383 +                  <layer name="Layer 1">
151.13384 +                     <opacity>1.0</opacity>
151.13385 +                     <fillOpacity>1.0</fillOpacity>
151.13386 +                     <blendingMode>NORMAL</blendingMode>
151.13387 +                     <locked>false</locked>
151.13388 +                     <visible>true</visible>
151.13389 +                     <shapes/>
151.13390 +                     <effects/>
151.13391 +                  </layer>
151.13392 +               </canvas>
151.13393 +            </state>
151.13394 +         </backgroundStates>
151.13395 +         <foregroundStates/>
151.13396 +         <borderStates/>
151.13397 +         <regions/>
151.13398 +      </uiComponent>
151.13399 +      <uiComponent opaque="true" type="javax.swing.JList" name="List" ui="ListUI" subregion="false">
151.13400 +         <stateTypes/>
151.13401 +         <contentMargins top="0" bottom="0" left="0" right="0"/>
151.13402 +         <style>
151.13403 +            <textForeground/>
151.13404 +            <textBackground/>
151.13405 +            <background>
151.13406 +               <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.13407 +            </background>
151.13408 +            <inherit-background>false</inherit-background>
151.13409 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.13410 +            <cacheMode>NO_CACHING</cacheMode>
151.13411 +            <uiproperties>
151.13412 +               <uiProperty name="rendererUseListColors" type="BOOLEAN" value="true"/>
151.13413 +               <uiProperty name="rendererUseUIBorder" type="BOOLEAN" value="true"/>
151.13414 +               <uiProperty name="cellNoFocusBorder" type="BORDER">
151.13415 +                   <border type="empty" top="2" left="5" bottom="2" right="5"/>
151.13416 +               </uiProperty>
151.13417 +               <uiProperty name="focusCellHighlightBorder" type="BORDER">
151.13418 +                   <border type="painter" painter="Tree:TreeCell[Enabled+Focused].backgroundPainter" top="2" left="5" bottom="2" right="5" />
151.13419 +               </uiProperty>
151.13420 +               <uiProperty name="dropLineColor" type="COLOR">
151.13421 +                  <matte red="242" green="242" blue="242" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0" alphaOffset="0"/>
151.13422 +               </uiProperty>
151.13423 +            </uiproperties>
151.13424 +         </style>
151.13425 +         <backgroundStates>
151.13426 +            <state stateKeys="Selected">
151.13427 +                <style>
151.13428 +                   <textForeground>
151.13429 +                      <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0" uiResource="false"/>
151.13430 +                   </textForeground>
151.13431 +                   <textBackground>
151.13432 +                      <matte red="57" green="105" blue="138" alpha="255" uiDefaultParentName="nimbusSelectionBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0" uiResource="false"/>
151.13433 +                   </textBackground>
151.13434 +                   <background/>
151.13435 +                   <inherit-textForeground>false</inherit-textForeground>
151.13436 +                   <inherit-textBackground>false</inherit-textBackground>
151.13437 +                   <uiproperties/>
151.13438 +                </style>
151.13439 +                <canvas>
151.13440 +                   <size width="100" height="30"/>
151.13441 +                   <nextLayerNameIndex>2</nextLayerNameIndex>
151.13442 +                   <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.13443 +                   <layer name="Layer 1">
151.13444 +                      <opacity>1.0</opacity>
151.13445 +                      <fillOpacity>1.0</fillOpacity>
151.13446 +                      <blendingMode>NORMAL</blendingMode>
151.13447 +                      <locked>false</locked>
151.13448 +                      <visible>true</visible>
151.13449 +                      <shapes/>
151.13450 +                      <effects/>
151.13451 +                   </layer>
151.13452 +                </canvas>
151.13453 +            </state>
151.13454 +            <state stateKeys="Disabled+Selected">
151.13455 +                <style>
151.13456 +                   <textForeground/>
151.13457 +                   <textBackground>
151.13458 +                       <matte red="57" green="105" blue="138" alpha="255" uiDefaultParentName="nimbusSelectionBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0" uiResource="false"/>
151.13459 +                   </textBackground>
151.13460 +                   <background/>
151.13461 +                   <inherit-textBackground>false</inherit-textBackground>
151.13462 +                   <uiproperties/>
151.13463 +                </style>
151.13464 +                <canvas>
151.13465 +                   <size width="100" height="30"/>
151.13466 +                   <nextLayerNameIndex>2</nextLayerNameIndex>
151.13467 +                   <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.13468 +                   <layer name="Layer 1">
151.13469 +                      <opacity>1.0</opacity>
151.13470 +                      <fillOpacity>1.0</fillOpacity>
151.13471 +                      <blendingMode>NORMAL</blendingMode>
151.13472 +                      <locked>false</locked>
151.13473 +                      <visible>true</visible>
151.13474 +                      <shapes/>
151.13475 +                      <effects/>
151.13476 +                   </layer>
151.13477 +                </canvas>
151.13478 +            </state>
151.13479 +            <state stateKeys="Disabled">
151.13480 +                <style>
151.13481 +                   <textForeground>
151.13482 +                      <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0" uiResource="false"/>
151.13483 +                   </textForeground>
151.13484 +                   <textBackground/>
151.13485 +                   <background/>
151.13486 +                   <inherit-textForeground>false</inherit-textForeground>
151.13487 +                   <uiproperties/>
151.13488 +                </style>
151.13489 +                <canvas>
151.13490 +                   <size width="100" height="30"/>
151.13491 +                   <nextLayerNameIndex>2</nextLayerNameIndex>
151.13492 +                   <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.13493 +                   <layer name="Layer 1">
151.13494 +                      <opacity>1.0</opacity>
151.13495 +                      <fillOpacity>1.0</fillOpacity>
151.13496 +                      <blendingMode>NORMAL</blendingMode>
151.13497 +                      <locked>false</locked>
151.13498 +                      <visible>true</visible>
151.13499 +                      <shapes/>
151.13500 +                      <effects/>
151.13501 +                   </layer>
151.13502 +                </canvas>
151.13503 +            </state>
151.13504 +         </backgroundStates>
151.13505 +         <foregroundStates/>
151.13506 +         <borderStates/>
151.13507 +         <regions>
151.13508 +            <uiComponent opaque="true" componentName="List.cellRenderer" type="javax.swing.JLabel" name="Label" ui="LabelUI" subregion="true">
151.13509 +               <stateTypes/>
151.13510 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.13511 +               <style>
151.13512 +                  <textForeground/>
151.13513 +                  <textBackground/>
151.13514 +                  <background/>
151.13515 +                  <uiproperties/>
151.13516 +               </style>
151.13517 +               <backgroundStates>
151.13518 +                  <state stateKeys="Disabled">
151.13519 +                     <style>
151.13520 +                        <textForeground>
151.13521 +                           <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.13522 +                        </textForeground>
151.13523 +                        <textBackground/>
151.13524 +                        <background>
151.13525 +                           <matte red="57" green="105" blue="138" alpha="255" uiDefaultParentName="nimbusSelectionBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0" uiResource="false"/>
151.13526 +                        </background>
151.13527 +                        <inherit-textForeground>false</inherit-textForeground>
151.13528 +                        <inherit-background>false</inherit-background>
151.13529 +                        <uiproperties/>
151.13530 +                     </style>
151.13531 +                     <canvas>
151.13532 +                        <size width="100" height="30"/>
151.13533 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.13534 +                        <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.13535 +                        <layer name="Layer 1">
151.13536 +                           <opacity>1.0</opacity>
151.13537 +                           <fillOpacity>1.0</fillOpacity>
151.13538 +                           <blendingMode>NORMAL</blendingMode>
151.13539 +                           <locked>false</locked>
151.13540 +                           <visible>true</visible>
151.13541 +                           <shapes/>
151.13542 +                           <effects/>
151.13543 +                        </layer>
151.13544 +                     </canvas>
151.13545 +                  </state>
151.13546 +               </backgroundStates>
151.13547 +               <foregroundStates/>
151.13548 +               <borderStates/>
151.13549 +               <regions/>
151.13550 +            </uiComponent>
151.13551 +         </regions>
151.13552 +      </uiComponent>
151.13553 +      <uiComponent opaque="false" type="javax.swing.JMenuBar" name="MenuBar" ui="MenuBarUI" subregion="false">
151.13554 +         <stateTypes/>
151.13555 +         <contentMargins top="2" bottom="2" left="6" right="6"/>
151.13556 +         <style>
151.13557 +            <textForeground/>
151.13558 +            <textBackground/>
151.13559 +            <background/>
151.13560 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.13561 +            <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.13562 +            <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.13563 +            <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.13564 +            <uiproperties/>
151.13565 +         </style>
151.13566 +         <backgroundStates>
151.13567 +            <state stateKeys="Enabled">
151.13568 +               <style>
151.13569 +                  <textForeground/>
151.13570 +                  <textBackground/>
151.13571 +                  <background/>
151.13572 +                  <uiproperties/>
151.13573 +               </style>
151.13574 +               <canvas>
151.13575 +                  <size width="18" height="22"/>
151.13576 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.13577 +                  <stretchingInsets top="1" bottom="0" left="0" right="0"/>
151.13578 +                  <layer name="Layer 1">
151.13579 +                     <opacity>1.0</opacity>
151.13580 +                     <fillOpacity>1.0</fillOpacity>
151.13581 +                     <blendingMode>NORMAL</blendingMode>
151.13582 +                     <locked>false</locked>
151.13583 +                     <visible>true</visible>
151.13584 +                     <shapes>
151.13585 +                        <rectangle x1="0.0" x2="18.0" y1="0.0" y2="22.0" rounding="0.0">
151.13586 +                           <gradient cycleMethod="NO_CYCLE">
151.13587 +                              <stop position="0.0" midpoint="0.5">
151.13588 +                                 <matte red="249" green="250" blue="251" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.10255819" brightnessOffset="0.23921567" alphaOffset="0"/>
151.13589 +                              </stop>
151.13590 +                              <stop position="0.03" midpoint="0.28">
151.13591 +                                 <matte red="250" green="251" blue="251" alpha="226" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.111111104" saturationOffset="-0.10654225" brightnessOffset="0.23921567" alphaOffset="-29"/>
151.13592 +                              </stop>
151.13593 +                              <stop position="0.7569444" midpoint="0.5">
151.13594 +                                 <matte red="255" green="255" blue="255" alpha="0" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-255"/>
151.13595 +                              </stop>
151.13596 +                           </gradient>
151.13597 +                           <paintPoints x1="1.0" y1="0.0" x2="1.0" y2="1.0"/>
151.13598 +                        </rectangle>
151.13599 +                        <rectangle x1="0.0" x2="18.0" y1="0.0" y2="21.0" rounding="0.0">
151.13600 +                           <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
151.13601 +                           <paintPoints x1="0.0" y1="0.0" x2="0.0" y2="1.0"/>
151.13602 +                        </rectangle>
151.13603 +                     </shapes>
151.13604 +                     <effects/>
151.13605 +                  </layer>
151.13606 +                  <templateLayer fileName="113c675ba35.png">
151.13607 +                     <layer name="Template" type="template">
151.13608 +                        <opacity>1.0</opacity>
151.13609 +                        <fillOpacity>1.0</fillOpacity>
151.13610 +                        <blendingMode>NORMAL</blendingMode>
151.13611 +                        <locked>false</locked>
151.13612 +                        <visible>true</visible>
151.13613 +                        <shapes/>
151.13614 +                        <effects/>
151.13615 +                     </layer>
151.13616 +                  </templateLayer>
151.13617 +               </canvas>
151.13618 +            </state>
151.13619 +         </backgroundStates>
151.13620 +         <foregroundStates/>
151.13621 +         <borderStates>
151.13622 +            <state stateKeys="Enabled">
151.13623 +               <style>
151.13624 +                  <textForeground/>
151.13625 +                  <textBackground/>
151.13626 +                  <background/>
151.13627 +                  <uiproperties/>
151.13628 +               </style>
151.13629 +               <canvas>
151.13630 +                  <size width="30" height="30"/>
151.13631 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.13632 +                  <stretchingInsets top="0" bottom="1" left="0" right="0"/>
151.13633 +                  <layer name="Layer 1">
151.13634 +                     <opacity>1.0</opacity>
151.13635 +                     <fillOpacity>1.0</fillOpacity>
151.13636 +                     <blendingMode>NORMAL</blendingMode>
151.13637 +                     <locked>false</locked>
151.13638 +                     <visible>true</visible>
151.13639 +                     <shapes>
151.13640 +                        <rectangle x1="0.0" x2="30.0" y1="29.0" y2="30.0" rounding="0.0">
151.13641 +                           <matte red="146" green="151" blue="161" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.13642 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.13643 +                        </rectangle>
151.13644 +                     </shapes>
151.13645 +                     <effects/>
151.13646 +                  </layer>
151.13647 +               </canvas>
151.13648 +            </state>
151.13649 +         </borderStates>
151.13650 +         <regions>
151.13651 +            <uiComponent opaque="false" type="javax.swing.JMenu" name="Menu" ui="MenuUI" subregion="false">
151.13652 +               <stateTypes/>
151.13653 +               <contentMargins top="1" bottom="2" left="4" right="4"/>
151.13654 +               <style>
151.13655 +                  <textForeground/>
151.13656 +                  <textBackground/>
151.13657 +                  <background/>
151.13658 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.13659 +                  <cacheMode>NO_CACHING</cacheMode>
151.13660 +                  <uiproperties/>
151.13661 +               </style>
151.13662 +               <backgroundStates>
151.13663 +                  <state stateKeys="Disabled">
151.13664 +                     <style>
151.13665 +                        <textForeground>
151.13666 +                           <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.13667 +                        </textForeground>
151.13668 +                        <textBackground/>
151.13669 +                        <background/>
151.13670 +                        <inherit-textForeground>false</inherit-textForeground>
151.13671 +                        <uiproperties/>
151.13672 +                     </style>
151.13673 +                     <canvas>
151.13674 +                        <size width="100" height="30"/>
151.13675 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.13676 +                        <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.13677 +                        <layer name="Layer 1">
151.13678 +                           <opacity>1.0</opacity>
151.13679 +                           <fillOpacity>1.0</fillOpacity>
151.13680 +                           <blendingMode>NORMAL</blendingMode>
151.13681 +                           <locked>false</locked>
151.13682 +                           <visible>true</visible>
151.13683 +                           <shapes/>
151.13684 +                           <effects/>
151.13685 +                        </layer>
151.13686 +                     </canvas>
151.13687 +                  </state>
151.13688 +                  <state stateKeys="Enabled">
151.13689 +                     <style>
151.13690 +                        <textForeground>
151.13691 +                           <matte red="35" green="35" blue="36" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.13692 +                        </textForeground>
151.13693 +                        <textBackground/>
151.13694 +                        <background/>
151.13695 +                        <inherit-textForeground>false</inherit-textForeground>
151.13696 +                        <uiproperties/>
151.13697 +                     </style>
151.13698 +                     <canvas>
151.13699 +                        <size width="100" height="30"/>
151.13700 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.13701 +                        <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.13702 +                        <layer name="Layer 1">
151.13703 +                           <opacity>1.0</opacity>
151.13704 +                           <fillOpacity>1.0</fillOpacity>
151.13705 +                           <blendingMode>NORMAL</blendingMode>
151.13706 +                           <locked>false</locked>
151.13707 +                           <visible>true</visible>
151.13708 +                           <shapes/>
151.13709 +                           <effects/>
151.13710 +                        </layer>
151.13711 +                     </canvas>
151.13712 +                  </state>
151.13713 +                  <state stateKeys="Selected">
151.13714 +                     <style>
151.13715 +                        <textForeground>
151.13716 +                           <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.13717 +                        </textForeground>
151.13718 +                        <textBackground/>
151.13719 +                        <background/>
151.13720 +                        <inherit-textForeground>false</inherit-textForeground>
151.13721 +                        <uiproperties/>
151.13722 +                     </style>
151.13723 +                     <canvas>
151.13724 +                        <size width="100" height="30"/>
151.13725 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.13726 +                        <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.13727 +                        <layer name="Layer 1">
151.13728 +                           <opacity>1.0</opacity>
151.13729 +                           <fillOpacity>1.0</fillOpacity>
151.13730 +                           <blendingMode>NORMAL</blendingMode>
151.13731 +                           <locked>false</locked>
151.13732 +                           <visible>true</visible>
151.13733 +                           <shapes>
151.13734 +                              <rectangle x1="0.0" x2="100.0" y1="0.0" y2="30.0" rounding="0.0">
151.13735 +                                 <matte red="57" green="105" blue="138" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.010750473" saturationOffset="-0.04875779" brightnessOffset="-0.007843137" alphaOffset="0"/>
151.13736 +                                 <paintPoints x1="1.0" y1="0.0" x2="1.0" y2="1.0"/>
151.13737 +                              </rectangle>
151.13738 +                           </shapes>
151.13739 +                           <effects/>
151.13740 +                        </layer>
151.13741 +                     </canvas>
151.13742 +                  </state>
151.13743 +               </backgroundStates>
151.13744 +               <foregroundStates/>
151.13745 +               <borderStates/>
151.13746 +               <regions>
151.13747 +                  <region name="MenuItemAccelerator" subregion="true">
151.13748 +                     <contentMargins top="0" bottom="0" left="0" right="0"/>
151.13749 +                     <style>
151.13750 +                        <textForeground/>
151.13751 +                        <textBackground/>
151.13752 +                        <background/>
151.13753 +                        <uiproperties/>
151.13754 +                     </style>
151.13755 +                     <backgroundStates>
151.13756 +                        <state stateKeys="Disabled">
151.13757 +                           <style>
151.13758 +                              <textForeground/>
151.13759 +                              <textBackground/>
151.13760 +                              <background/>
151.13761 +                              <uiproperties/>
151.13762 +                           </style>
151.13763 +                           <canvas>
151.13764 +                              <size width="80" height="30"/>
151.13765 +                              <nextLayerNameIndex>2</nextLayerNameIndex>
151.13766 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.13767 +                              <layer name="Layer 1">
151.13768 +                                 <opacity>1.0</opacity>
151.13769 +                                 <fillOpacity>1.0</fillOpacity>
151.13770 +                                 <blendingMode>NORMAL</blendingMode>
151.13771 +                                 <locked>false</locked>
151.13772 +                                 <visible>true</visible>
151.13773 +                                 <shapes/>
151.13774 +                                 <effects/>
151.13775 +                              </layer>
151.13776 +                           </canvas>
151.13777 +                        </state>
151.13778 +                        <state stateKeys="Enabled">
151.13779 +                           <style>
151.13780 +                              <textForeground/>
151.13781 +                              <textBackground/>
151.13782 +                              <background/>
151.13783 +                              <uiproperties/>
151.13784 +                           </style>
151.13785 +                           <canvas>
151.13786 +                              <size width="80" height="30"/>
151.13787 +                              <nextLayerNameIndex>2</nextLayerNameIndex>
151.13788 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.13789 +                              <layer name="Layer 1">
151.13790 +                                 <opacity>1.0</opacity>
151.13791 +                                 <fillOpacity>1.0</fillOpacity>
151.13792 +                                 <blendingMode>NORMAL</blendingMode>
151.13793 +                                 <locked>false</locked>
151.13794 +                                 <visible>true</visible>
151.13795 +                                 <shapes/>
151.13796 +                                 <effects/>
151.13797 +                              </layer>
151.13798 +                           </canvas>
151.13799 +                        </state>
151.13800 +                        <state stateKeys="MouseOver">
151.13801 +                           <style>
151.13802 +                              <textForeground/>
151.13803 +                              <textBackground/>
151.13804 +                              <background/>
151.13805 +                              <uiproperties/>
151.13806 +                           </style>
151.13807 +                           <canvas>
151.13808 +                              <size width="80" height="30"/>
151.13809 +                              <nextLayerNameIndex>2</nextLayerNameIndex>
151.13810 +                              <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.13811 +                              <layer name="Layer 1">
151.13812 +                                 <opacity>1.0</opacity>
151.13813 +                                 <fillOpacity>1.0</fillOpacity>
151.13814 +                                 <blendingMode>NORMAL</blendingMode>
151.13815 +                                 <locked>false</locked>
151.13816 +                                 <visible>true</visible>
151.13817 +                                 <shapes/>
151.13818 +                                 <effects/>
151.13819 +                              </layer>
151.13820 +                           </canvas>
151.13821 +                        </state>
151.13822 +                     </backgroundStates>
151.13823 +                     <foregroundStates/>
151.13824 +                     <borderStates/>
151.13825 +                     <regions/>
151.13826 +                  </region>
151.13827 +               </regions>
151.13828 +            </uiComponent>
151.13829 +         </regions>
151.13830 +      </uiComponent>
151.13831 +      <uiComponent opaque="false" type="javax.swing.JMenuItem" name="MenuItem" ui="MenuItemUI" subregion="false">
151.13832 +         <stateTypes/>
151.13833 +         <contentMargins top="1" bottom="2" left="12" right="13"/>
151.13834 +         <style>
151.13835 +            <textForeground/>
151.13836 +            <textBackground/>
151.13837 +            <background/>
151.13838 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.13839 +            <cacheMode>NO_CACHING</cacheMode>
151.13840 +            <uiproperties>
151.13841 +               <uiProperty name="textIconGap" type="INT" value="5"/>
151.13842 +            </uiproperties>
151.13843 +         </style>
151.13844 +         <backgroundStates>
151.13845 +            <state stateKeys="Disabled">
151.13846 +               <style>
151.13847 +                  <textForeground>
151.13848 +                     <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.13849 +                  </textForeground>
151.13850 +                  <textBackground/>
151.13851 +                  <background/>
151.13852 +                  <inherit-textForeground>false</inherit-textForeground>
151.13853 +                  <uiproperties/>
151.13854 +               </style>
151.13855 +               <canvas>
151.13856 +                  <size width="100" height="3"/>
151.13857 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.13858 +                  <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.13859 +                  <layer name="Layer 1">
151.13860 +                     <opacity>1.0</opacity>
151.13861 +                     <fillOpacity>1.0</fillOpacity>
151.13862 +                     <blendingMode>NORMAL</blendingMode>
151.13863 +                     <locked>false</locked>
151.13864 +                     <visible>true</visible>
151.13865 +                     <shapes/>
151.13866 +                     <effects/>
151.13867 +                  </layer>
151.13868 +               </canvas>
151.13869 +            </state>
151.13870 +            <state stateKeys="Enabled">
151.13871 +               <style>
151.13872 +                  <textForeground>
151.13873 +                     <matte red="35" green="35" blue="36" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.13874 +                  </textForeground>
151.13875 +                  <textBackground/>
151.13876 +                  <background/>
151.13877 +                  <inherit-textForeground>false</inherit-textForeground>
151.13878 +                  <uiproperties/>
151.13879 +               </style>
151.13880 +               <canvas>
151.13881 +                  <size width="100" height="3"/>
151.13882 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.13883 +                  <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.13884 +                  <layer name="Layer 1">
151.13885 +                     <opacity>1.0</opacity>
151.13886 +                     <fillOpacity>1.0</fillOpacity>
151.13887 +                     <blendingMode>NORMAL</blendingMode>
151.13888 +                     <locked>false</locked>
151.13889 +                     <visible>true</visible>
151.13890 +                     <shapes/>
151.13891 +                     <effects/>
151.13892 +                  </layer>
151.13893 +               </canvas>
151.13894 +            </state>
151.13895 +            <state stateKeys="MouseOver">
151.13896 +               <style>
151.13897 +                  <textForeground>
151.13898 +                     <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.13899 +                  </textForeground>
151.13900 +                  <textBackground/>
151.13901 +                  <background/>
151.13902 +                  <inherit-textForeground>false</inherit-textForeground>
151.13903 +                  <uiproperties/>
151.13904 +               </style>
151.13905 +               <canvas>
151.13906 +                  <size width="100" height="3"/>
151.13907 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.13908 +                  <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.13909 +                  <layer name="Layer 1">
151.13910 +                     <opacity>1.0</opacity>
151.13911 +                     <fillOpacity>1.0</fillOpacity>
151.13912 +                     <blendingMode>NORMAL</blendingMode>
151.13913 +                     <locked>false</locked>
151.13914 +                     <visible>true</visible>
151.13915 +                     <shapes>
151.13916 +                        <rectangle x1="0.0" x2="100.0" y1="0.0" y2="3.0" rounding="0.0">
151.13917 +                           <matte red="57" green="105" blue="138" alpha="255" uiDefaultParentName="nimbusSelection" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.13918 +                           <paintPoints x1="1.0" y1="0.0" x2="1.0" y2="1.0"/>
151.13919 +                        </rectangle>
151.13920 +                     </shapes>
151.13921 +                     <effects/>
151.13922 +                  </layer>
151.13923 +               </canvas>
151.13924 +            </state>
151.13925 +         </backgroundStates>
151.13926 +         <foregroundStates/>
151.13927 +         <borderStates/>
151.13928 +         <regions>
151.13929 +            <region name="MenuItemAccelerator" subregion="true">
151.13930 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.13931 +               <style>
151.13932 +                  <textForeground/>
151.13933 +                  <textBackground/>
151.13934 +                  <background/>
151.13935 +                  <uiproperties/>
151.13936 +               </style>
151.13937 +               <backgroundStates>
151.13938 +                  <state stateKeys="Disabled">
151.13939 +                     <style>
151.13940 +                        <textForeground>
151.13941 +                           <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.13942 +                        </textForeground>
151.13943 +                        <textBackground/>
151.13944 +                        <background/>
151.13945 +                        <inherit-textForeground>false</inherit-textForeground>
151.13946 +                        <uiproperties/>
151.13947 +                     </style>
151.13948 +                     <canvas>
151.13949 +                        <size width="80" height="30"/>
151.13950 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.13951 +                        <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.13952 +                        <layer name="Layer 1">
151.13953 +                           <opacity>1.0</opacity>
151.13954 +                           <fillOpacity>1.0</fillOpacity>
151.13955 +                           <blendingMode>NORMAL</blendingMode>
151.13956 +                           <locked>false</locked>
151.13957 +                           <visible>true</visible>
151.13958 +                           <shapes/>
151.13959 +                           <effects/>
151.13960 +                        </layer>
151.13961 +                     </canvas>
151.13962 +                  </state>
151.13963 +                  <state stateKeys="Enabled">
151.13964 +                     <style>
151.13965 +                        <textForeground/>
151.13966 +                        <textBackground/>
151.13967 +                        <background/>
151.13968 +                        <cacheSettingsInherited>false</cacheSettingsInherited>
151.13969 +                        <cacheMode>NO_CACHING</cacheMode>
151.13970 +                        <uiproperties/>
151.13971 +                     </style>
151.13972 +                     <canvas>
151.13973 +                        <size width="80" height="30"/>
151.13974 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.13975 +                        <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.13976 +                        <layer name="Layer 1">
151.13977 +                           <opacity>1.0</opacity>
151.13978 +                           <fillOpacity>1.0</fillOpacity>
151.13979 +                           <blendingMode>NORMAL</blendingMode>
151.13980 +                           <locked>false</locked>
151.13981 +                           <visible>true</visible>
151.13982 +                           <shapes/>
151.13983 +                           <effects/>
151.13984 +                        </layer>
151.13985 +                     </canvas>
151.13986 +                  </state>
151.13987 +                  <state stateKeys="MouseOver">
151.13988 +                     <style>
151.13989 +                        <textForeground>
151.13990 +                           <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.13991 +                        </textForeground>
151.13992 +                        <textBackground/>
151.13993 +                        <background/>
151.13994 +                        <inherit-textForeground>false</inherit-textForeground>
151.13995 +                        <uiproperties/>
151.13996 +                     </style>
151.13997 +                     <canvas>
151.13998 +                        <size width="80" height="30"/>
151.13999 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.14000 +                        <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.14001 +                        <layer name="Layer 1">
151.14002 +                           <opacity>1.0</opacity>
151.14003 +                           <fillOpacity>1.0</fillOpacity>
151.14004 +                           <blendingMode>NORMAL</blendingMode>
151.14005 +                           <locked>false</locked>
151.14006 +                           <visible>true</visible>
151.14007 +                           <shapes/>
151.14008 +                           <effects/>
151.14009 +                        </layer>
151.14010 +                     </canvas>
151.14011 +                  </state>
151.14012 +               </backgroundStates>
151.14013 +               <foregroundStates/>
151.14014 +               <borderStates/>
151.14015 +               <regions/>
151.14016 +            </region>
151.14017 +         </regions>
151.14018 +      </uiComponent>
151.14019 +      <uiComponent opaque="false" type="javax.swing.JRadioButtonMenuItem" name="RadioButtonMenuItem" ui="RadioButtonMenuItemUI" subregion="false">
151.14020 +         <stateTypes/>
151.14021 +         <contentMargins top="1" bottom="2" left="12" right="13"/>
151.14022 +         <style>
151.14023 +            <textForeground/>
151.14024 +            <textBackground/>
151.14025 +            <background/>
151.14026 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.14027 +            <cacheMode>NO_CACHING</cacheMode>
151.14028 +            <uiproperties>
151.14029 +               <uiProperty name="textIconGap" type="INT" value="5"/>
151.14030 +            </uiproperties>
151.14031 +         </style>
151.14032 +         <backgroundStates>
151.14033 +            <state stateKeys="Disabled">
151.14034 +               <style>
151.14035 +                  <textForeground>
151.14036 +                     <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.14037 +                  </textForeground>
151.14038 +                  <textBackground/>
151.14039 +                  <background/>
151.14040 +                  <inherit-textForeground>false</inherit-textForeground>
151.14041 +                  <uiproperties/>
151.14042 +               </style>
151.14043 +               <canvas>
151.14044 +                  <size width="100" height="3"/>
151.14045 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.14046 +                  <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.14047 +                  <layer name="Layer 1">
151.14048 +                     <opacity>1.0</opacity>
151.14049 +                     <fillOpacity>1.0</fillOpacity>
151.14050 +                     <blendingMode>NORMAL</blendingMode>
151.14051 +                     <locked>false</locked>
151.14052 +                     <visible>true</visible>
151.14053 +                     <shapes/>
151.14054 +                     <effects/>
151.14055 +                  </layer>
151.14056 +               </canvas>
151.14057 +            </state>
151.14058 +            <state stateKeys="Enabled">
151.14059 +               <style>
151.14060 +                  <textForeground>
151.14061 +                     <matte red="35" green="35" blue="36" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.14062 +                  </textForeground>
151.14063 +                  <textBackground/>
151.14064 +                  <background/>
151.14065 +                  <inherit-textForeground>false</inherit-textForeground>
151.14066 +                  <uiproperties/>
151.14067 +               </style>
151.14068 +               <canvas>
151.14069 +                  <size width="100" height="3"/>
151.14070 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.14071 +                  <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.14072 +                  <layer name="Layer 1">
151.14073 +                     <opacity>1.0</opacity>
151.14074 +                     <fillOpacity>1.0</fillOpacity>
151.14075 +                     <blendingMode>NORMAL</blendingMode>
151.14076 +                     <locked>false</locked>
151.14077 +                     <visible>true</visible>
151.14078 +                     <shapes/>
151.14079 +                     <effects/>
151.14080 +                  </layer>
151.14081 +               </canvas>
151.14082 +            </state>
151.14083 +            <state stateKeys="MouseOver">
151.14084 +               <style>
151.14085 +                  <textForeground>
151.14086 +                     <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.14087 +                  </textForeground>
151.14088 +                  <textBackground/>
151.14089 +                  <background/>
151.14090 +                  <inherit-textForeground>false</inherit-textForeground>
151.14091 +                  <uiproperties/>
151.14092 +               </style>
151.14093 +               <canvas>
151.14094 +                  <size width="100" height="3"/>
151.14095 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.14096 +                  <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.14097 +                  <layer name="Layer 1">
151.14098 +                     <opacity>1.0</opacity>
151.14099 +                     <fillOpacity>1.0</fillOpacity>
151.14100 +                     <blendingMode>NORMAL</blendingMode>
151.14101 +                     <locked>false</locked>
151.14102 +                     <visible>true</visible>
151.14103 +                     <shapes>
151.14104 +                        <rectangle x1="0.0" x2="100.0" y1="0.0" y2="3.0" rounding="0.0">
151.14105 +                           <matte red="57" green="105" blue="138" alpha="255" uiDefaultParentName="nimbusSelection" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.14106 +                           <paintPoints x1="1.0" y1="0.0" x2="1.0" y2="1.0"/>
151.14107 +                        </rectangle>
151.14108 +                     </shapes>
151.14109 +                     <effects/>
151.14110 +                  </layer>
151.14111 +               </canvas>
151.14112 +            </state>
151.14113 +            <state stateKeys="Selected+MouseOver">
151.14114 +               <style>
151.14115 +                  <textForeground>
151.14116 +                     <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.14117 +                  </textForeground>
151.14118 +                  <textBackground/>
151.14119 +                  <background/>
151.14120 +                  <inherit-textForeground>false</inherit-textForeground>
151.14121 +                  <uiproperties/>
151.14122 +               </style>
151.14123 +               <canvas>
151.14124 +                  <size width="100" height="3"/>
151.14125 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.14126 +                  <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.14127 +                  <layer name="Layer 1">
151.14128 +                     <opacity>1.0</opacity>
151.14129 +                     <fillOpacity>1.0</fillOpacity>
151.14130 +                     <blendingMode>NORMAL</blendingMode>
151.14131 +                     <locked>false</locked>
151.14132 +                     <visible>true</visible>
151.14133 +                     <shapes>
151.14134 +                        <rectangle x1="0.0" x2="100.0" y1="0.0" y2="3.0" rounding="0.0">
151.14135 +                           <matte red="57" green="105" blue="138" alpha="255" uiDefaultParentName="nimbusSelection" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.14136 +                           <paintPoints x1="1.0" y1="0.0" x2="1.0" y2="1.0"/>
151.14137 +                        </rectangle>
151.14138 +                     </shapes>
151.14139 +                     <effects/>
151.14140 +                  </layer>
151.14141 +               </canvas>
151.14142 +            </state>
151.14143 +         </backgroundStates>
151.14144 +         <foregroundStates/>
151.14145 +         <borderStates/>
151.14146 +         <regions>
151.14147 +            <uiIconRegion name="checkIcon" subregion="true">
151.14148 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.14149 +               <style>
151.14150 +                  <textForeground/>
151.14151 +                  <textBackground/>
151.14152 +                  <background/>
151.14153 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.14154 +                  <uiproperties/>
151.14155 +               </style>
151.14156 +               <backgroundStates>
151.14157 +                  <state stateKeys="Disabled+Selected">
151.14158 +                     <style>
151.14159 +                        <textForeground/>
151.14160 +                        <textBackground/>
151.14161 +                        <background/>
151.14162 +                        <uiproperties/>
151.14163 +                     </style>
151.14164 +                     <canvas>
151.14165 +                        <size width="9" height="10"/>
151.14166 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.14167 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.14168 +                        <layer name="Layer 1">
151.14169 +                           <opacity>1.0</opacity>
151.14170 +                           <fillOpacity>1.0</fillOpacity>
151.14171 +                           <blendingMode>NORMAL</blendingMode>
151.14172 +                           <locked>false</locked>
151.14173 +                           <visible>true</visible>
151.14174 +                           <shapes>
151.14175 +                              <path>
151.14176 +                                 <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.08983666" brightnessOffset="-0.17647058" alphaOffset="0"/>
151.14177 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.14178 +                                 <points>
151.14179 +                                    <point x="0.0" y="5.487804878048781" cp1x="0.0" cp1y="5.487804878048781" cp2x="0.0" cp2y="5.487804878048781"/>
151.14180 +                                    <point x="4.548780487804878" y="1.0121951219512197" cp1x="4.548780487804878" cp1y="1.0121951219512197" cp2x="4.548780487804878" cp2y="1.0121951219512197"/>
151.14181 +                                    <point x="9.0" y="5.51219512195122" cp1x="9.0" cp1y="5.51219512195122" cp2x="9.0" cp2y="5.51219512195122"/>
151.14182 +                                    <point x="4.536585365853659" y="10.0" cp1x="4.536585365853659" cp1y="10.0" cp2x="4.536585365853659" cp2y="10.0"/>
151.14183 +                                 </points>
151.14184 +                              </path>
151.14185 +                           </shapes>
151.14186 +                           <effects/>
151.14187 +                        </layer>
151.14188 +                     </canvas>
151.14189 +                  </state>
151.14190 +                  <state stateKeys="Enabled+Selected">
151.14191 +                     <style>
151.14192 +                        <textForeground/>
151.14193 +                        <textBackground/>
151.14194 +                        <background/>
151.14195 +                        <uiproperties/>
151.14196 +                     </style>
151.14197 +                     <canvas>
151.14198 +                        <size width="9" height="10"/>
151.14199 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.14200 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.14201 +                        <layer name="Layer 1">
151.14202 +                           <opacity>1.0</opacity>
151.14203 +                           <fillOpacity>1.0</fillOpacity>
151.14204 +                           <blendingMode>NORMAL</blendingMode>
151.14205 +                           <locked>false</locked>
151.14206 +                           <visible>true</visible>
151.14207 +                           <shapes>
151.14208 +                              <path>
151.14209 +                                 <matte red="71" green="71" blue="72" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.09663743" brightnessOffset="-0.4627451" alphaOffset="0"/>
151.14210 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.14211 +                                 <points>
151.14212 +                                    <point x="0.012195121951219523" y="5.487804878048781" cp1x="0.012195121951219523" cp1y="5.487804878048781" cp2x="0.012195121951219523" cp2y="5.487804878048781"/>
151.14213 +                                    <point x="4.548780487804878" y="1.0121951219512197" cp1x="4.548780487804878" cp1y="1.0121951219512197" cp2x="4.548780487804878" cp2y="1.0121951219512197"/>
151.14214 +                                    <point x="9.0" y="5.51219512195122" cp1x="9.0" cp1y="5.51219512195122" cp2x="9.0" cp2y="5.51219512195122"/>
151.14215 +                                    <point x="4.536585365853659" y="10.0" cp1x="4.536585365853659" cp1y="10.0" cp2x="4.536585365853659" cp2y="10.0"/>
151.14216 +                                 </points>
151.14217 +                              </path>
151.14218 +                           </shapes>
151.14219 +                           <effects/>
151.14220 +                        </layer>
151.14221 +                        <templateLayer fileName="113e58e00fd.png">
151.14222 +                           <layer name="Template" type="template">
151.14223 +                              <opacity>1.0</opacity>
151.14224 +                              <fillOpacity>1.0</fillOpacity>
151.14225 +                              <blendingMode>NORMAL</blendingMode>
151.14226 +                              <locked>false</locked>
151.14227 +                              <visible>false</visible>
151.14228 +                              <shapes/>
151.14229 +                              <effects/>
151.14230 +                           </layer>
151.14231 +                        </templateLayer>
151.14232 +                     </canvas>
151.14233 +                  </state>
151.14234 +                  <state stateKeys="Selected+MouseOver">
151.14235 +                     <style>
151.14236 +                        <textForeground/>
151.14237 +                        <textBackground/>
151.14238 +                        <background/>
151.14239 +                        <uiproperties/>
151.14240 +                     </style>
151.14241 +                     <canvas>
151.14242 +                        <size width="9" height="10"/>
151.14243 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.14244 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.14245 +                        <layer name="Layer 1">
151.14246 +                           <opacity>1.0</opacity>
151.14247 +                           <fillOpacity>1.0</fillOpacity>
151.14248 +                           <blendingMode>NORMAL</blendingMode>
151.14249 +                           <locked>false</locked>
151.14250 +                           <visible>true</visible>
151.14251 +                           <shapes>
151.14252 +                              <path>
151.14253 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.14254 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.14255 +                                 <points>
151.14256 +                                    <point x="0.012195121951219523" y="5.487804878048781" cp1x="0.012195121951219523" cp1y="5.487804878048781" cp2x="0.012195121951219523" cp2y="5.487804878048781"/>
151.14257 +                                    <point x="4.548780487804878" y="1.0121951219512197" cp1x="4.548780487804878" cp1y="1.0121951219512197" cp2x="4.548780487804878" cp2y="1.0121951219512197"/>
151.14258 +                                    <point x="9.0" y="5.51219512195122" cp1x="9.0" cp1y="5.51219512195122" cp2x="9.0" cp2y="5.51219512195122"/>
151.14259 +                                    <point x="4.536585365853659" y="10.0" cp1x="4.536585365853659" cp1y="10.0" cp2x="4.536585365853659" cp2y="10.0"/>
151.14260 +                                 </points>
151.14261 +                              </path>
151.14262 +                           </shapes>
151.14263 +                           <effects/>
151.14264 +                        </layer>
151.14265 +                        <templateLayer fileName="113e593f3d0.png">
151.14266 +                           <layer name="Template" type="template">
151.14267 +                              <opacity>1.0</opacity>
151.14268 +                              <fillOpacity>1.0</fillOpacity>
151.14269 +                              <blendingMode>NORMAL</blendingMode>
151.14270 +                              <locked>false</locked>
151.14271 +                              <visible>false</visible>
151.14272 +                              <shapes/>
151.14273 +                              <effects/>
151.14274 +                           </layer>
151.14275 +                        </templateLayer>
151.14276 +                     </canvas>
151.14277 +                  </state>
151.14278 +               </backgroundStates>
151.14279 +               <foregroundStates/>
151.14280 +               <borderStates/>
151.14281 +               <regions/>
151.14282 +            </uiIconRegion>
151.14283 +            <region name="MenuItemAccelerator" subregion="true">
151.14284 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.14285 +               <style>
151.14286 +                  <textForeground/>
151.14287 +                  <textBackground/>
151.14288 +                  <background/>
151.14289 +                  <uiproperties/>
151.14290 +               </style>
151.14291 +               <backgroundStates>
151.14292 +                  <state stateKeys="Disabled">
151.14293 +                     <style>
151.14294 +                        <textForeground/>
151.14295 +                        <textBackground/>
151.14296 +                        <background/>
151.14297 +                        <uiproperties/>
151.14298 +                     </style>
151.14299 +                     <canvas>
151.14300 +                        <size width="80" height="30"/>
151.14301 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.14302 +                        <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.14303 +                        <layer name="Layer 1">
151.14304 +                           <opacity>1.0</opacity>
151.14305 +                           <fillOpacity>1.0</fillOpacity>
151.14306 +                           <blendingMode>NORMAL</blendingMode>
151.14307 +                           <locked>false</locked>
151.14308 +                           <visible>true</visible>
151.14309 +                           <shapes/>
151.14310 +                           <effects/>
151.14311 +                        </layer>
151.14312 +                     </canvas>
151.14313 +                  </state>
151.14314 +                  <state stateKeys="Enabled">
151.14315 +                     <style>
151.14316 +                        <textForeground/>
151.14317 +                        <textBackground/>
151.14318 +                        <background/>
151.14319 +                        <uiproperties/>
151.14320 +                     </style>
151.14321 +                     <canvas>
151.14322 +                        <size width="80" height="30"/>
151.14323 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.14324 +                        <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.14325 +                        <layer name="Layer 1">
151.14326 +                           <opacity>1.0</opacity>
151.14327 +                           <fillOpacity>1.0</fillOpacity>
151.14328 +                           <blendingMode>NORMAL</blendingMode>
151.14329 +                           <locked>false</locked>
151.14330 +                           <visible>true</visible>
151.14331 +                           <shapes/>
151.14332 +                           <effects/>
151.14333 +                        </layer>
151.14334 +                     </canvas>
151.14335 +                  </state>
151.14336 +                  <state stateKeys="MouseOver">
151.14337 +                     <style>
151.14338 +                        <textForeground>
151.14339 +                           <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.14340 +                        </textForeground>
151.14341 +                        <textBackground/>
151.14342 +                        <background/>
151.14343 +                        <inherit-textForeground>false</inherit-textForeground>
151.14344 +                        <uiproperties/>
151.14345 +                     </style>
151.14346 +                     <canvas>
151.14347 +                        <size width="80" height="30"/>
151.14348 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.14349 +                        <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.14350 +                        <layer name="Layer 1">
151.14351 +                           <opacity>1.0</opacity>
151.14352 +                           <fillOpacity>1.0</fillOpacity>
151.14353 +                           <blendingMode>NORMAL</blendingMode>
151.14354 +                           <locked>false</locked>
151.14355 +                           <visible>true</visible>
151.14356 +                           <shapes/>
151.14357 +                           <effects/>
151.14358 +                        </layer>
151.14359 +                     </canvas>
151.14360 +                  </state>
151.14361 +               </backgroundStates>
151.14362 +               <foregroundStates/>
151.14363 +               <borderStates/>
151.14364 +               <regions/>
151.14365 +            </region>
151.14366 +            <uiIconRegion name="Icon" subregion="true" key="icon">
151.14367 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.14368 +               <style>
151.14369 +                  <textForeground/>
151.14370 +                  <textBackground/>
151.14371 +                  <background/>
151.14372 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.14373 +                  <cacheMode>NO_CACHING</cacheMode>
151.14374 +                  <uiproperties/>
151.14375 +               </style>
151.14376 +               <backgroundStates>
151.14377 +                  <state stateKeys="Disabled">
151.14378 +                     <style>
151.14379 +                        <textForeground/>
151.14380 +                        <textBackground/>
151.14381 +                        <background/>
151.14382 +                        <cacheSettingsInherited>false</cacheSettingsInherited>
151.14383 +                        <cacheMode>NO_CACHING</cacheMode>
151.14384 +                        <uiproperties/>
151.14385 +                     </style>
151.14386 +                     <canvas>
151.14387 +                        <size width="14" height="15"/>
151.14388 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.14389 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.14390 +                        <layer name="Button">
151.14391 +                           <opacity>1.0</opacity>
151.14392 +                           <fillOpacity>1.0</fillOpacity>
151.14393 +                           <blendingMode>NORMAL</blendingMode>
151.14394 +                           <locked>false</locked>
151.14395 +                           <visible>true</visible>
151.14396 +                           <shapes/>
151.14397 +                           <effects/>
151.14398 +                        </layer>
151.14399 +                     </canvas>
151.14400 +                  </state>
151.14401 +                  <state stateKeys="Enabled">
151.14402 +                     <style>
151.14403 +                        <textForeground/>
151.14404 +                        <textBackground/>
151.14405 +                        <background/>
151.14406 +                        <cacheSettingsInherited>false</cacheSettingsInherited>
151.14407 +                        <cacheMode>NO_CACHING</cacheMode>
151.14408 +                        <uiproperties/>
151.14409 +                     </style>
151.14410 +                     <canvas>
151.14411 +                        <size width="14" height="15"/>
151.14412 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.14413 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.14414 +                        <layer name="Button">
151.14415 +                           <opacity>1.0</opacity>
151.14416 +                           <fillOpacity>1.0</fillOpacity>
151.14417 +                           <blendingMode>NORMAL</blendingMode>
151.14418 +                           <locked>false</locked>
151.14419 +                           <visible>true</visible>
151.14420 +                           <shapes/>
151.14421 +                           <effects/>
151.14422 +                        </layer>
151.14423 +                     </canvas>
151.14424 +                  </state>
151.14425 +                  <state stateKeys="MouseOver">
151.14426 +                     <style>
151.14427 +                        <textForeground/>
151.14428 +                        <textBackground/>
151.14429 +                        <background/>
151.14430 +                        <cacheSettingsInherited>false</cacheSettingsInherited>
151.14431 +                        <cacheMode>NO_CACHING</cacheMode>
151.14432 +                        <uiproperties/>
151.14433 +                     </style>
151.14434 +                     <canvas>
151.14435 +                        <size width="14" height="15"/>
151.14436 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.14437 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.14438 +                        <layer name="Button">
151.14439 +                           <opacity>1.0</opacity>
151.14440 +                           <fillOpacity>1.0</fillOpacity>
151.14441 +                           <blendingMode>NORMAL</blendingMode>
151.14442 +                           <locked>false</locked>
151.14443 +                           <visible>true</visible>
151.14444 +                           <shapes/>
151.14445 +                           <effects/>
151.14446 +                        </layer>
151.14447 +                     </canvas>
151.14448 +                  </state>
151.14449 +               </backgroundStates>
151.14450 +               <foregroundStates/>
151.14451 +               <borderStates/>
151.14452 +               <regions/>
151.14453 +            </uiIconRegion>
151.14454 +         </regions>
151.14455 +      </uiComponent>
151.14456 +      <uiComponent opaque="false" type="javax.swing.JCheckBoxMenuItem" name="CheckBoxMenuItem" ui="CheckBoxMenuItemUI" subregion="false">
151.14457 +         <stateTypes/>
151.14458 +         <contentMargins top="1" bottom="2" left="12" right="13"/>
151.14459 +         <style>
151.14460 +            <textForeground/>
151.14461 +            <textBackground/>
151.14462 +            <background/>
151.14463 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.14464 +            <cacheMode>NO_CACHING</cacheMode>
151.14465 +            <uiproperties>
151.14466 +               <uiProperty name="textIconGap" type="INT" value="5"/>
151.14467 +            </uiproperties>
151.14468 +         </style>
151.14469 +         <backgroundStates>
151.14470 +            <state stateKeys="Disabled">
151.14471 +               <style>
151.14472 +                  <textForeground>
151.14473 +                     <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.14474 +                  </textForeground>
151.14475 +                  <textBackground/>
151.14476 +                  <background/>
151.14477 +                  <inherit-textForeground>false</inherit-textForeground>
151.14478 +                  <uiproperties/>
151.14479 +               </style>
151.14480 +               <canvas>
151.14481 +                  <size width="100" height="3"/>
151.14482 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.14483 +                  <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.14484 +                  <layer name="Layer 1">
151.14485 +                     <opacity>1.0</opacity>
151.14486 +                     <fillOpacity>1.0</fillOpacity>
151.14487 +                     <blendingMode>NORMAL</blendingMode>
151.14488 +                     <locked>false</locked>
151.14489 +                     <visible>true</visible>
151.14490 +                     <shapes/>
151.14491 +                     <effects/>
151.14492 +                  </layer>
151.14493 +               </canvas>
151.14494 +            </state>
151.14495 +            <state stateKeys="Enabled">
151.14496 +               <style>
151.14497 +                  <textForeground>
151.14498 +                     <matte red="35" green="35" blue="36" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.14499 +                  </textForeground>
151.14500 +                  <textBackground/>
151.14501 +                  <background/>
151.14502 +                  <inherit-textForeground>false</inherit-textForeground>
151.14503 +                  <uiproperties/>
151.14504 +               </style>
151.14505 +               <canvas>
151.14506 +                  <size width="100" height="3"/>
151.14507 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.14508 +                  <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.14509 +                  <layer name="Layer 1">
151.14510 +                     <opacity>1.0</opacity>
151.14511 +                     <fillOpacity>1.0</fillOpacity>
151.14512 +                     <blendingMode>NORMAL</blendingMode>
151.14513 +                     <locked>false</locked>
151.14514 +                     <visible>true</visible>
151.14515 +                     <shapes/>
151.14516 +                     <effects/>
151.14517 +                  </layer>
151.14518 +               </canvas>
151.14519 +            </state>
151.14520 +            <state stateKeys="MouseOver">
151.14521 +               <style>
151.14522 +                  <textForeground>
151.14523 +                     <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.14524 +                  </textForeground>
151.14525 +                  <textBackground/>
151.14526 +                  <background/>
151.14527 +                  <inherit-textForeground>false</inherit-textForeground>
151.14528 +                  <uiproperties/>
151.14529 +               </style>
151.14530 +               <canvas>
151.14531 +                  <size width="100" height="3"/>
151.14532 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.14533 +                  <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.14534 +                  <layer name="Layer 1">
151.14535 +                     <opacity>1.0</opacity>
151.14536 +                     <fillOpacity>1.0</fillOpacity>
151.14537 +                     <blendingMode>NORMAL</blendingMode>
151.14538 +                     <locked>false</locked>
151.14539 +                     <visible>true</visible>
151.14540 +                     <shapes>
151.14541 +                        <rectangle x1="0.0" x2="100.0" y1="0.0" y2="3.0" rounding="0.0">
151.14542 +                           <matte red="57" green="105" blue="138" alpha="255" uiDefaultParentName="nimbusSelection" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.14543 +                           <paintPoints x1="1.0" y1="0.0" x2="1.0" y2="1.0"/>
151.14544 +                        </rectangle>
151.14545 +                     </shapes>
151.14546 +                     <effects/>
151.14547 +                  </layer>
151.14548 +               </canvas>
151.14549 +            </state>
151.14550 +            <state stateKeys="Selected+MouseOver">
151.14551 +               <style>
151.14552 +                  <textForeground>
151.14553 +                     <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.14554 +                  </textForeground>
151.14555 +                  <textBackground/>
151.14556 +                  <background/>
151.14557 +                  <inherit-textForeground>false</inherit-textForeground>
151.14558 +                  <uiproperties/>
151.14559 +               </style>
151.14560 +               <canvas>
151.14561 +                  <size width="100" height="3"/>
151.14562 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.14563 +                  <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.14564 +                  <layer name="Layer 1">
151.14565 +                     <opacity>1.0</opacity>
151.14566 +                     <fillOpacity>1.0</fillOpacity>
151.14567 +                     <blendingMode>NORMAL</blendingMode>
151.14568 +                     <locked>false</locked>
151.14569 +                     <visible>true</visible>
151.14570 +                     <shapes>
151.14571 +                        <rectangle x1="0.0" x2="100.0" y1="0.0" y2="3.0" rounding="0.0">
151.14572 +                           <matte red="57" green="105" blue="138" alpha="255" uiDefaultParentName="nimbusSelection" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.14573 +                           <paintPoints x1="1.0" y1="0.0" x2="1.0" y2="1.0"/>
151.14574 +                        </rectangle>
151.14575 +                     </shapes>
151.14576 +                     <effects/>
151.14577 +                  </layer>
151.14578 +               </canvas>
151.14579 +            </state>
151.14580 +         </backgroundStates>
151.14581 +         <foregroundStates/>
151.14582 +         <borderStates/>
151.14583 +         <regions>
151.14584 +            <uiIconRegion name="checkIcon" subregion="true">
151.14585 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.14586 +               <style>
151.14587 +                  <textForeground/>
151.14588 +                  <textBackground/>
151.14589 +                  <background/>
151.14590 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.14591 +                  <uiproperties/>
151.14592 +               </style>
151.14593 +               <backgroundStates>
151.14594 +                  <state stateKeys="Disabled+Selected">
151.14595 +                     <style>
151.14596 +                        <textForeground/>
151.14597 +                        <textBackground/>
151.14598 +                        <background/>
151.14599 +                        <uiproperties/>
151.14600 +                     </style>
151.14601 +                     <canvas>
151.14602 +                        <size width="9" height="10"/>
151.14603 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.14604 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.14605 +                        <layer name="Layer 1">
151.14606 +                           <opacity>1.0</opacity>
151.14607 +                           <fillOpacity>1.0</fillOpacity>
151.14608 +                           <blendingMode>NORMAL</blendingMode>
151.14609 +                           <locked>false</locked>
151.14610 +                           <visible>true</visible>
151.14611 +                           <shapes>
151.14612 +                              <path>
151.14613 +                                 <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.08983666" brightnessOffset="-0.17647058" alphaOffset="0"/>
151.14614 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.14615 +                                 <points>
151.14616 +                                    <point x="0.0" y="5.0" cp1x="0.0" cp1y="5.0" cp2x="0.0" cp2y="5.0"/>
151.14617 +                                    <point x="2.1463414634146343" y="5.0" cp1x="2.1463414634146343" cp1y="5.0" cp2x="2.1463414634146343" cp2y="5.0"/>
151.14618 +                                    <point x="3.560975609756098" y="7.390243902439032" cp1x="3.560975609756098" cp1y="7.390243902439032" cp2x="3.560975609756098" cp2y="7.390243902439032"/>
151.14619 +                                    <point x="6.963414634146344" y="0.0" cp1x="6.963414634146344" cp1y="0.0" cp2x="6.963414634146344" cp2y="0.0"/>
151.14620 +                                    <point x="9.0" y="0.0" cp1x="9.0" cp1y="0.0" cp2x="9.0" cp2y="0.0"/>
151.14621 +                                    <point x="9.0" y="0.9999999999999998" cp1x="9.0" cp1y="0.9999999999999998" cp2x="9.0" cp2y="0.9999999999999998"/>
151.14622 +                                    <point x="8.158536585365859" y="1.9756097560975614" cp1x="8.158536585365859" cp1y="1.9756097560975614" cp2x="8.158536585365859" cp2y="1.9756097560975614"/>
151.14623 +                                    <point x="4.0" y="10.0" cp1x="4.0" cp1y="10.0" cp2x="4.0" cp2y="10.0"/>
151.14624 +                                    <point x="2.8658536585365852" y="10.0" cp1x="2.8658536585365852" cp1y="10.0" cp2x="2.8658536585365852" cp2y="10.0"/>
151.14625 +                                 </points>
151.14626 +                              </path>
151.14627 +                           </shapes>
151.14628 +                           <effects/>
151.14629 +                        </layer>
151.14630 +                     </canvas>
151.14631 +                  </state>
151.14632 +                  <state stateKeys="Enabled+Selected">
151.14633 +                     <style>
151.14634 +                        <textForeground/>
151.14635 +                        <textBackground/>
151.14636 +                        <background/>
151.14637 +                        <uiproperties/>
151.14638 +                     </style>
151.14639 +                     <canvas>
151.14640 +                        <size width="9" height="10"/>
151.14641 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.14642 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.14643 +                        <layer name="Layer 1">
151.14644 +                           <opacity>1.0</opacity>
151.14645 +                           <fillOpacity>1.0</fillOpacity>
151.14646 +                           <blendingMode>NORMAL</blendingMode>
151.14647 +                           <locked>false</locked>
151.14648 +                           <visible>true</visible>
151.14649 +                           <shapes>
151.14650 +                              <path>
151.14651 +                                 <matte red="72" green="72" blue="73" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.096827686" brightnessOffset="-0.45882353" alphaOffset="0"/>
151.14652 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.14653 +                                 <points>
151.14654 +                                    <point x="0.0" y="5.0" cp1x="0.0" cp1y="5.0" cp2x="0.0" cp2y="5.0"/>
151.14655 +                                    <point x="2.1463414634146343" y="5.0" cp1x="2.1463414634146343" cp1y="5.0" cp2x="2.1463414634146343" cp2y="5.0"/>
151.14656 +                                    <point x="3.560975609756098" y="7.390243902439032" cp1x="3.560975609756098" cp1y="7.390243902439032" cp2x="3.560975609756098" cp2y="7.390243902439032"/>
151.14657 +                                    <point x="6.963414634146344" y="0.0" cp1x="6.963414634146344" cp1y="0.0" cp2x="6.963414634146344" cp2y="0.0"/>
151.14658 +                                    <point x="9.0" y="0.0" cp1x="9.0" cp1y="0.0" cp2x="9.0" cp2y="0.0"/>
151.14659 +                                    <point x="9.0" y="0.9999999999999998" cp1x="9.0" cp1y="0.9999999999999998" cp2x="9.0" cp2y="0.9999999999999998"/>
151.14660 +                                    <point x="8.158536585365859" y="1.9756097560975614" cp1x="8.158536585365859" cp1y="1.9756097560975614" cp2x="8.158536585365859" cp2y="1.9756097560975614"/>
151.14661 +                                    <point x="4.0" y="10.0" cp1x="4.0" cp1y="10.0" cp2x="4.0" cp2y="10.0"/>
151.14662 +                                    <point x="2.8658536585365852" y="10.0" cp1x="2.8658536585365852" cp1y="10.0" cp2x="2.8658536585365852" cp2y="10.0"/>
151.14663 +                                 </points>
151.14664 +                              </path>
151.14665 +                           </shapes>
151.14666 +                           <effects/>
151.14667 +                        </layer>
151.14668 +                        <templateLayer fileName="113e58b199e.png">
151.14669 +                           <layer name="Template" type="template">
151.14670 +                              <opacity>1.0</opacity>
151.14671 +                              <fillOpacity>1.0</fillOpacity>
151.14672 +                              <blendingMode>NORMAL</blendingMode>
151.14673 +                              <locked>false</locked>
151.14674 +                              <visible>false</visible>
151.14675 +                              <shapes/>
151.14676 +                              <effects/>
151.14677 +                           </layer>
151.14678 +                        </templateLayer>
151.14679 +                     </canvas>
151.14680 +                  </state>
151.14681 +                  <state stateKeys="Selected+MouseOver">
151.14682 +                     <style>
151.14683 +                        <textForeground/>
151.14684 +                        <textBackground/>
151.14685 +                        <background/>
151.14686 +                        <uiproperties/>
151.14687 +                     </style>
151.14688 +                     <canvas>
151.14689 +                        <size width="9" height="10"/>
151.14690 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.14691 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.14692 +                        <layer name="Layer 1">
151.14693 +                           <opacity>1.0</opacity>
151.14694 +                           <fillOpacity>1.0</fillOpacity>
151.14695 +                           <blendingMode>NORMAL</blendingMode>
151.14696 +                           <locked>false</locked>
151.14697 +                           <visible>true</visible>
151.14698 +                           <shapes>
151.14699 +                              <path>
151.14700 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.14701 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.14702 +                                 <points>
151.14703 +                                    <point x="0.0" y="5.0" cp1x="0.0" cp1y="5.0" cp2x="0.0" cp2y="5.0"/>
151.14704 +                                    <point x="2.1463414634146343" y="5.0" cp1x="2.1463414634146343" cp1y="5.0" cp2x="2.1463414634146343" cp2y="5.0"/>
151.14705 +                                    <point x="3.560975609756098" y="7.390243902439032" cp1x="3.560975609756098" cp1y="7.390243902439032" cp2x="3.560975609756098" cp2y="7.390243902439032"/>
151.14706 +                                    <point x="6.963414634146344" y="0.0" cp1x="6.963414634146344" cp1y="0.0" cp2x="6.963414634146344" cp2y="0.0"/>
151.14707 +                                    <point x="9.0" y="0.0" cp1x="9.0" cp1y="0.0" cp2x="9.0" cp2y="0.0"/>
151.14708 +                                    <point x="9.0" y="0.9999999999999998" cp1x="9.0" cp1y="0.9999999999999998" cp2x="9.0" cp2y="0.9999999999999998"/>
151.14709 +                                    <point x="8.158536585365859" y="1.9756097560975614" cp1x="8.158536585365859" cp1y="1.9756097560975614" cp2x="8.158536585365859" cp2y="1.9756097560975614"/>
151.14710 +                                    <point x="4.0" y="10.0" cp1x="4.0" cp1y="10.0" cp2x="4.0" cp2y="10.0"/>
151.14711 +                                    <point x="2.8658536585365852" y="10.0" cp1x="2.8658536585365852" cp1y="10.0" cp2x="2.8658536585365852" cp2y="10.0"/>
151.14712 +                                 </points>
151.14713 +                              </path>
151.14714 +                           </shapes>
151.14715 +                           <effects/>
151.14716 +                        </layer>
151.14717 +                        <templateLayer fileName="113e5925910.png">
151.14718 +                           <layer name="Template" type="template">
151.14719 +                              <opacity>1.0</opacity>
151.14720 +                              <fillOpacity>1.0</fillOpacity>
151.14721 +                              <blendingMode>NORMAL</blendingMode>
151.14722 +                              <locked>false</locked>
151.14723 +                              <visible>false</visible>
151.14724 +                              <shapes/>
151.14725 +                              <effects/>
151.14726 +                           </layer>
151.14727 +                        </templateLayer>
151.14728 +                     </canvas>
151.14729 +                  </state>
151.14730 +               </backgroundStates>
151.14731 +               <foregroundStates/>
151.14732 +               <borderStates/>
151.14733 +               <regions/>
151.14734 +            </uiIconRegion>
151.14735 +            <region name="MenuItemAccelerator" subregion="true">
151.14736 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.14737 +               <style>
151.14738 +                  <textForeground/>
151.14739 +                  <textBackground/>
151.14740 +                  <background/>
151.14741 +                  <uiproperties/>
151.14742 +               </style>
151.14743 +               <backgroundStates>
151.14744 +                  <state stateKeys="Disabled">
151.14745 +                     <style>
151.14746 +                        <textForeground/>
151.14747 +                        <textBackground/>
151.14748 +                        <background/>
151.14749 +                        <uiproperties/>
151.14750 +                     </style>
151.14751 +                     <canvas>
151.14752 +                        <size width="80" height="30"/>
151.14753 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.14754 +                        <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.14755 +                        <layer name="Layer 1">
151.14756 +                           <opacity>1.0</opacity>
151.14757 +                           <fillOpacity>1.0</fillOpacity>
151.14758 +                           <blendingMode>NORMAL</blendingMode>
151.14759 +                           <locked>false</locked>
151.14760 +                           <visible>true</visible>
151.14761 +                           <shapes/>
151.14762 +                           <effects/>
151.14763 +                        </layer>
151.14764 +                     </canvas>
151.14765 +                  </state>
151.14766 +                  <state stateKeys="Enabled">
151.14767 +                     <style>
151.14768 +                        <textForeground/>
151.14769 +                        <textBackground/>
151.14770 +                        <background/>
151.14771 +                        <uiproperties/>
151.14772 +                     </style>
151.14773 +                     <canvas>
151.14774 +                        <size width="80" height="30"/>
151.14775 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.14776 +                        <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.14777 +                        <layer name="Layer 1">
151.14778 +                           <opacity>1.0</opacity>
151.14779 +                           <fillOpacity>1.0</fillOpacity>
151.14780 +                           <blendingMode>NORMAL</blendingMode>
151.14781 +                           <locked>false</locked>
151.14782 +                           <visible>true</visible>
151.14783 +                           <shapes/>
151.14784 +                           <effects/>
151.14785 +                        </layer>
151.14786 +                     </canvas>
151.14787 +                  </state>
151.14788 +                  <state stateKeys="MouseOver">
151.14789 +                     <style>
151.14790 +                        <textForeground>
151.14791 +                           <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.14792 +                        </textForeground>
151.14793 +                        <textBackground/>
151.14794 +                        <background/>
151.14795 +                        <inherit-textForeground>false</inherit-textForeground>
151.14796 +                        <uiproperties/>
151.14797 +                     </style>
151.14798 +                     <canvas>
151.14799 +                        <size width="80" height="30"/>
151.14800 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.14801 +                        <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.14802 +                        <layer name="Layer 1">
151.14803 +                           <opacity>1.0</opacity>
151.14804 +                           <fillOpacity>1.0</fillOpacity>
151.14805 +                           <blendingMode>NORMAL</blendingMode>
151.14806 +                           <locked>false</locked>
151.14807 +                           <visible>true</visible>
151.14808 +                           <shapes/>
151.14809 +                           <effects/>
151.14810 +                        </layer>
151.14811 +                     </canvas>
151.14812 +                  </state>
151.14813 +               </backgroundStates>
151.14814 +               <foregroundStates/>
151.14815 +               <borderStates/>
151.14816 +               <regions/>
151.14817 +            </region>
151.14818 +         </regions>
151.14819 +      </uiComponent>
151.14820 +      <uiComponent opaque="false" type="javax.swing.JMenu" name="Menu" ui="MenuUI" subregion="false">
151.14821 +         <stateTypes/>
151.14822 +         <contentMargins top="1" bottom="2" left="12" right="5"/>
151.14823 +         <style>
151.14824 +            <textForeground/>
151.14825 +            <textBackground/>
151.14826 +            <background/>
151.14827 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.14828 +            <cacheMode>NO_CACHING</cacheMode>
151.14829 +            <uiproperties/>
151.14830 +         </style>
151.14831 +         <backgroundStates>
151.14832 +            <state stateKeys="Disabled">
151.14833 +               <style>
151.14834 +                  <textForeground>
151.14835 +                     <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.14836 +                  </textForeground>
151.14837 +                  <textBackground/>
151.14838 +                  <background/>
151.14839 +                  <inherit-textForeground>false</inherit-textForeground>
151.14840 +                  <uiproperties/>
151.14841 +               </style>
151.14842 +               <canvas>
151.14843 +                  <size width="100" height="30"/>
151.14844 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.14845 +                  <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.14846 +                  <layer name="Layer 1">
151.14847 +                     <opacity>1.0</opacity>
151.14848 +                     <fillOpacity>1.0</fillOpacity>
151.14849 +                     <blendingMode>NORMAL</blendingMode>
151.14850 +                     <locked>false</locked>
151.14851 +                     <visible>true</visible>
151.14852 +                     <shapes/>
151.14853 +                     <effects/>
151.14854 +                  </layer>
151.14855 +               </canvas>
151.14856 +            </state>
151.14857 +            <state stateKeys="Enabled">
151.14858 +               <style>
151.14859 +                  <textForeground>
151.14860 +                     <matte red="35" green="35" blue="36" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.14861 +                  </textForeground>
151.14862 +                  <textBackground/>
151.14863 +                  <background/>
151.14864 +                  <inherit-textForeground>false</inherit-textForeground>
151.14865 +                  <uiproperties/>
151.14866 +               </style>
151.14867 +               <canvas>
151.14868 +                  <size width="100" height="30"/>
151.14869 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.14870 +                  <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.14871 +                  <layer name="Layer 1">
151.14872 +                     <opacity>1.0</opacity>
151.14873 +                     <fillOpacity>1.0</fillOpacity>
151.14874 +                     <blendingMode>NORMAL</blendingMode>
151.14875 +                     <locked>false</locked>
151.14876 +                     <visible>true</visible>
151.14877 +                     <shapes/>
151.14878 +                     <effects/>
151.14879 +                  </layer>
151.14880 +               </canvas>
151.14881 +            </state>
151.14882 +            <state stateKeys="Enabled+Selected">
151.14883 +               <style>
151.14884 +                  <textForeground>
151.14885 +                     <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.14886 +                  </textForeground>
151.14887 +                  <textBackground/>
151.14888 +                  <background/>
151.14889 +                  <inherit-textForeground>false</inherit-textForeground>
151.14890 +                  <uiproperties/>
151.14891 +               </style>
151.14892 +               <canvas>
151.14893 +                  <size width="100" height="30"/>
151.14894 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.14895 +                  <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.14896 +                  <layer name="Layer 1">
151.14897 +                     <opacity>1.0</opacity>
151.14898 +                     <fillOpacity>1.0</fillOpacity>
151.14899 +                     <blendingMode>NORMAL</blendingMode>
151.14900 +                     <locked>false</locked>
151.14901 +                     <visible>true</visible>
151.14902 +                     <shapes>
151.14903 +                        <rectangle x1="0.0" x2="100.0" y1="0.0" y2="30.0" rounding="0.0">
151.14904 +                           <matte red="57" green="105" blue="138" alpha="255" uiDefaultParentName="nimbusSelection" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.14905 +                           <paintPoints x1="1.0" y1="0.0" x2="1.0" y2="1.0"/>
151.14906 +                        </rectangle>
151.14907 +                     </shapes>
151.14908 +                     <effects/>
151.14909 +                  </layer>
151.14910 +               </canvas>
151.14911 +            </state>
151.14912 +         </backgroundStates>
151.14913 +         <foregroundStates/>
151.14914 +         <borderStates/>
151.14915 +         <regions>
151.14916 +            <uiIconRegion name="arrowIcon" subregion="true">
151.14917 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.14918 +               <style>
151.14919 +                  <textForeground/>
151.14920 +                  <textBackground/>
151.14921 +                  <background/>
151.14922 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.14923 +                  <uiproperties/>
151.14924 +               </style>
151.14925 +               <backgroundStates>
151.14926 +                  <state stateKeys="Disabled">
151.14927 +                     <style>
151.14928 +                        <textForeground/>
151.14929 +                        <textBackground/>
151.14930 +                        <background/>
151.14931 +                        <uiproperties/>
151.14932 +                     </style>
151.14933 +                     <canvas>
151.14934 +                        <size width="9" height="10"/>
151.14935 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.14936 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.14937 +                        <layer name="Layer 1">
151.14938 +                           <opacity>1.0</opacity>
151.14939 +                           <fillOpacity>1.0</fillOpacity>
151.14940 +                           <blendingMode>NORMAL</blendingMode>
151.14941 +                           <locked>false</locked>
151.14942 +                           <visible>true</visible>
151.14943 +                           <shapes>
151.14944 +                              <path>
151.14945 +                                 <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.08983666" brightnessOffset="-0.17647058" alphaOffset="0"/>
151.14946 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.14947 +                                 <points>
151.14948 +                                    <point x="0.0" y="1.0" cp1x="0.0" cp1y="1.0" cp2x="0.0" cp2y="1.0"/>
151.14949 +                                    <point x="7.756097560975589" y="5.512195121951206" cp1x="7.756097560975589" cp1y="5.512195121951206" cp2x="7.756097560975589" cp2y="5.512195121951206"/>
151.14950 +                                    <point x="0.0" y="10.0" cp1x="0.0" cp1y="10.0" cp2x="0.0" cp2y="10.0"/>
151.14951 +                                 </points>
151.14952 +                              </path>
151.14953 +                           </shapes>
151.14954 +                           <effects/>
151.14955 +                        </layer>
151.14956 +                     </canvas>
151.14957 +                  </state>
151.14958 +                  <state stateKeys="Enabled">
151.14959 +                     <style>
151.14960 +                        <textForeground/>
151.14961 +                        <textBackground/>
151.14962 +                        <background/>
151.14963 +                        <uiproperties/>
151.14964 +                     </style>
151.14965 +                     <canvas>
151.14966 +                        <size width="9" height="10"/>
151.14967 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.14968 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.14969 +                        <layer name="Layer 1">
151.14970 +                           <opacity>1.0</opacity>
151.14971 +                           <fillOpacity>1.0</fillOpacity>
151.14972 +                           <blendingMode>NORMAL</blendingMode>
151.14973 +                           <locked>false</locked>
151.14974 +                           <visible>true</visible>
151.14975 +                           <shapes>
151.14976 +                              <path>
151.14977 +                                 <matte red="71" green="71" blue="72" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.09663743" brightnessOffset="-0.4627451" alphaOffset="0"/>
151.14978 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.14979 +                                 <points>
151.14980 +                                    <point x="0.0" y="1.0" cp1x="0.0" cp1y="1.0" cp2x="0.0" cp2y="1.0"/>
151.14981 +                                    <point x="7.756097560975589" y="5.512195121951206" cp1x="7.756097560975589" cp1y="5.512195121951206" cp2x="7.756097560975589" cp2y="5.512195121951206"/>
151.14982 +                                    <point x="0.0" y="10.0" cp1x="0.0" cp1y="10.0" cp2x="0.0" cp2y="10.0"/>
151.14983 +                                 </points>
151.14984 +                              </path>
151.14985 +                           </shapes>
151.14986 +                           <effects/>
151.14987 +                        </layer>
151.14988 +                        <templateLayer fileName="113e57f255e.png">
151.14989 +                           <layer name="Template" type="template">
151.14990 +                              <opacity>1.0</opacity>
151.14991 +                              <fillOpacity>1.0</fillOpacity>
151.14992 +                              <blendingMode>NORMAL</blendingMode>
151.14993 +                              <locked>false</locked>
151.14994 +                              <visible>false</visible>
151.14995 +                              <shapes/>
151.14996 +                              <effects/>
151.14997 +                           </layer>
151.14998 +                        </templateLayer>
151.14999 +                     </canvas>
151.15000 +                  </state>
151.15001 +                  <state stateKeys="Enabled+Selected">
151.15002 +                     <style>
151.15003 +                        <textForeground/>
151.15004 +                        <textBackground/>
151.15005 +                        <background/>
151.15006 +                        <uiproperties/>
151.15007 +                     </style>
151.15008 +                     <canvas>
151.15009 +                        <size width="9" height="10"/>
151.15010 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.15011 +                        <stretchingInsets top="1" bottom="1" left="1" right="1"/>
151.15012 +                        <layer name="Layer 1">
151.15013 +                           <opacity>1.0</opacity>
151.15014 +                           <fillOpacity>1.0</fillOpacity>
151.15015 +                           <blendingMode>NORMAL</blendingMode>
151.15016 +                           <locked>false</locked>
151.15017 +                           <visible>true</visible>
151.15018 +                           <shapes>
151.15019 +                              <path>
151.15020 +                                 <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.15021 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.15022 +                                 <points>
151.15023 +                                    <point x="0.0" y="1.0" cp1x="0.0" cp1y="1.0" cp2x="0.0" cp2y="1.0"/>
151.15024 +                                    <point x="7.670731707317066" y="5.499999999999998" cp1x="7.670731707317066" cp1y="5.499999999999998" cp2x="7.670731707317066" cp2y="5.499999999999998"/>
151.15025 +                                    <point x="0.0" y="10.0" cp1x="0.0" cp1y="10.0" cp2x="0.0" cp2y="10.0"/>
151.15026 +                                 </points>
151.15027 +                              </path>
151.15028 +                           </shapes>
151.15029 +                           <effects/>
151.15030 +                        </layer>
151.15031 +                        <templateLayer fileName="113e58a275a.png">
151.15032 +                           <layer name="Template" type="template">
151.15033 +                              <opacity>1.0</opacity>
151.15034 +                              <fillOpacity>1.0</fillOpacity>
151.15035 +                              <blendingMode>NORMAL</blendingMode>
151.15036 +                              <locked>false</locked>
151.15037 +                              <visible>false</visible>
151.15038 +                              <shapes/>
151.15039 +                              <effects/>
151.15040 +                           </layer>
151.15041 +                        </templateLayer>
151.15042 +                     </canvas>
151.15043 +                  </state>
151.15044 +               </backgroundStates>
151.15045 +               <foregroundStates/>
151.15046 +               <borderStates/>
151.15047 +               <regions/>
151.15048 +            </uiIconRegion>
151.15049 +            <region name="MenuItemAccelerator" subregion="true">
151.15050 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.15051 +               <style>
151.15052 +                  <textForeground/>
151.15053 +                  <textBackground/>
151.15054 +                  <background/>
151.15055 +                  <uiproperties/>
151.15056 +               </style>
151.15057 +               <backgroundStates>
151.15058 +                  <state stateKeys="Disabled">
151.15059 +                     <style>
151.15060 +                        <textForeground/>
151.15061 +                        <textBackground/>
151.15062 +                        <background/>
151.15063 +                        <uiproperties/>
151.15064 +                     </style>
151.15065 +                     <canvas>
151.15066 +                        <size width="80" height="30"/>
151.15067 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.15068 +                        <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.15069 +                        <layer name="Layer 1">
151.15070 +                           <opacity>1.0</opacity>
151.15071 +                           <fillOpacity>1.0</fillOpacity>
151.15072 +                           <blendingMode>NORMAL</blendingMode>
151.15073 +                           <locked>false</locked>
151.15074 +                           <visible>true</visible>
151.15075 +                           <shapes/>
151.15076 +                           <effects/>
151.15077 +                        </layer>
151.15078 +                     </canvas>
151.15079 +                  </state>
151.15080 +                  <state stateKeys="Enabled">
151.15081 +                     <style>
151.15082 +                        <textForeground/>
151.15083 +                        <textBackground/>
151.15084 +                        <background/>
151.15085 +                        <uiproperties/>
151.15086 +                     </style>
151.15087 +                     <canvas>
151.15088 +                        <size width="80" height="30"/>
151.15089 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.15090 +                        <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.15091 +                        <layer name="Layer 1">
151.15092 +                           <opacity>1.0</opacity>
151.15093 +                           <fillOpacity>1.0</fillOpacity>
151.15094 +                           <blendingMode>NORMAL</blendingMode>
151.15095 +                           <locked>false</locked>
151.15096 +                           <visible>true</visible>
151.15097 +                           <shapes/>
151.15098 +                           <effects/>
151.15099 +                        </layer>
151.15100 +                     </canvas>
151.15101 +                  </state>
151.15102 +                  <state stateKeys="MouseOver">
151.15103 +                     <style>
151.15104 +                        <textForeground>
151.15105 +                           <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.15106 +                        </textForeground>
151.15107 +                        <textBackground/>
151.15108 +                        <background/>
151.15109 +                        <inherit-textForeground>false</inherit-textForeground>
151.15110 +                        <uiproperties/>
151.15111 +                     </style>
151.15112 +                     <canvas>
151.15113 +                        <size width="80" height="30"/>
151.15114 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.15115 +                        <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.15116 +                        <layer name="Layer 1">
151.15117 +                           <opacity>1.0</opacity>
151.15118 +                           <fillOpacity>1.0</fillOpacity>
151.15119 +                           <blendingMode>NORMAL</blendingMode>
151.15120 +                           <locked>false</locked>
151.15121 +                           <visible>true</visible>
151.15122 +                           <shapes/>
151.15123 +                           <effects/>
151.15124 +                        </layer>
151.15125 +                     </canvas>
151.15126 +                  </state>
151.15127 +               </backgroundStates>
151.15128 +               <foregroundStates/>
151.15129 +               <borderStates/>
151.15130 +               <regions/>
151.15131 +            </region>
151.15132 +         </regions>
151.15133 +      </uiComponent>
151.15134 +      <uiComponent opaque="true" type="javax.swing.JPopupMenu" name="PopupMenu" ui="PopupMenuUI" subregion="false">
151.15135 +         <stateTypes/>
151.15136 +         <contentMargins top="6" bottom="6" left="1" right="1"/>
151.15137 +         <style>
151.15138 +            <textForeground/>
151.15139 +            <textBackground/>
151.15140 +            <background/>
151.15141 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.15142 +            <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.15143 +            <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.15144 +            <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.15145 +            <uiproperties>
151.15146 +               <uiProperty name="consumeEventOnClose" type="BOOLEAN" value="true"/>
151.15147 +            </uiproperties>
151.15148 +         </style>
151.15149 +         <backgroundStates>
151.15150 +            <state stateKeys="Disabled">
151.15151 +               <style>
151.15152 +                  <textForeground/>
151.15153 +                  <textBackground/>
151.15154 +                  <background/>
151.15155 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.15156 +                  <cacheMode>NO_CACHING</cacheMode>
151.15157 +                  <uiproperties/>
151.15158 +               </style>
151.15159 +               <canvas>
151.15160 +                  <size width="220" height="313"/>
151.15161 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.15162 +                  <stretchingInsets top="9" bottom="11" left="0" right="0"/>
151.15163 +                  <layer name="Layer 1">
151.15164 +                     <opacity>1.0</opacity>
151.15165 +                     <fillOpacity>1.0</fillOpacity>
151.15166 +                     <blendingMode>NORMAL</blendingMode>
151.15167 +                     <locked>false</locked>
151.15168 +                     <visible>true</visible>
151.15169 +                     <shapes>
151.15170 +                        <rectangle x1="1.0" x2="219.0" y1="1.0" y2="312.0" rounding="0.0">
151.15171 +                           <gradient cycleMethod="NO_CYCLE">
151.15172 +                              <stop position="0.0" midpoint="0.15">
151.15173 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="0"/>
151.15174 +                              </stop>
151.15175 +                              <stop position="0.02" midpoint="0.5">
151.15176 +                                 <matte red="237" green="239" blue="242" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.6150531" brightnessOffset="0.39999998" alphaOffset="0"/>
151.15177 +                              </stop>
151.15178 +                              <stop position="0.98" midpoint="0.8">
151.15179 +                                 <matte red="237" green="239" blue="242" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.6150531" brightnessOffset="0.39999998" alphaOffset="0"/>
151.15180 +                              </stop>
151.15181 +                              <stop position="1.0" midpoint="0.72">
151.15182 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="0"/>
151.15183 +                              </stop>
151.15184 +                           </gradient>
151.15185 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.15186 +                        </rectangle>
151.15187 +                        <rectangle x1="0.0" x2="220.0" y1="0.0" y2="313.0" rounding="0.0">
151.15188 +                           <matte red="89" green="89" blue="89" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.39607844" alphaOffset="0"/>
151.15189 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.15190 +                        </rectangle>
151.15191 +                     </shapes>
151.15192 +                     <effects/>
151.15193 +                  </layer>
151.15194 +               </canvas>
151.15195 +            </state>
151.15196 +            <state stateKeys="Enabled">
151.15197 +               <style>
151.15198 +                  <textForeground/>
151.15199 +                  <textBackground/>
151.15200 +                  <background/>
151.15201 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.15202 +                  <cacheMode>NO_CACHING</cacheMode>
151.15203 +                  <uiproperties/>
151.15204 +               </style>
151.15205 +               <canvas>
151.15206 +                  <size width="220" height="313"/>
151.15207 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.15208 +                  <stretchingInsets top="11" bottom="11" left="2" right="2"/>
151.15209 +                  <layer name="Layer 1">
151.15210 +                     <opacity>1.0</opacity>
151.15211 +                     <fillOpacity>1.0</fillOpacity>
151.15212 +                     <blendingMode>NORMAL</blendingMode>
151.15213 +                     <locked>false</locked>
151.15214 +                     <visible>true</visible>
151.15215 +                     <shapes>
151.15216 +                        <rectangle x1="1.0" x2="219.0" y1="1.0" y2="312.0" rounding="0.0">
151.15217 +                           <gradient cycleMethod="NO_CYCLE">
151.15218 +                              <stop position="0.0" midpoint="0.15">
151.15219 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="0"/>
151.15220 +                              </stop>
151.15221 +                              <stop position="0.02" midpoint="0.5">
151.15222 +                                 <matte red="237" green="239" blue="242" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.6150531" brightnessOffset="0.39999998" alphaOffset="0"/>
151.15223 +                              </stop>
151.15224 +                              <stop position="0.98" midpoint="0.8">
151.15225 +                                 <matte red="237" green="239" blue="242" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.6150531" brightnessOffset="0.39999998" alphaOffset="0"/>
151.15226 +                              </stop>
151.15227 +                              <stop position="1.0" midpoint="0.72">
151.15228 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="0"/>
151.15229 +                              </stop>
151.15230 +                           </gradient>
151.15231 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.15232 +                        </rectangle>
151.15233 +                        <rectangle x1="0.0" x2="220.0" y1="0.0" y2="313.0" rounding="0.0">
151.15234 +                           <matte red="89" green="89" blue="89" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.39607844" alphaOffset="0"/>
151.15235 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.15236 +                        </rectangle>
151.15237 +                     </shapes>
151.15238 +                     <effects/>
151.15239 +                  </layer>
151.15240 +                  <templateLayer fileName="113dbeb51c2.png">
151.15241 +                     <layer name="Template" type="template">
151.15242 +                        <opacity>1.0</opacity>
151.15243 +                        <fillOpacity>1.0</fillOpacity>
151.15244 +                        <blendingMode>NORMAL</blendingMode>
151.15245 +                        <locked>false</locked>
151.15246 +                        <visible>true</visible>
151.15247 +                        <shapes/>
151.15248 +                        <effects/>
151.15249 +                     </layer>
151.15250 +                  </templateLayer>
151.15251 +               </canvas>
151.15252 +            </state>
151.15253 +         </backgroundStates>
151.15254 +         <foregroundStates/>
151.15255 +         <borderStates/>
151.15256 +         <regions/>
151.15257 +      </uiComponent>
151.15258 +      <uiComponent opaque="false" type="javax.swing.JPopupMenu$Separator" name="PopupMenuSeparator" ui="PopupMenuSeparatorUI" subregion="false">
151.15259 +         <stateTypes/>
151.15260 +         <contentMargins top="1" bottom="2" left="0" right="0"/>
151.15261 +         <style>
151.15262 +            <textForeground/>
151.15263 +            <textBackground/>
151.15264 +            <background/>
151.15265 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.15266 +            <cacheMode>NO_CACHING</cacheMode>
151.15267 +            <uiproperties/>
151.15268 +         </style>
151.15269 +         <backgroundStates>
151.15270 +            <state stateKeys="Enabled" inverted="true">
151.15271 +               <style>
151.15272 +                  <textForeground/>
151.15273 +                  <textBackground/>
151.15274 +                  <background/>
151.15275 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.15276 +                  <cacheMode>NO_CACHING</cacheMode>
151.15277 +                  <uiproperties/>
151.15278 +               </style>
151.15279 +               <canvas>
151.15280 +                  <size width="3" height="3"/>
151.15281 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.15282 +                  <stretchingInsets top="1" bottom="1" left="1" right="1"/>
151.15283 +                  <layer name="Layer 1">
151.15284 +                     <opacity>1.0</opacity>
151.15285 +                     <fillOpacity>1.0</fillOpacity>
151.15286 +                     <blendingMode>NORMAL</blendingMode>
151.15287 +                     <locked>false</locked>
151.15288 +                     <visible>true</visible>
151.15289 +                     <shapes>
151.15290 +                        <rectangle x1="0.0" x2="3.0" y1="1.0" y2="2.0" rounding="0.0">
151.15291 +                           <matte red="167" green="172" blue="180" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.008547008" saturationOffset="-0.03830409" brightnessOffset="-0.039215684" alphaOffset="0"/>
151.15292 +                           <paintPoints x1="0.25" y1="1.0" x2="0.75" y2="2.0"/>
151.15293 +                        </rectangle>
151.15294 +                     </shapes>
151.15295 +                     <effects/>
151.15296 +                  </layer>
151.15297 +               </canvas>
151.15298 +            </state>
151.15299 +         </backgroundStates>
151.15300 +         <foregroundStates/>
151.15301 +         <borderStates/>
151.15302 +         <regions/>
151.15303 +      </uiComponent>
151.15304 +      <uiComponent opaque="true" type="javax.swing.JOptionPane" name="OptionPane" ui="OptionPaneUI" subregion="false">
151.15305 +         <stateTypes/>
151.15306 +         <contentMargins top="15" bottom="15" left="15" right="15"/>
151.15307 +         <style>
151.15308 +            <textForeground/>
151.15309 +            <textBackground/>
151.15310 +            <background>
151.15311 +               <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="control" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.15312 +            </background>
151.15313 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.15314 +            <cacheMode>NO_CACHING</cacheMode>
151.15315 +            <uiproperties>
151.15316 +               <uiProperty name="buttonOrientation" type="INT" value="4"/>
151.15317 +               <uiProperty name="messageAnchor" type="INT" value="17"/>
151.15318 +               <uiProperty name="separatorPadding" type="INT" value="0"/>
151.15319 +               <uiProperty name="sameSizeButtons" type="BOOLEAN" value="false"/>
151.15320 +            </uiproperties>
151.15321 +         </style>
151.15322 +         <backgroundStates>
151.15323 +            <state stateKeys="Enabled">
151.15324 +               <style>
151.15325 +                  <textForeground/>
151.15326 +                  <textBackground/>
151.15327 +                  <background/>
151.15328 +                  <uiproperties/>
151.15329 +               </style>
151.15330 +               <canvas>
151.15331 +                  <size width="100" height="30"/>
151.15332 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.15333 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.15334 +                  <layer name="Layer 1">
151.15335 +                     <opacity>1.0</opacity>
151.15336 +                     <fillOpacity>1.0</fillOpacity>
151.15337 +                     <blendingMode>NORMAL</blendingMode>
151.15338 +                     <locked>false</locked>
151.15339 +                     <visible>true</visible>
151.15340 +                     <shapes/>
151.15341 +                     <effects/>
151.15342 +                  </layer>
151.15343 +               </canvas>
151.15344 +            </state>
151.15345 +         </backgroundStates>
151.15346 +         <foregroundStates/>
151.15347 +         <borderStates/>
151.15348 +         <regions>
151.15349 +            <uiComponent opaque="false" componentName="OptionPane.separator" type="javax.swing.JSeparator" name="Separator" ui="SeparatorUI" subregion="true">
151.15350 +               <stateTypes/>
151.15351 +               <contentMargins top="1" bottom="0" left="0" right="0"/>
151.15352 +               <style>
151.15353 +                  <textForeground/>
151.15354 +                  <textBackground/>
151.15355 +                  <background/>
151.15356 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.15357 +                  <cacheMode>NO_CACHING</cacheMode>
151.15358 +                  <uiproperties/>
151.15359 +               </style>
151.15360 +               <backgroundStates>
151.15361 +                  <state stateKeys="Enabled">
151.15362 +                     <style>
151.15363 +                        <textForeground/>
151.15364 +                        <textBackground/>
151.15365 +                        <background/>
151.15366 +                        <cacheSettingsInherited>false</cacheSettingsInherited>
151.15367 +                        <cacheMode>NO_CACHING</cacheMode>
151.15368 +                        <uiproperties/>
151.15369 +                     </style>
151.15370 +                     <canvas>
151.15371 +                        <size width="100" height="30"/>
151.15372 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.15373 +                        <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.15374 +                        <layer name="Layer 1">
151.15375 +                           <opacity>1.0</opacity>
151.15376 +                           <fillOpacity>1.0</fillOpacity>
151.15377 +                           <blendingMode>NORMAL</blendingMode>
151.15378 +                           <locked>false</locked>
151.15379 +                           <visible>true</visible>
151.15380 +                           <shapes/>
151.15381 +                           <effects/>
151.15382 +                        </layer>
151.15383 +                     </canvas>
151.15384 +                  </state>
151.15385 +               </backgroundStates>
151.15386 +               <foregroundStates/>
151.15387 +               <borderStates/>
151.15388 +               <regions/>
151.15389 +            </uiComponent>
151.15390 +            <uiComponent opaque="false" componentName="OptionPane.messageArea" type="javax.swing.JPanel" name="Panel" ui="PanelUI" subregion="true">
151.15391 +               <stateTypes/>
151.15392 +               <contentMargins top="0" bottom="10" left="0" right="0"/>
151.15393 +               <style>
151.15394 +                  <textForeground/>
151.15395 +                  <textBackground/>
151.15396 +                  <background/>
151.15397 +                  <uiproperties/>
151.15398 +               </style>
151.15399 +               <backgroundStates>
151.15400 +                  <state stateKeys="Enabled">
151.15401 +                     <style>
151.15402 +                        <textForeground/>
151.15403 +                        <textBackground/>
151.15404 +                        <background/>
151.15405 +                        <uiproperties/>
151.15406 +                     </style>
151.15407 +                     <canvas>
151.15408 +                        <size width="100" height="30"/>
151.15409 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.15410 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.15411 +                        <layer name="Layer 1">
151.15412 +                           <opacity>1.0</opacity>
151.15413 +                           <fillOpacity>1.0</fillOpacity>
151.15414 +                           <blendingMode>NORMAL</blendingMode>
151.15415 +                           <locked>false</locked>
151.15416 +                           <visible>true</visible>
151.15417 +                           <shapes/>
151.15418 +                           <effects/>
151.15419 +                        </layer>
151.15420 +                     </canvas>
151.15421 +                  </state>
151.15422 +               </backgroundStates>
151.15423 +               <foregroundStates/>
151.15424 +               <borderStates/>
151.15425 +               <regions>
151.15426 +                  <uiComponent opaque="false" componentName="OptionPane.label" type="javax.swing.JLabel" name="Label" ui="LabelUI" subregion="true">
151.15427 +                     <stateTypes/>
151.15428 +                     <contentMargins top="0" bottom="10" left="10" right="10"/>
151.15429 +                     <style>
151.15430 +                        <textForeground/>
151.15431 +                        <textBackground/>
151.15432 +                        <background/>
151.15433 +                        <uiproperties/>
151.15434 +                     </style>
151.15435 +                     <backgroundStates>
151.15436 +                        <state stateKeys="Enabled">
151.15437 +                           <style>
151.15438 +                              <textForeground/>
151.15439 +                              <textBackground/>
151.15440 +                              <background/>
151.15441 +                              <uiproperties/>
151.15442 +                           </style>
151.15443 +                           <canvas>
151.15444 +                              <size width="100" height="30"/>
151.15445 +                              <nextLayerNameIndex>2</nextLayerNameIndex>
151.15446 +                              <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.15447 +                              <layer name="Layer 1">
151.15448 +                                 <opacity>1.0</opacity>
151.15449 +                                 <fillOpacity>1.0</fillOpacity>
151.15450 +                                 <blendingMode>NORMAL</blendingMode>
151.15451 +                                 <locked>false</locked>
151.15452 +                                 <visible>true</visible>
151.15453 +                                 <shapes>
151.15454 +                                    <rectangle x1="0.0" x2="100.0" y1="0.0" y2="30.0" rounding="0.0">
151.15455 +                                       <matte red="0" green="0" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.15456 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.15457 +                                    </rectangle>
151.15458 +                                 </shapes>
151.15459 +                                 <effects/>
151.15460 +                              </layer>
151.15461 +                           </canvas>
151.15462 +                        </state>
151.15463 +                     </backgroundStates>
151.15464 +                     <foregroundStates/>
151.15465 +                     <borderStates/>
151.15466 +                     <regions/>
151.15467 +                  </uiComponent>
151.15468 +               </regions>
151.15469 +            </uiComponent>
151.15470 +            <uiIconRegion name="ErrorIcon" subregion="true" key="errorIcon" basicKey="OptionPane.errorIcon">
151.15471 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.15472 +               <style>
151.15473 +                  <textForeground/>
151.15474 +                  <textBackground/>
151.15475 +                  <background/>
151.15476 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.15477 +                  <uiproperties/>
151.15478 +               </style>
151.15479 +               <backgroundStates>
151.15480 +                  <state stateKeys="Enabled">
151.15481 +                     <style>
151.15482 +                        <textForeground/>
151.15483 +                        <textBackground/>
151.15484 +                        <background/>
151.15485 +                        <uiproperties/>
151.15486 +                     </style>
151.15487 +                     <canvas>
151.15488 +                        <size width="48" height="48"/>
151.15489 +                        <nextLayerNameIndex>5</nextLayerNameIndex>
151.15490 +                        <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.15491 +                        <layer name="Layer 4">
151.15492 +                           <opacity>1.0</opacity>
151.15493 +                           <fillOpacity>1.0</fillOpacity>
151.15494 +                           <blendingMode>NORMAL</blendingMode>
151.15495 +                           <locked>false</locked>
151.15496 +                           <visible>true</visible>
151.15497 +                           <shapes>
151.15498 +                              <path>
151.15499 +                                 <matte red="255" green="255" blue="255" alpha="68" uiDefaultParentName="nimbusRed" hueOffset="0.0" saturationOffset="-0.79881656" brightnessOffset="0.33725488" alphaOffset="-187"/>
151.15500 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.15501 +                                 <points>
151.15502 +                                    <point x="1.0" y="13.6875" cp1x="1.0" cp1y="13.6875" cp2x="1.0" cp2y="13.6875"/>
151.15503 +                                    <point x="13.4375" y="1.0" cp1x="13.4375" cp1y="1.0" cp2x="13.4375" cp2y="1.0"/>
151.15504 +                                    <point x="32.5625" y="1.0" cp1x="32.5625" cp1y="1.0" cp2x="32.5625" cp2y="1.0"/>
151.15505 +                                    <point x="45.0" y="13.5" cp1x="45.0" cp1y="13.5" cp2x="45.0" cp2y="13.5"/>
151.15506 +                                    <point x="45.0" y="32.0" cp1x="45.0" cp1y="32.0" cp2x="45.0" cp2y="32.0"/>
151.15507 +                                    <point x="32.0" y="45.0" cp1x="32.0" cp1y="45.0" cp2x="32.0" cp2y="45.0"/>
151.15508 +                                    <point x="13.6875" y="44.9375" cp1x="13.6875" cp1y="44.9375" cp2x="13.6875" cp2y="44.9375"/>
151.15509 +                                    <point x="1.0625" y="32.3125" cp1x="1.0625" cp1y="32.3125" cp2x="1.0625" cp2y="32.3125"/>
151.15510 +                                    <point x="1.0" y="24.0" cp1x="1.0" cp1y="24.0" cp2x="1.0" cp2y="24.0"/>
151.15511 +                                    <point x="2.0" y="24.0" cp1x="2.0" cp1y="24.0" cp2x="2.0" cp2y="24.0"/>
151.15512 +                                    <point x="2.0" y="32.0" cp1x="2.0" cp1y="32.0" cp2x="2.0" cp2y="32.0"/>
151.15513 +                                    <point x="14.0" y="44.0" cp1x="14.0" cp1y="44.0" cp2x="14.0" cp2y="44.0"/>
151.15514 +                                    <point x="32.0" y="44.0" cp1x="32.0" cp1y="44.0" cp2x="32.0" cp2y="44.0"/>
151.15515 +                                    <point x="44.0" y="32.0" cp1x="44.0" cp1y="32.0" cp2x="44.0" cp2y="32.0"/>
151.15516 +                                    <point x="44.0" y="14.0" cp1x="44.0" cp1y="14.0" cp2x="44.0" cp2y="14.0"/>
151.15517 +                                    <point x="32.0" y="2.0" cp1x="32.0" cp1y="2.0" cp2x="32.0" cp2y="2.0"/>
151.15518 +                                    <point x="14.0" y="2.0" cp1x="14.0" cp1y="2.0" cp2x="14.0" cp2y="2.0"/>
151.15519 +                                    <point x="2.0" y="14.0" cp1x="2.0" cp1y="14.0" cp2x="2.0" cp2y="14.0"/>
151.15520 +                                    <point x="2.0" y="24.0" cp1x="2.0" cp1y="24.0" cp2x="2.0" cp2y="24.0"/>
151.15521 +                                    <point x="1.0" y="24.0" cp1x="1.0" cp1y="24.0" cp2x="1.0" cp2y="24.0"/>
151.15522 +                                 </points>
151.15523 +                              </path>
151.15524 +                              <ellipse x1="20.0" x2="26.0" y1="32.0" y2="38.0">
151.15525 +                                 <matte red="250" green="250" blue="250" alpha="255" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="0.22745097" alphaOffset="0"/>
151.15526 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.15527 +                              </ellipse>
151.15528 +                              <path>
151.15529 +                                 <matte red="250" green="250" blue="250" alpha="255" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="0.22745097" alphaOffset="0"/>
151.15530 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.15531 +                                 <points>
151.15532 +                                    <point x="20.0" y="11.0" cp1x="20.0" cp1y="13.0" cp2x="20.0" cp2y="9.0"/>
151.15533 +                                    <point x="23.0" y="8.0" cp1x="21.0" cp1y="8.0" cp2x="25.0" cp2y="8.0"/>
151.15534 +                                    <point x="26.0" y="11.0" cp1x="26.0" cp1y="9.0" cp2x="26.0" cp2y="13.0"/>
151.15535 +                                    <point x="24.0" y="29.0" cp1x="24.0" cp1y="29.0" cp2x="24.0" cp2y="29.0"/>
151.15536 +                                    <point x="22.0" y="29.0" cp1x="22.0" cp1y="29.0" cp2x="22.0" cp2y="29.0"/>
151.15537 +                                 </points>
151.15538 +                              </path>
151.15539 +                           </shapes>
151.15540 +                           <effects/>
151.15541 +                        </layer>
151.15542 +                        <layer name="Layer 3">
151.15543 +                           <opacity>1.0</opacity>
151.15544 +                           <fillOpacity>1.0</fillOpacity>
151.15545 +                           <blendingMode>NORMAL</blendingMode>
151.15546 +                           <locked>false</locked>
151.15547 +                           <visible>true</visible>
151.15548 +                           <shapes>
151.15549 +                              <path>
151.15550 +                                 <gradient cycleMethod="NO_CYCLE">
151.15551 +                                    <stop position="0.0" midpoint="0.5">
151.15552 +                                       <matte red="225" green="136" blue="136" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="-0.403261" brightnessOffset="0.21960783" alphaOffset="0"/>
151.15553 +                                    </stop>
151.15554 +                                    <stop position="0.3451613" midpoint="0.5">
151.15555 +                                       <matte red="198" green="54" blue="54" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="-0.07154381" brightnessOffset="0.11372548" alphaOffset="0"/>
151.15556 +                                    </stop>
151.15557 +                                    <stop position="0.683871" midpoint="0.68367344">
151.15558 +                                       <matte red="187" green="17" blue="17" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="0.110274374" brightnessOffset="0.07058823" alphaOffset="0"/>
151.15559 +                                    </stop>
151.15560 +                                    <stop position="1.0" midpoint="0.5">
151.15561 +                                       <matte red="235" green="60" blue="60" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="-0.05413574" brightnessOffset="0.2588235" alphaOffset="0"/>
151.15562 +                                    </stop>
151.15563 +                                 </gradient>
151.15564 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.15565 +                                 <points>
151.15566 +                                    <point x="1.0" y="14.0" cp1x="1.0" cp1y="14.0" cp2x="1.0" cp2y="14.0"/>
151.15567 +                                    <point x="14.0" y="1.0" cp1x="14.0" cp1y="1.0" cp2x="14.0" cp2y="1.0"/>
151.15568 +                                    <point x="32.0" y="1.0" cp1x="32.0" cp1y="1.0" cp2x="32.0" cp2y="1.0"/>
151.15569 +                                    <point x="45.0" y="14.0" cp1x="45.0" cp1y="14.0" cp2x="45.0" cp2y="14.0"/>
151.15570 +                                    <point x="45.0" y="32.0" cp1x="45.0" cp1y="32.0" cp2x="45.0" cp2y="32.0"/>
151.15571 +                                    <point x="32.0" y="45.0" cp1x="32.0" cp1y="45.0" cp2x="32.0" cp2y="45.0"/>
151.15572 +                                    <point x="14.0" y="45.0" cp1x="14.0" cp1y="45.0" cp2x="14.0" cp2y="45.0"/>
151.15573 +                                    <point x="1.0" y="32.0" cp1x="1.0" cp1y="32.0" cp2x="1.0" cp2y="32.0"/>
151.15574 +                                 </points>
151.15575 +                              </path>
151.15576 +                           </shapes>
151.15577 +                           <effects/>
151.15578 +                        </layer>
151.15579 +                        <layer name="Button">
151.15580 +                           <opacity>1.0</opacity>
151.15581 +                           <fillOpacity>1.0</fillOpacity>
151.15582 +                           <blendingMode>NORMAL</blendingMode>
151.15583 +                           <locked>false</locked>
151.15584 +                           <visible>true</visible>
151.15585 +                           <shapes>
151.15586 +                              <path>
151.15587 +                                 <matte red="173" green="3" blue="3" alpha="255" uiDefaultParentName="nimbusRed" hueOffset="-0.014814814" saturationOffset="0.18384242" brightnessOffset="0.015686274" alphaOffset="0"/>
151.15588 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.15589 +                                 <points>
151.15590 +                                    <point x="0.0" y="13.0" cp1x="0.0" cp1y="13.0" cp2x="0.0" cp2y="13.0"/>
151.15591 +                                    <point x="13.0" y="0.0" cp1x="13.0" cp1y="0.0" cp2x="13.0" cp2y="0.0"/>
151.15592 +                                    <point x="33.0" y="0.0" cp1x="33.0" cp1y="0.0" cp2x="33.0" cp2y="0.0"/>
151.15593 +                                    <point x="46.0" y="13.0" cp1x="46.0" cp1y="13.0" cp2x="46.0" cp2y="13.0"/>
151.15594 +                                    <point x="46.0" y="33.0" cp1x="46.0" cp1y="33.0" cp2x="46.0" cp2y="33.0"/>
151.15595 +                                    <point x="33.0" y="46.0" cp1x="33.0" cp1y="46.0" cp2x="33.0" cp2y="46.0"/>
151.15596 +                                    <point x="13.0" y="46.0" cp1x="13.0" cp1y="46.0" cp2x="13.0" cp2y="46.0"/>
151.15597 +                                    <point x="0.0" y="33.0" cp1x="0.0" cp1y="33.0" cp2x="0.0" cp2y="33.0"/>
151.15598 +                                 </points>
151.15599 +                              </path>
151.15600 +                           </shapes>
151.15601 +                           <effects>
151.15602 +                              <dropShadow blendingMode="NORMAL" opacity="0.28" angle="135" distance="2" spread="0" size="3">
151.15603 +                                 <matte red="0" green="0" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.15604 +                              </dropShadow>
151.15605 +                           </effects>
151.15606 +                        </layer>
151.15607 +                        <templateLayer fileName="11406393ebc.png">
151.15608 +                           <layer name="Template" type="template">
151.15609 +                              <opacity>1.0</opacity>
151.15610 +                              <fillOpacity>1.0</fillOpacity>
151.15611 +                              <blendingMode>NORMAL</blendingMode>
151.15612 +                              <locked>false</locked>
151.15613 +                              <visible>false</visible>
151.15614 +                              <shapes/>
151.15615 +                              <effects/>
151.15616 +                           </layer>
151.15617 +                        </templateLayer>
151.15618 +                     </canvas>
151.15619 +                  </state>
151.15620 +               </backgroundStates>
151.15621 +               <foregroundStates/>
151.15622 +               <borderStates/>
151.15623 +               <regions/>
151.15624 +            </uiIconRegion>
151.15625 +            <uiIconRegion name="InformationIcon" subregion="true" key="informationIcon" basicKey="OptionPane.informationIcon">
151.15626 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.15627 +               <style>
151.15628 +                  <textForeground/>
151.15629 +                  <textBackground/>
151.15630 +                  <background/>
151.15631 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.15632 +                  <uiproperties/>
151.15633 +               </style>
151.15634 +               <backgroundStates>
151.15635 +                  <state stateKeys="Enabled">
151.15636 +                     <style>
151.15637 +                        <textForeground/>
151.15638 +                        <textBackground/>
151.15639 +                        <background/>
151.15640 +                        <uiproperties/>
151.15641 +                     </style>
151.15642 +                     <canvas>
151.15643 +                        <size width="48" height="48"/>
151.15644 +                        <nextLayerNameIndex>4</nextLayerNameIndex>
151.15645 +                        <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.15646 +                        <layer name="Layer 3">
151.15647 +                           <opacity>1.0</opacity>
151.15648 +                           <fillOpacity>1.0</fillOpacity>
151.15649 +                           <blendingMode>NORMAL</blendingMode>
151.15650 +                           <locked>false</locked>
151.15651 +                           <visible>true</visible>
151.15652 +                           <shapes>
151.15653 +                              <ellipse x1="20.0" x2="26.0" y1="8.0" y2="14.0">
151.15654 +                                 <matte red="250" green="250" blue="250" alpha="255" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="0.2235294" alphaOffset="0"/>
151.15655 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.15656 +                              </ellipse>
151.15657 +                              <path>
151.15658 +                                 <matte red="250" green="250" blue="250" alpha="255" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="0.21960783" alphaOffset="0"/>
151.15659 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.15660 +                                 <points>
151.15661 +                                    <point x="18.0" y="18.0" cp1x="15.5" cp1y="18.0" cp2x="20.5" cp2y="18.0"/>
151.15662 +                                    <point x="24.0" y="18.0" cp1x="22.8125" cp1y="18.0" cp2x="25.1875" cp2y="18.0"/>
151.15663 +                                    <point x="26.0" y="21.0" cp1x="26.0" cp1y="19.0" cp2x="26.0" cp2y="23.0"/>
151.15664 +                                    <point x="26.0" y="33.0" cp1x="26.0" cp1y="33.0" cp2x="26.0" cp2y="33.0"/>
151.15665 +                                    <point x="28.9375" y="33.0" cp1x="26.375" cp1y="33.0625" cp2x="31.5" cp2y="32.9375"/>
151.15666 +                                    <point x="29.0" y="37.0" cp1x="31.5625" cp1y="37.0" cp2x="26.4375" cp2y="37.0"/>
151.15667 +                                    <point x="17.125" y="37.0" cp1x="19.625" cp1y="37.0625" cp2x="14.625" cp2y="36.9375"/>
151.15668 +                                    <point x="17.0" y="33.0" cp1x="14.5625" cp1y="33.0" cp2x="19.4375" cp2y="33.0"/>
151.15669 +                                    <point x="20.0" y="33.0" cp1x="20.0" cp1y="33.0" cp2x="20.0" cp2y="33.0"/>
151.15670 +                                    <point x="20.0" y="22.0" cp1x="20.0" cp1y="22.0" cp2x="20.0" cp2y="22.0"/>
151.15671 +                                    <point x="18.0" y="22.0" cp1x="20.75" cp1y="22.0" cp2x="15.25" cp2y="22.0"/>
151.15672 +                                 </points>
151.15673 +                              </path>
151.15674 +                           </shapes>
151.15675 +                           <effects/>
151.15676 +                        </layer>
151.15677 +                        <layer name="Button">
151.15678 +                           <opacity>1.0</opacity>
151.15679 +                           <fillOpacity>1.0</fillOpacity>
151.15680 +                           <blendingMode>NORMAL</blendingMode>
151.15681 +                           <locked>false</locked>
151.15682 +                           <visible>true</visible>
151.15683 +                           <shapes>
151.15684 +                              <ellipse x1="2.0" x2="44.0" y1="2.0" y2="44.0">
151.15685 +                                 <gradient cycleMethod="NO_CYCLE">
151.15686 +                                    <stop position="0.0" midpoint="0.5">
151.15687 +                                       <matte red="150" green="175" blue="222" alpha="255" uiDefaultParentName="nimbusInfoBlue" hueOffset="-0.0014793873" saturationOffset="-0.41456455" brightnessOffset="0.16470587" alphaOffset="0"/>
151.15688 +                                    </stop>
151.15689 +                                    <stop position="0.28424656" midpoint="0.5">
151.15690 +                                       <matte red="78" green="116" blue="191" alpha="255" uiDefaultParentName="nimbusInfoBlue" hueOffset="3.437996E-4" saturationOffset="-0.14726585" brightnessOffset="0.043137252" alphaOffset="0"/>
151.15691 +                                    </stop>
151.15692 +                                    <stop position="0.5" midpoint="0.5">
151.15693 +                                       <matte red="48" green="93" blue="180" alpha="255" uiDefaultParentName="nimbusInfoBlue" hueOffset="-4.271865E-4" saturationOffset="-0.0055555105" brightnessOffset="0.0" alphaOffset="0"/>
151.15694 +                                    </stop>
151.15695 +                                    <stop position="0.7191781" midpoint="0.5">
151.15696 +                                       <matte red="47" green="92" blue="180" alpha="255" uiDefaultParentName="nimbusInfoBlue" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.15697 +                                    </stop>
151.15698 +                                    <stop position="1.0" midpoint="0.5">
151.15699 +                                       <matte red="87" green="134" blue="224" alpha="255" uiDefaultParentName="nimbusInfoBlue" hueOffset="-7.866621E-4" saturationOffset="-0.12728173" brightnessOffset="0.17254901" alphaOffset="0"/>
151.15700 +                                    </stop>
151.15701 +                                 </gradient>
151.15702 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.15703 +                              </ellipse>
151.15704 +                              <ellipse x1="1.0" x2="45.0" y1="1.0" y2="45.0">
151.15705 +                                 <gradient cycleMethod="NO_CYCLE">
151.15706 +                                    <stop position="0.0" midpoint="0.5">
151.15707 +                                       <matte red="162" green="185" blue="229" alpha="255" uiDefaultParentName="nimbusInfoBlue" hueOffset="-8.2296133E-4" saturationOffset="-0.44631243" brightnessOffset="0.19215685" alphaOffset="0"/>
151.15708 +                                    </stop>
151.15709 +                                    <stop position="0.48287672" midpoint="0.5">
151.15710 +                                       <matte red="64" green="106" blue="191" alpha="255" uiDefaultParentName="nimbusInfoBlue" hueOffset="0.0012729168" saturationOffset="-0.0739674" brightnessOffset="0.043137252" alphaOffset="0"/>
151.15711 +                                    </stop>
151.15712 +                                    <stop position="1.0" midpoint="0.5">
151.15713 +                                       <matte red="93" green="139" blue="231" alpha="255" uiDefaultParentName="nimbusInfoBlue" hueOffset="8.354187E-4" saturationOffset="-0.14148629" brightnessOffset="0.19999999" alphaOffset="0"/>
151.15714 +                                    </stop>
151.15715 +                                 </gradient>
151.15716 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.15717 +                              </ellipse>
151.15718 +                              <ellipse x1="0.0" x2="46.0" y1="0.0" y2="46.0">
151.15719 +                                 <gradient cycleMethod="NO_CYCLE">
151.15720 +                                    <stop position="0.0" midpoint="0.5">
151.15721 +                                       <matte red="33" green="78" blue="166" alpha="255" uiDefaultParentName="nimbusInfoBlue" hueOffset="0.0" saturationOffset="0.06231594" brightnessOffset="-0.054901958" alphaOffset="0"/>
151.15722 +                                    </stop>
151.15723 +                                    <stop position="1.0" midpoint="0.5">
151.15724 +                                       <matte red="24" green="60" blue="131" alpha="255" uiDefaultParentName="nimbusInfoBlue" hueOffset="3.1620264E-4" saturationOffset="0.07790506" brightnessOffset="-0.19215685" alphaOffset="0"/>
151.15725 +                                    </stop>
151.15726 +                                 </gradient>
151.15727 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.15728 +                              </ellipse>
151.15729 +                              <ellipse x1="0.0" x2="0.0" y1="0.0" y2="0.0">
151.15730 +                                 <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.15731 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.15732 +                              </ellipse>
151.15733 +                              <ellipse x1="0.0" x2="0.0" y1="0.0" y2="0.0">
151.15734 +                                 <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.15735 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.15736 +                              </ellipse>
151.15737 +                              <ellipse x1="0.0" x2="0.0" y1="0.0" y2="0.0">
151.15738 +                                 <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.15739 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.15740 +                              </ellipse>
151.15741 +                           </shapes>
151.15742 +                           <effects>
151.15743 +                              <dropShadow blendingMode="NORMAL" opacity="0.35" angle="135" distance="2" spread="0" size="4">
151.15744 +                                 <matte red="0" green="0" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.15745 +                              </dropShadow>
151.15746 +                           </effects>
151.15747 +                        </layer>
151.15748 +                        <templateLayer fileName="11409fd0ae1.png">
151.15749 +                           <layer name="Template" type="template">
151.15750 +                              <opacity>1.0</opacity>
151.15751 +                              <fillOpacity>1.0</fillOpacity>
151.15752 +                              <blendingMode>NORMAL</blendingMode>
151.15753 +                              <locked>false</locked>
151.15754 +                              <visible>false</visible>
151.15755 +                              <shapes/>
151.15756 +                              <effects/>
151.15757 +                           </layer>
151.15758 +                        </templateLayer>
151.15759 +                     </canvas>
151.15760 +                  </state>
151.15761 +               </backgroundStates>
151.15762 +               <foregroundStates/>
151.15763 +               <borderStates/>
151.15764 +               <regions/>
151.15765 +            </uiIconRegion>
151.15766 +            <uiIconRegion name="QuestionIcon" subregion="true" key="questionIcon" basicKey="OptionPane.questionIcon">
151.15767 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.15768 +               <style>
151.15769 +                  <textForeground/>
151.15770 +                  <textBackground/>
151.15771 +                  <background/>
151.15772 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.15773 +                  <uiproperties/>
151.15774 +               </style>
151.15775 +               <backgroundStates>
151.15776 +                  <state stateKeys="Enabled">
151.15777 +                     <style>
151.15778 +                        <textForeground/>
151.15779 +                        <textBackground/>
151.15780 +                        <background/>
151.15781 +                        <uiproperties/>
151.15782 +                     </style>
151.15783 +                     <canvas>
151.15784 +                        <size width="48" height="48"/>
151.15785 +                        <nextLayerNameIndex>4</nextLayerNameIndex>
151.15786 +                        <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.15787 +                        <layer name="Layer 3">
151.15788 +                           <opacity>1.0</opacity>
151.15789 +                           <fillOpacity>1.0</fillOpacity>
151.15790 +                           <blendingMode>NORMAL</blendingMode>
151.15791 +                           <locked>false</locked>
151.15792 +                           <visible>true</visible>
151.15793 +                           <shapes>
151.15794 +                              <ellipse x1="20.0" x2="26.0" y1="32.0" y2="38.0">
151.15795 +                                 <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.15796 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.15797 +                              </ellipse>
151.15798 +                              <path>
151.15799 +                                 <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.15800 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.15801 +                                 <points>
151.15802 +                                    <point x="15.0" y="17.875" cp1x="13.5" cp1y="16.5" cp2x="16.5" cp2y="19.25"/>
151.15803 +                                    <point x="19.1875" y="17.1875" cp1x="18.4375" cp1y="18.375" cp2x="19.9375" cp2y="16.0"/>
151.15804 +                                    <point x="22.5" y="13.9375" cp1x="20.6875" cp1y="13.9375" cp2x="24.3125" cp2y="13.9375"/>
151.15805 +                                    <point x="25.6875" y="16.8125" cp1x="25.6875" cp1y="15.25" cp2x="25.6875" cp2y="18.375"/>
151.15806 +                                    <point x="22.5625" y="20.5625" cp1x="23.8125" cp1y="19.375" cp2x="21.3125" cp2y="21.75"/>
151.15807 +                                    <point x="20.0625" y="26.125" cp1x="20.0" cp1y="24.625" cp2x="20.125" cp2y="27.625"/>
151.15808 +                                    <point x="22.875" y="28.9375" cp1x="21.5625" cp1y="28.9375" cp2x="24.1875" cp2y="28.9375"/>
151.15809 +                                    <point x="25.9375" y="26.25" cp1x="25.9375" cp1y="27.875" cp2x="25.9375" cp2y="24.625"/>
151.15810 +                                    <point x="29.4375" y="22.3125" cp1x="28.25" cp1y="23.5625" cp2x="30.625" cp2y="21.0625"/>
151.15811 +                                    <point x="32.0" y="16.625" cp1x="32.0625" cp1y="19.9375" cp2x="31.9375" cp2y="13.3125"/>
151.15812 +                                    <point x="23.1875" y="8.0625" cp1x="29.3125" cp1y="8.0" cp2x="17.0625" cp2y="8.125"/>
151.15813 +                                    <point x="14.625" y="13.875" cp1x="15.0625" cp1y="12.625" cp2x="14.1875" cp2y="15.125"/>
151.15814 +                                 </points>
151.15815 +                              </path>
151.15816 +                           </shapes>
151.15817 +                           <effects/>
151.15818 +                        </layer>
151.15819 +                        <layer name="Button">
151.15820 +                           <opacity>1.0</opacity>
151.15821 +                           <fillOpacity>1.0</fillOpacity>
151.15822 +                           <blendingMode>NORMAL</blendingMode>
151.15823 +                           <locked>false</locked>
151.15824 +                           <visible>true</visible>
151.15825 +                           <shapes>
151.15826 +                              <ellipse x1="2.0" x2="44.0" y1="2.0" y2="44.0">
151.15827 +                                 <gradient cycleMethod="NO_CYCLE">
151.15828 +                                    <stop position="0.0" midpoint="0.5">
151.15829 +                                       <matte red="159" green="163" blue="168" alpha="255" hueOffset="-0.018518567" saturationOffset="-0.056954887" brightnessOffset="-0.086274505" alphaOffset="0"/>
151.15830 +                                    </stop>
151.15831 +                                    <stop position="0.30479452" midpoint="0.5">
151.15832 +                                       <matte red="116" green="122" blue="130" alpha="255" hueOffset="-0.015872955" saturationOffset="-0.0028340071" brightnessOffset="-0.2352941" alphaOffset="0"/>
151.15833 +                                    </stop>
151.15834 +                                    <stop position="0.6541096" midpoint="0.5">
151.15835 +                                       <matte red="96" green="104" blue="112" alpha="255" hueOffset="-0.027777791" saturationOffset="0.032330833" brightnessOffset="-0.30588236" alphaOffset="0"/>
151.15836 +                                    </stop>
151.15837 +                                    <stop position="1.0" midpoint="0.5">
151.15838 +                                       <matte red="118" green="128" blue="138" alpha="255" hueOffset="-0.027777791" saturationOffset="0.034401216" brightnessOffset="-0.20392156" alphaOffset="0"/>
151.15839 +                                    </stop>
151.15840 +                                 </gradient>
151.15841 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.15842 +                              </ellipse>
151.15843 +                              <ellipse x1="1.0" x2="45.0" y1="1.0" y2="45.0">
151.15844 +                                 <gradient cycleMethod="NO_CYCLE">
151.15845 +                                    <stop position="0.0" midpoint="0.5">
151.15846 +                                       <matte red="168" green="173" blue="178" alpha="255" hueOffset="-0.027777791" saturationOffset="-0.05434654" brightnessOffset="-0.04705882" alphaOffset="0"/>
151.15847 +                                    </stop>
151.15848 +                                    <stop position="1.0" midpoint="0.5">
151.15849 +                                       <matte red="101" green="109" blue="118" alpha="255" hueOffset="-0.022875786" saturationOffset="0.03354148" brightnessOffset="-0.28235295" alphaOffset="0"/>
151.15850 +                                    </stop>
151.15851 +                                 </gradient>
151.15852 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.15853 +                              </ellipse>
151.15854 +                              <ellipse x1="0.0" x2="46.0" y1="0.0" y2="46.0">
151.15855 +                                 <gradient cycleMethod="NO_CYCLE">
151.15856 +                                    <stop position="0.0" midpoint="0.5">
151.15857 +                                       <matte red="115" green="120" blue="126" alpha="255" hueOffset="-0.02020204" saturationOffset="-0.023224726" brightnessOffset="-0.2509804" alphaOffset="0"/>
151.15858 +                                    </stop>
151.15859 +                                    <stop position="1.0" midpoint="0.5">
151.15860 +                                       <matte red="26" green="34" blue="43" alpha="255" hueOffset="-0.022875786" saturationOffset="0.28482252" brightnessOffset="-0.5764706" alphaOffset="0"/>
151.15861 +                                    </stop>
151.15862 +                                 </gradient>
151.15863 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.15864 +                              </ellipse>
151.15865 +                           </shapes>
151.15866 +                           <effects>
151.15867 +                              <dropShadow blendingMode="NORMAL" opacity="0.43" angle="135" distance="2" spread="0" size="3">
151.15868 +                                 <matte red="0" green="0" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.15869 +                              </dropShadow>
151.15870 +                           </effects>
151.15871 +                        </layer>
151.15872 +                        <templateLayer fileName="11409f1bdec.png">
151.15873 +                           <layer name="Template" type="template">
151.15874 +                              <opacity>1.0</opacity>
151.15875 +                              <fillOpacity>1.0</fillOpacity>
151.15876 +                              <blendingMode>NORMAL</blendingMode>
151.15877 +                              <locked>false</locked>
151.15878 +                              <visible>false</visible>
151.15879 +                              <shapes/>
151.15880 +                              <effects/>
151.15881 +                           </layer>
151.15882 +                        </templateLayer>
151.15883 +                     </canvas>
151.15884 +                  </state>
151.15885 +               </backgroundStates>
151.15886 +               <foregroundStates/>
151.15887 +               <borderStates/>
151.15888 +               <regions/>
151.15889 +            </uiIconRegion>
151.15890 +            <uiIconRegion name="WarningIcon" subregion="true" key="warningIcon" basicKey="OptionPane.warningIcon">
151.15891 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.15892 +               <style>
151.15893 +                  <textForeground/>
151.15894 +                  <textBackground/>
151.15895 +                  <background/>
151.15896 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.15897 +                  <uiproperties/>
151.15898 +               </style>
151.15899 +               <backgroundStates>
151.15900 +                  <state stateKeys="Enabled">
151.15901 +                     <style>
151.15902 +                        <textForeground/>
151.15903 +                        <textBackground/>
151.15904 +                        <background/>
151.15905 +                        <uiproperties/>
151.15906 +                     </style>
151.15907 +                     <canvas>
151.15908 +                        <size width="48" height="48"/>
151.15909 +                        <nextLayerNameIndex>4</nextLayerNameIndex>
151.15910 +                        <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.15911 +                        <layer name="Layer 3">
151.15912 +                           <opacity>1.0</opacity>
151.15913 +                           <fillOpacity>1.0</fillOpacity>
151.15914 +                           <blendingMode>NORMAL</blendingMode>
151.15915 +                           <locked>false</locked>
151.15916 +                           <visible>true</visible>
151.15917 +                           <shapes>
151.15918 +                              <ellipse x1="21.0" x2="27.0" y1="35.0" y2="41.0">
151.15919 +                                 <matte red="16" green="16" blue="16" alpha="255" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.68235296" alphaOffset="0"/>
151.15920 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.15921 +                              </ellipse>
151.15922 +                              <path>
151.15923 +                                 <gradient cycleMethod="NO_CYCLE">
151.15924 +                                    <stop position="0.0" midpoint="0.5">
151.15925 +                                       <matte red="69" green="69" blue="69" alpha="255" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.4745098" alphaOffset="0"/>
151.15926 +                                    </stop>
151.15927 +                                    <stop position="1.0" midpoint="0.5">
151.15928 +                                       <matte red="0" green="0" blue="0" alpha="255" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.74509805" alphaOffset="0"/>
151.15929 +                                    </stop>
151.15930 +                                 </gradient>
151.15931 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.15932 +                                 <points>
151.15933 +                                    <point x="24.0" y="11.0" cp1x="22.0" cp1y="11.0" cp2x="26.0" cp2y="11.0"/>
151.15934 +                                    <point x="27.0" y="15.0" cp1x="27.0" cp1y="13.0" cp2x="27.0" cp2y="17.0"/>
151.15935 +                                    <point x="24.0" y="32.0" cp1x="25.3125" cp1y="32.0" cp2x="22.6875" cp2y="32.0"/>
151.15936 +                                    <point x="21.0" y="15.0" cp1x="21.0" cp1y="17.0" cp2x="21.0" cp2y="13.0"/>
151.15937 +                                 </points>
151.15938 +                              </path>
151.15939 +                           </shapes>
151.15940 +                           <effects/>
151.15941 +                        </layer>
151.15942 +                        <layer name="Button">
151.15943 +                           <opacity>1.0</opacity>
151.15944 +                           <fillOpacity>1.0</fillOpacity>
151.15945 +                           <blendingMode>NORMAL</blendingMode>
151.15946 +                           <locked>false</locked>
151.15947 +                           <visible>true</visible>
151.15948 +                           <shapes>
151.15949 +                              <path>
151.15950 +                                 <gradient cycleMethod="NO_CYCLE">
151.15951 +                                    <stop position="0.0" midpoint="0.5">
151.15952 +                                       <matte red="255" green="237" blue="139" alpha="255" uiDefaultParentName="nimbusAlertYellow" hueOffset="6.530881E-4" saturationOffset="-0.40784314" brightnessOffset="0.0" alphaOffset="0"/>
151.15953 +                                    </stop>
151.15954 +                                    <stop position="0.3458904" midpoint="0.5">
151.15955 +                                       <matte red="255" green="224" blue="63" alpha="255" uiDefaultParentName="nimbusAlertYellow" hueOffset="-3.9456785E-4" saturationOffset="-0.109803915" brightnessOffset="0.0" alphaOffset="0"/>
151.15956 +                                    </stop>
151.15957 +                                    <stop position="0.64041096" midpoint="0.5">
151.15958 +                                       <matte red="255" green="220" blue="35" alpha="255" uiDefaultParentName="nimbusAlertYellow" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.15959 +                                    </stop>
151.15960 +                                    <stop position="0.8253425" midpoint="0.5">
151.15961 +                                       <matte red="255" green="232" blue="47" alpha="255" uiDefaultParentName="nimbusAlertYellow" hueOffset="0.008085668" saturationOffset="-0.04705882" brightnessOffset="0.0" alphaOffset="0"/>
151.15962 +                                    </stop>
151.15963 +                                    <stop position="1.0" midpoint="0.5">
151.15964 +                                       <matte red="255" green="255" blue="82" alpha="255" uiDefaultParentName="nimbusAlertYellow" hueOffset="0.026515156" saturationOffset="-0.18431371" brightnessOffset="0.0" alphaOffset="0"/>
151.15965 +                                    </stop>
151.15966 +                                 </gradient>
151.15967 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.15968 +                                 <points>
151.15969 +                                    <point x="23.9375" y="2.0625" cp1x="22.1875" cp1y="2.0625" cp2x="25.6875" cp2y="2.0625"/>
151.15970 +                                    <point x="26.625" y="4.5625" cp1x="26.625" cp1y="4.5625" cp2x="26.625" cp2y="4.5625"/>
151.15971 +                                    <point x="44.75" y="38.4375" cp1x="44.75" cp1y="38.4375" cp2x="44.75" cp2y="38.4375"/>
151.15972 +                                    <point x="45.9375" y="42.0" cp1x="45.9375" cp1y="40.5625" cp2x="45.9375" cp2y="43.4375"/>
151.15973 +                                    <point x="42.4375" y="44.0" cp1x="42.4375" cp1y="44.0" cp2x="42.4375" cp2y="44.0"/>
151.15974 +                                    <point x="4.8125" y="44.0" cp1x="4.8125" cp1y="44.0" cp2x="4.8125" cp2y="44.0"/>
151.15975 +                                    <point x="2.1875" y="41.875" cp1x="2.25" cp1y="43.5" cp2x="2.125" cp2y="40.25"/>
151.15976 +                                    <point x="3.625" y="37.9375" cp1x="3.625" cp1y="37.9375" cp2x="3.625" cp2y="37.9375"/>
151.15977 +                                    <point x="21.1875" y="4.9375" cp1x="21.1875" cp1y="4.9375" cp2x="21.1875" cp2y="4.9375"/>
151.15978 +                                 </points>
151.15979 +                              </path>
151.15980 +                              <path>
151.15981 +                                 <gradient cycleMethod="NO_CYCLE">
151.15982 +                                    <stop position="0.0" midpoint="0.5">
151.15983 +                                       <matte red="216" green="181" blue="0" alpha="255" uiDefaultParentName="nimbusAlertYellow" hueOffset="-4.9102306E-4" saturationOffset="0.1372549" brightnessOffset="-0.15294117" alphaOffset="0"/>
151.15984 +                                    </stop>
151.15985 +                                    <stop position="1.0" midpoint="0.5">
151.15986 +                                       <matte red="166" green="138" blue="0" alpha="255" uiDefaultParentName="nimbusAlertYellow" hueOffset="-0.0015973002" saturationOffset="0.1372549" brightnessOffset="-0.3490196" alphaOffset="0"/>
151.15987 +                                    </stop>
151.15988 +                                 </gradient>
151.15989 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.15990 +                                 <points>
151.15991 +                                    <point x="24.0" y="1.0" cp1x="22.0" cp1y="1.0" cp2x="26.0" cp2y="1.0"/>
151.15992 +                                    <point x="27.1875" y="3.9375" cp1x="27.1875" cp1y="3.9375" cp2x="27.1875" cp2y="3.9375"/>
151.15993 +                                    <point x="45.25" y="37.4375" cp1x="45.25" cp1y="37.4375" cp2x="45.25" cp2y="37.4375"/>
151.15994 +                                    <point x="46.8125" y="42.25" cp1x="46.8125" cp1y="39.875" cp2x="46.8125" cp2y="44.625"/>
151.15995 +                                    <point x="44.0" y="45.0" cp1x="44.0" cp1y="45.0" cp2x="44.0" cp2y="45.0"/>
151.15996 +                                    <point x="4.0" y="45.0" cp1x="4.0" cp1y="45.0" cp2x="4.0" cp2y="45.0"/>
151.15997 +                                    <point x="1.1875" y="42.3125" cp1x="1.3125" cp1y="44.5625" cp2x="1.0625" cp2y="40.0625"/>
151.15998 +                                    <point x="2.875" y="37.5" cp1x="2.875" cp1y="37.5" cp2x="2.875" cp2y="37.5"/>
151.15999 +                                    <point x="21.0" y="4.0" cp1x="21.0" cp1y="4.0" cp2x="21.0" cp2y="4.0"/>
151.16000 +                                 </points>
151.16001 +                              </path>
151.16002 +                              <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.16003 +                                 <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.16004 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.16005 +                              </rectangle>
151.16006 +                           </shapes>
151.16007 +                           <effects>
151.16008 +                              <dropShadow blendingMode="NORMAL" opacity="0.22" angle="135" distance="2" spread="0" size="3">
151.16009 +                                 <matte red="0" green="0" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.16010 +                              </dropShadow>
151.16011 +                           </effects>
151.16012 +                        </layer>
151.16013 +                        <templateLayer fileName="1140a08420a.png">
151.16014 +                           <layer name="Template" type="template">
151.16015 +                              <opacity>1.0</opacity>
151.16016 +                              <fillOpacity>1.0</fillOpacity>
151.16017 +                              <blendingMode>NORMAL</blendingMode>
151.16018 +                              <locked>false</locked>
151.16019 +                              <visible>true</visible>
151.16020 +                              <shapes/>
151.16021 +                              <effects/>
151.16022 +                           </layer>
151.16023 +                        </templateLayer>
151.16024 +                     </canvas>
151.16025 +                  </state>
151.16026 +               </backgroundStates>
151.16027 +               <foregroundStates/>
151.16028 +               <borderStates/>
151.16029 +               <regions/>
151.16030 +            </uiIconRegion>
151.16031 +         </regions>
151.16032 +      </uiComponent>
151.16033 +      <uiComponent opaque="true" type="javax.swing.JPanel" name="Panel" ui="PanelUI" subregion="false">
151.16034 +         <stateTypes/>
151.16035 +         <contentMargins top="0" bottom="0" left="0" right="0"/>
151.16036 +         <style>
151.16037 +            <textForeground/>
151.16038 +            <textBackground/>
151.16039 +            <background/>
151.16040 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.16041 +            <cacheMode>NO_CACHING</cacheMode>
151.16042 +            <uiproperties/>
151.16043 +         </style>
151.16044 +         <backgroundStates>
151.16045 +            <state stateKeys="Disabled">
151.16046 +               <style>
151.16047 +                  <textForeground/>
151.16048 +                  <textBackground/>
151.16049 +                  <background/>
151.16050 +                  <uiproperties/>
151.16051 +               </style>
151.16052 +               <canvas>
151.16053 +                  <size width="100" height="30"/>
151.16054 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.16055 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.16056 +                  <layer name="Layer 1">
151.16057 +                     <opacity>1.0</opacity>
151.16058 +                     <fillOpacity>1.0</fillOpacity>
151.16059 +                     <blendingMode>NORMAL</blendingMode>
151.16060 +                     <locked>false</locked>
151.16061 +                     <visible>true</visible>
151.16062 +                     <shapes/>
151.16063 +                     <effects/>
151.16064 +                  </layer>
151.16065 +               </canvas>
151.16066 +            </state>
151.16067 +            <state stateKeys="Enabled">
151.16068 +               <style>
151.16069 +                  <textForeground/>
151.16070 +                  <textBackground/>
151.16071 +                  <background/>
151.16072 +                  <uiproperties/>
151.16073 +               </style>
151.16074 +               <canvas>
151.16075 +                  <size width="100" height="30"/>
151.16076 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.16077 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.16078 +                  <layer name="Layer 1">
151.16079 +                     <opacity>1.0</opacity>
151.16080 +                     <fillOpacity>1.0</fillOpacity>
151.16081 +                     <blendingMode>NORMAL</blendingMode>
151.16082 +                     <locked>false</locked>
151.16083 +                     <visible>true</visible>
151.16084 +                     <shapes/>
151.16085 +                     <effects/>
151.16086 +                  </layer>
151.16087 +               </canvas>
151.16088 +            </state>
151.16089 +            <state stateKeys="Focused">
151.16090 +               <style>
151.16091 +                  <textForeground/>
151.16092 +                  <textBackground/>
151.16093 +                  <background/>
151.16094 +                  <uiproperties/>
151.16095 +               </style>
151.16096 +               <canvas>
151.16097 +                  <size width="100" height="30"/>
151.16098 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.16099 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.16100 +                  <layer name="Layer 1">
151.16101 +                     <opacity>1.0</opacity>
151.16102 +                     <fillOpacity>1.0</fillOpacity>
151.16103 +                     <blendingMode>NORMAL</blendingMode>
151.16104 +                     <locked>false</locked>
151.16105 +                     <visible>true</visible>
151.16106 +                     <shapes/>
151.16107 +                     <effects/>
151.16108 +                  </layer>
151.16109 +               </canvas>
151.16110 +            </state>
151.16111 +            <state stateKeys="MouseOver">
151.16112 +               <style>
151.16113 +                  <textForeground/>
151.16114 +                  <textBackground/>
151.16115 +                  <background/>
151.16116 +                  <uiproperties/>
151.16117 +               </style>
151.16118 +               <canvas>
151.16119 +                  <size width="100" height="30"/>
151.16120 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.16121 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.16122 +                  <layer name="Layer 1">
151.16123 +                     <opacity>1.0</opacity>
151.16124 +                     <fillOpacity>1.0</fillOpacity>
151.16125 +                     <blendingMode>NORMAL</blendingMode>
151.16126 +                     <locked>false</locked>
151.16127 +                     <visible>true</visible>
151.16128 +                     <shapes/>
151.16129 +                     <effects/>
151.16130 +                  </layer>
151.16131 +               </canvas>
151.16132 +            </state>
151.16133 +            <state stateKeys="Pressed">
151.16134 +               <style>
151.16135 +                  <textForeground/>
151.16136 +                  <textBackground/>
151.16137 +                  <background/>
151.16138 +                  <uiproperties/>
151.16139 +               </style>
151.16140 +               <canvas>
151.16141 +                  <size width="100" height="30"/>
151.16142 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.16143 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.16144 +                  <layer name="Layer 1">
151.16145 +                     <opacity>1.0</opacity>
151.16146 +                     <fillOpacity>1.0</fillOpacity>
151.16147 +                     <blendingMode>NORMAL</blendingMode>
151.16148 +                     <locked>false</locked>
151.16149 +                     <visible>true</visible>
151.16150 +                     <shapes/>
151.16151 +                     <effects/>
151.16152 +                  </layer>
151.16153 +               </canvas>
151.16154 +            </state>
151.16155 +         </backgroundStates>
151.16156 +         <foregroundStates/>
151.16157 +         <borderStates/>
151.16158 +         <regions/>
151.16159 +      </uiComponent>
151.16160 +      <uiComponent opaque="false" type="javax.swing.JProgressBar" name="ProgressBar" ui="ProgressBarUI" subregion="false">
151.16161 +         <stateTypes>
151.16162 +            <stateType key="Enabled"/>
151.16163 +            <stateType key="Disabled"/>
151.16164 +            <stateType key="Indeterminate">
151.16165 +               <codeSnippet><![CDATA[
151.16166 +                        return ((JProgressBar)c).isIndeterminate();
151.16167 +               ]]></codeSnippet>
151.16168 +            </stateType>
151.16169 +            <stateType key="Finished">
151.16170 +               <codeSnippet><![CDATA[
151.16171 +                        return ((JProgressBar)c).getPercentComplete() == 1.0;
151.16172 +                ]]></codeSnippet>
151.16173 +            </stateType>
151.16174 +         </stateTypes>
151.16175 +         <contentMargins top="0" bottom="0" left="0" right="0"/>
151.16176 +         <style>
151.16177 +            <textForeground/>
151.16178 +            <textBackground/>
151.16179 +            <background/>
151.16180 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.16181 +            <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.16182 +            <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.16183 +            <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.16184 +            <uiproperties>
151.16185 +               <uiProperty name="tileWhenIndeterminate" type="BOOLEAN" value="true"/>
151.16186 +               <uiProperty name="tileWidth" type="INT" value="27"/>
151.16187 +               <uiProperty name="paintOutsideClip" type="BOOLEAN" value="true"/>
151.16188 +               <uiProperty name="rotateText" type="BOOLEAN" value="true"/>
151.16189 +               <uiProperty name="vertictalSize" type="DIMENSION">
151.16190 +                  <dimension width="19" height="150"/>
151.16191 +               </uiProperty>
151.16192 +               <uiProperty name="horizontalSize" type="DIMENSION">
151.16193 +                  <dimension width="150" height="19"/>
151.16194 +               </uiProperty>
151.16195 +               <uiProperty name="cycleTime" type="INT" value="250"/>
151.16196 +            </uiproperties>
151.16197 +         </style>
151.16198 +         <backgroundStates>
151.16199 +            <state stateKeys="Enabled">
151.16200 +               <style>
151.16201 +                  <textForeground/>
151.16202 +                  <textBackground/>
151.16203 +                  <background/>
151.16204 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.16205 +                  <uiproperties/>
151.16206 +               </style>
151.16207 +               <canvas>
151.16208 +                  <size width="29" height="19"/>
151.16209 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.16210 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.16211 +                  <layer name="Layer 1">
151.16212 +                     <opacity>1.0</opacity>
151.16213 +                     <fillOpacity>1.0</fillOpacity>
151.16214 +                     <blendingMode>NORMAL</blendingMode>
151.16215 +                     <locked>false</locked>
151.16216 +                     <visible>true</visible>
151.16217 +                     <shapes>
151.16218 +                        <rectangle x1="3.0" x2="26.0" y1="3.0" y2="16.0" rounding="0.0">
151.16219 +                           <gradient cycleMethod="NO_CYCLE">
151.16220 +                              <stop position="0.038709678" midpoint="0.5">
151.16221 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.16222 +                              </stop>
151.16223 +                              <stop position="0.08064516" midpoint="0.5">
151.16224 +                                 <matte red="235" green="236" blue="238" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.097921275" brightnessOffset="0.18823528" alphaOffset="0"/>
151.16225 +                              </stop>
151.16226 +                              <stop position="0.3935484" midpoint="0.5">
151.16227 +                                 <matte red="218" green="219" blue="222" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0138888955" saturationOffset="-0.0925083" brightnessOffset="0.12549019" alphaOffset="0"/>
151.16228 +                              </stop>
151.16229 +                              <stop position="0.43870968" midpoint="0.5">
151.16230 +                                 <matte red="206" green="208" blue="212" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.08222443" brightnessOffset="0.086274505" alphaOffset="0"/>
151.16231 +                              </stop>
151.16232 +                              <stop position="0.90967745" midpoint="0.5">
151.16233 +                                 <matte red="227" green="229" blue="233" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.08477524" brightnessOffset="0.16862744" alphaOffset="0"/>
151.16234 +                              </stop>
151.16235 +                              <stop position="0.91935486" midpoint="0.5">
151.16236 +                                 <matte red="249" green="251" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.086996906" brightnessOffset="0.25490195" alphaOffset="0"/>
151.16237 +                              </stop>
151.16238 +                           </gradient>
151.16239 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.16240 +                        </rectangle>
151.16241 +                        <rectangle x1="2.0" x2="27.0" y1="2.0" y2="17.0" rounding="0.0">
151.16242 +                           <gradient cycleMethod="NO_CYCLE">
151.16243 +                              <stop position="0.0" midpoint="0.5">
151.16244 +                                 <matte red="136" green="139" blue="145" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.04845735" brightnessOffset="-0.17647058" alphaOffset="0"/>
151.16245 +                              </stop>
151.16246 +                              <stop position="1.0" midpoint="0.5">
151.16247 +                                 <matte red="174" green="177" blue="183" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.061345987" brightnessOffset="-0.027450979" alphaOffset="0"/>
151.16248 +                              </stop>
151.16249 +                           </gradient>
151.16250 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.16251 +                        </rectangle>
151.16252 +                     </shapes>
151.16253 +                     <effects/>
151.16254 +                  </layer>
151.16255 +                  <templateLayer fileName="1140514801d.png">
151.16256 +                     <layer name="Template" type="template">
151.16257 +                        <opacity>1.0</opacity>
151.16258 +                        <fillOpacity>1.0</fillOpacity>
151.16259 +                        <blendingMode>NORMAL</blendingMode>
151.16260 +                        <locked>false</locked>
151.16261 +                        <visible>true</visible>
151.16262 +                        <shapes/>
151.16263 +                        <effects/>
151.16264 +                     </layer>
151.16265 +                  </templateLayer>
151.16266 +               </canvas>
151.16267 +            </state>
151.16268 +            <state stateKeys="Disabled">
151.16269 +               <style>
151.16270 +                  <textForeground>
151.16271 +                      <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.16272 +                  </textForeground>
151.16273 +                  <textBackground/>
151.16274 +                  <background/>
151.16275 +                  <inherit-textForeground>false</inherit-textForeground>
151.16276 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.16277 +                  <uiproperties/>
151.16278 +               </style>
151.16279 +               <canvas>
151.16280 +                  <size width="29" height="19"/>
151.16281 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.16282 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.16283 +                  <layer name="Layer 1">
151.16284 +                     <opacity>1.0</opacity>
151.16285 +                     <fillOpacity>1.0</fillOpacity>
151.16286 +                     <blendingMode>NORMAL</blendingMode>
151.16287 +                     <locked>false</locked>
151.16288 +                     <visible>true</visible>
151.16289 +                     <shapes>
151.16290 +                        <rectangle x1="3.0" x2="26.0" y1="3.0" y2="16.0" rounding="0.0">
151.16291 +                           <gradient cycleMethod="NO_CYCLE">
151.16292 +                              <stop position="0.038709678" midpoint="0.5">
151.16293 +                                 <matte red="235" green="236" blue="239" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0138888955" saturationOffset="-0.09378991" brightnessOffset="0.19215685" alphaOffset="0"/>
151.16294 +                              </stop>
151.16295 +                              <stop position="0.08064516" midpoint="0.5">
151.16296 +                                 <matte red="225" green="227" blue="231" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.08455229" brightnessOffset="0.1607843" alphaOffset="0"/>
151.16297 +                              </stop>
151.16298 +                              <stop position="0.3935484" midpoint="0.5">
151.16299 +                                 <matte red="217" green="220" blue="223" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.08362049" brightnessOffset="0.12941176" alphaOffset="0"/>
151.16300 +                              </stop>
151.16301 +                              <stop position="0.43870968" midpoint="0.5">
151.16302 +                                 <matte red="210" green="212" blue="217" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07826825" brightnessOffset="0.10588235" alphaOffset="0"/>
151.16303 +                              </stop>
151.16304 +                              <stop position="0.90967745" midpoint="0.5">
151.16305 +                                 <matte red="221" green="223" blue="228" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07982456" brightnessOffset="0.1490196" alphaOffset="0"/>
151.16306 +                              </stop>
151.16307 +                              <stop position="0.92258066" midpoint="0.5">
151.16308 +                                 <matte red="230" green="232" blue="237" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.08099045" brightnessOffset="0.18431371" alphaOffset="0"/>
151.16309 +                              </stop>
151.16310 +                           </gradient>
151.16311 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.16312 +                        </rectangle>
151.16313 +                        <rectangle x1="2.0" x2="27.0" y1="2.0" y2="17.0" rounding="0.0">
151.16314 +                           <gradient cycleMethod="NO_CYCLE">
151.16315 +                              <stop position="0.05483871" midpoint="0.5">
151.16316 +                                 <matte red="175" green="178" blue="184" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.061613273" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.16317 +                              </stop>
151.16318 +                              <stop position="0.9516129" midpoint="0.5">
151.16319 +                                 <matte red="193" green="197" blue="203" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.01111114" saturationOffset="-0.061265234" brightnessOffset="0.05098039" alphaOffset="0"/>
151.16320 +                              </stop>
151.16321 +                           </gradient>
151.16322 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.16323 +                        </rectangle>
151.16324 +                     </shapes>
151.16325 +                     <effects/>
151.16326 +                  </layer>
151.16327 +                  <templateLayer fileName="1141fe7dbd7.png">
151.16328 +                     <layer name="Template" type="template">
151.16329 +                        <opacity>1.0</opacity>
151.16330 +                        <fillOpacity>1.0</fillOpacity>
151.16331 +                        <blendingMode>NORMAL</blendingMode>
151.16332 +                        <locked>false</locked>
151.16333 +                        <visible>false</visible>
151.16334 +                        <shapes/>
151.16335 +                        <effects/>
151.16336 +                     </layer>
151.16337 +                  </templateLayer>
151.16338 +               </canvas>
151.16339 +            </state>
151.16340 +         </backgroundStates>
151.16341 +         <foregroundStates>
151.16342 +            <state stateKeys="Enabled">
151.16343 +               <style>
151.16344 +                  <textForeground/>
151.16345 +                  <textBackground/>
151.16346 +                  <background/>
151.16347 +                  <uiproperties/>
151.16348 +               </style>
151.16349 +               <canvas>
151.16350 +                  <size width="27" height="19"/>
151.16351 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.16352 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.16353 +                  <layer name="Layer 1">
151.16354 +                     <opacity>1.0</opacity>
151.16355 +                     <fillOpacity>1.0</fillOpacity>
151.16356 +                     <blendingMode>NORMAL</blendingMode>
151.16357 +                     <locked>false</locked>
151.16358 +                     <visible>true</visible>
151.16359 +                     <shapes>
151.16360 +                        <rectangle x1="3.0" x2="26.0" y1="3.0" y2="16.0" rounding="0.0">
151.16361 +                           <gradient cycleMethod="NO_CYCLE">
151.16362 +                              <stop position="0.038709678" midpoint="0.5">
151.16363 +                                 <matte red="236" green="209" blue="179" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.003940329" saturationOffset="-0.7375322" brightnessOffset="0.17647058" alphaOffset="0"/>
151.16364 +                              </stop>
151.16365 +                              <stop position="0.08387097" midpoint="0.5">
151.16366 +                                 <matte red="219" green="167" blue="107" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.005506739" saturationOffset="-0.46764207" brightnessOffset="0.109803915" alphaOffset="0"/>
151.16367 +                              </stop>
151.16368 +                              <stop position="0.46129033" midpoint="0.5">
151.16369 +                                 <matte red="203" green="127" blue="42" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.0042127445" saturationOffset="-0.18595415" brightnessOffset="0.04705882" alphaOffset="0"/>
151.16370 +                              </stop>
151.16371 +                              <stop position="0.5193548" midpoint="0.5">
151.16372 +                                 <matte red="192" green="102" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.0047626942" saturationOffset="0.02094239" brightnessOffset="0.0039215684" alphaOffset="0"/>
151.16373 +                              </stop>
151.16374 +                              <stop position="0.91612905" midpoint="0.5">
151.16375 +                                 <matte red="232" green="142" blue="40" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.0047626942" saturationOffset="-0.15147138" brightnessOffset="0.1607843" alphaOffset="0"/>
151.16376 +                              </stop>
151.16377 +                              <stop position="0.93225807" midpoint="0.5">
151.16378 +                                 <matte red="255" green="177" blue="75" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.010665476" saturationOffset="-0.27317524" brightnessOffset="0.25098038" alphaOffset="0"/>
151.16379 +                              </stop>
151.16380 +                           </gradient>
151.16381 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.16382 +                        </rectangle>
151.16383 +                        <rectangle x1="2.0" x2="27.0" y1="2.0" y2="17.0" rounding="0.0">
151.16384 +                           <gradient cycleMethod="NO_CYCLE">
151.16385 +                              <stop position="0.038709678" midpoint="0.5">
151.16386 +                                 <matte red="152" green="62" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.015796512" saturationOffset="0.02094239" brightnessOffset="-0.15294117" alphaOffset="0"/>
151.16387 +                              </stop>
151.16388 +                              <stop position="0.07096774" midpoint="0.5">
151.16389 +                                 <matte red="172" green="82" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.004321605" saturationOffset="0.02094239" brightnessOffset="-0.0745098" alphaOffset="0"/>
151.16390 +                              </stop>
151.16391 +                              <stop position="0.4903226" midpoint="0.5">
151.16392 +                                 <matte red="165" green="75" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.008021399" saturationOffset="0.02094239" brightnessOffset="-0.10196078" alphaOffset="0"/>
151.16393 +                              </stop>
151.16394 +                              <stop position="0.9032258" midpoint="0.5">
151.16395 +                                 <matte red="185" green="101" blue="37" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.011706904" saturationOffset="-0.1790576" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.16396 +                              </stop>
151.16397 +                              <stop position="0.9451613" midpoint="0.5">
151.16398 +                                 <matte red="114" green="24" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.048691254" saturationOffset="0.02094239" brightnessOffset="-0.3019608" alphaOffset="0"/>
151.16399 +                              </stop>
151.16400 +                           </gradient>
151.16401 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.16402 +                        </rectangle>
151.16403 +                        <path>
151.16404 +                           <matte red="191" green="98" blue="4" alpha="99" uiDefaultParentName="nimbusOrange" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="-156"/>
151.16405 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.16406 +                           <points>
151.16407 +                              <point x="3.0" y="0.6333333333333334" cp1x="5.0" cp1y="0.6333333333333334" cp2x="1.0" cp2y="0.6333333333333334"/>
151.16408 +                              <point x="0.6333333333333334" y="3.0" cp1x="0.6333333333333334" cp1y="1.0" cp2x="0.6333333333333334" cp2y="5.0"/>
151.16409 +                              <point x="0.6333333333333334" y="16.0" cp1x="0.6333333333333334" cp1y="14.0" cp2x="0.6333333333333334" cp2y="18.0"/>
151.16410 +                              <point x="3.0" y="18.46666666666669" cp1x="1.0" cp1y="18.46666666666669" cp2x="5.0" cp2y="18.46666666666669"/>
151.16411 +                              <point x="27.0" y="18.46666666666669" cp1x="27.0" cp1y="18.46666666666669" cp2x="27.0" cp2y="18.46666666666669"/>
151.16412 +                              <point x="27.0" y="17.0" cp1x="27.0" cp1y="17.0" cp2x="27.0" cp2y="17.0"/>
151.16413 +                              <point x="2.0" y="17.0" cp1x="2.0" cp1y="17.0" cp2x="2.0" cp2y="17.0"/>
151.16414 +                              <point x="2.0" y="2.0" cp1x="2.0" cp1y="2.0" cp2x="2.0" cp2y="2.0"/>
151.16415 +                              <point x="27.0" y="2.0" cp1x="27.0" cp1y="2.0" cp2x="27.0" cp2y="2.0"/>
151.16416 +                              <point x="27.0" y="0.6000000000000001" cp1x="27.0" cp1y="0.6000000000000001" cp2x="27.0" cp2y="0.6000000000000001"/>
151.16417 +                           </points>
151.16418 +                        </path>
151.16419 +                     </shapes>
151.16420 +                     <effects/>
151.16421 +                  </layer>
151.16422 +                  <templateLayer fileName="1140518fed0.png">
151.16423 +                     <layer name="Template" type="template">
151.16424 +                        <opacity>1.0</opacity>
151.16425 +                        <fillOpacity>1.0</fillOpacity>
151.16426 +                        <blendingMode>NORMAL</blendingMode>
151.16427 +                        <locked>false</locked>
151.16428 +                        <visible>true</visible>
151.16429 +                        <shapes/>
151.16430 +                        <effects/>
151.16431 +                     </layer>
151.16432 +                  </templateLayer>
151.16433 +               </canvas>
151.16434 +            </state>
151.16435 +            <state stateKeys="Enabled+Finished">
151.16436 +               <style>
151.16437 +                  <textForeground/>
151.16438 +                  <textBackground/>
151.16439 +                  <background/>
151.16440 +                  <uiproperties/>
151.16441 +               </style>
151.16442 +               <canvas>
151.16443 +                  <size width="27" height="19"/>
151.16444 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.16445 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.16446 +                  <layer name="Layer 1">
151.16447 +                     <opacity>1.0</opacity>
151.16448 +                     <fillOpacity>1.0</fillOpacity>
151.16449 +                     <blendingMode>NORMAL</blendingMode>
151.16450 +                     <locked>false</locked>
151.16451 +                     <visible>true</visible>
151.16452 +                     <shapes>
151.16453 +                        <rectangle x1="3.0" x2="24.0" y1="3.0" y2="16.0" rounding="0.0">
151.16454 +                           <gradient cycleMethod="NO_CYCLE">
151.16455 +                              <stop position="0.038709678" midpoint="0.5">
151.16456 +                                 <matte red="236" green="209" blue="179" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.003940329" saturationOffset="-0.7375322" brightnessOffset="0.17647058" alphaOffset="0"/>
151.16457 +                              </stop>
151.16458 +                              <stop position="0.08387097" midpoint="0.5">
151.16459 +                                 <matte red="219" green="167" blue="107" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.005506739" saturationOffset="-0.46764207" brightnessOffset="0.109803915" alphaOffset="0"/>
151.16460 +                              </stop>
151.16461 +                              <stop position="0.46129033" midpoint="0.5">
151.16462 +                                 <matte red="203" green="127" blue="42" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.0042127445" saturationOffset="-0.18595415" brightnessOffset="0.04705882" alphaOffset="0"/>
151.16463 +                              </stop>
151.16464 +                              <stop position="0.5193548" midpoint="0.5">
151.16465 +                                 <matte red="192" green="102" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.0047626942" saturationOffset="0.02094239" brightnessOffset="0.0039215684" alphaOffset="0"/>
151.16466 +                              </stop>
151.16467 +                              <stop position="0.91612905" midpoint="0.5">
151.16468 +                                 <matte red="232" green="142" blue="40" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.0047626942" saturationOffset="-0.15147138" brightnessOffset="0.1607843" alphaOffset="0"/>
151.16469 +                              </stop>
151.16470 +                              <stop position="0.93225807" midpoint="0.5">
151.16471 +                                 <matte red="255" green="177" blue="75" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.010665476" saturationOffset="-0.27317524" brightnessOffset="0.25098038" alphaOffset="0"/>
151.16472 +                              </stop>
151.16473 +                           </gradient>
151.16474 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.16475 +                        </rectangle>
151.16476 +                        <rectangle x1="2.0" x2="25.0" y1="2.0" y2="17.0" rounding="0.0">
151.16477 +                           <gradient cycleMethod="NO_CYCLE">
151.16478 +                              <stop position="0.038709678" midpoint="0.5">
151.16479 +                                 <matte red="152" green="62" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.015796512" saturationOffset="0.02094239" brightnessOffset="-0.15294117" alphaOffset="0"/>
151.16480 +                              </stop>
151.16481 +                              <stop position="0.07096774" midpoint="0.5">
151.16482 +                                 <matte red="172" green="82" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.004321605" saturationOffset="0.02094239" brightnessOffset="-0.0745098" alphaOffset="0"/>
151.16483 +                              </stop>
151.16484 +                              <stop position="0.4903226" midpoint="0.5">
151.16485 +                                 <matte red="165" green="75" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.008021399" saturationOffset="0.02094239" brightnessOffset="-0.10196078" alphaOffset="0"/>
151.16486 +                              </stop>
151.16487 +                              <stop position="0.9032258" midpoint="0.5">
151.16488 +                                 <matte red="185" green="101" blue="37" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.011706904" saturationOffset="-0.1790576" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.16489 +                              </stop>
151.16490 +                              <stop position="0.9451613" midpoint="0.5">
151.16491 +                                 <matte red="114" green="24" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.048691254" saturationOffset="0.02094239" brightnessOffset="-0.3019608" alphaOffset="0"/>
151.16492 +                              </stop>
151.16493 +                           </gradient>
151.16494 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.16495 +                        </rectangle>
151.16496 +                        <path>
151.16497 +                           <matte red="191" green="98" blue="4" alpha="99" uiDefaultParentName="nimbusOrange" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="-156"/>
151.16498 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.16499 +                           <points>
151.16500 +                              <point x="2.7333333333333343" y="0.6333333333333334" cp1x="2.7333333333333343" cp1y="0.6333333333333334" cp2x="0.7333333333333334" cp2y="0.6333333333333334"/>
151.16501 +                              <point x="0.6000000000000001" y="3.033333333333333" cp1x="0.6000000000000001" cp1y="1.0333333333333334" cp2x="0.6000000000000001" cp2y="3.033333333333333"/>
151.16502 +                              <point x="0.6000000000000001" y="16.13333333333334" cp1x="0.6000000000000001" cp1y="16.13333333333334" cp2x="0.6000000000000001" cp2y="18.13333333333334"/>
151.16503 +                              <point x="2.9" y="18.400000000000016" cp1x="0.9" cp1y="18.400000000000016" cp2x="2.9" cp2y="18.400000000000016"/>
151.16504 +                              <point x="23.999999999999986" y="18.366666666666678" cp1x="23.999999999999986" cp1y="18.366666666666678" cp2x="25.970929244126516" cp2y="18.386523706031824"/>
151.16505 +                              <point x="26.33333333333335" y="16.166666666666664" cp1x="26.300000000000015" cp1y="18.10000000000005" cp2x="26.33333333333335" cp2y="16.166666666666664"/>
151.16506 +                              <point x="26.366666666666678" y="13.46666666666666" cp1x="26.366666666666678" cp1y="13.46666666666666" cp2x="26.366666666666678" cp2y="13.46666666666666"/>
151.16507 +                              <point x="26.333333333333343" y="6.633333333333332" cp1x="26.333333333333343" cp1y="6.633333333333332" cp2x="26.333333333333343" cp2y="6.633333333333332"/>
151.16508 +                              <point x="26.33333333333332" y="3.0333333333333328" cp1x="26.33333333333332" cp1y="3.0333333333333328" cp2x="26.337550663750736" cp2y="1.0829955749951623"/>
151.16509 +                              <point x="24.300000000000004" y="0.6666666666666667" cp1x="26.265946019413946" cp1y="0.6837889338880168" cp2x="24.300000000000004" cp2y="0.6666666666666667"/>
151.16510 +                           </points>
151.16511 +                        </path>
151.16512 +                     </shapes>
151.16513 +                     <effects/>
151.16514 +                  </layer>
151.16515 +               </canvas>
151.16516 +            </state>
151.16517 +            <state stateKeys="Enabled+Indeterminate">
151.16518 +               <style>
151.16519 +                  <textForeground/>
151.16520 +                  <textBackground/>
151.16521 +                  <background/>
151.16522 +                  <uiproperties>
151.16523 +                     <uiProperty name="progressPadding" type="INT" value="3"/>
151.16524 +                  </uiproperties>
151.16525 +               </style>
151.16526 +               <canvas>
151.16527 +                  <size width="30" height="13"/>
151.16528 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.16529 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.16530 +                  <layer name="Layer 1">
151.16531 +                     <opacity>1.0</opacity>
151.16532 +                     <fillOpacity>1.0</fillOpacity>
151.16533 +                     <blendingMode>NORMAL</blendingMode>
151.16534 +                     <locked>false</locked>
151.16535 +                     <visible>true</visible>
151.16536 +                     <shapes>
151.16537 +                        <rectangle x1="20.0" x2="21.0" y1="0.0" y2="13.0" rounding="0.0">
151.16538 +                           <matte red="255" green="255" blue="255" alpha="85" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-170"/>
151.16539 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.16540 +                        </rectangle>
151.16541 +                        <rectangle x1="10.0" x2="11.0" y1="0.0" y2="13.0" rounding="0.0">
151.16542 +                           <matte red="255" green="255" blue="255" alpha="82" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-173"/>
151.16543 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.16544 +                        </rectangle>
151.16545 +                        <path>
151.16546 +                           <gradient cycleMethod="NO_CYCLE">
151.16547 +                              <stop position="0.0" midpoint="0.5">
151.16548 +                                 <matte red="219" green="167" blue="107" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.005506739" saturationOffset="-0.46764207" brightnessOffset="0.109803915" alphaOffset="0"/>
151.16549 +                              </stop>
151.16550 +                              <stop position="0.41290322" midpoint="0.5">
151.16551 +                                 <matte red="203" green="127" blue="42" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.0042127445" saturationOffset="-0.18595415" brightnessOffset="0.04705882" alphaOffset="0"/>
151.16552 +                              </stop>
151.16553 +                              <stop position="0.47096774" midpoint="0.5">
151.16554 +                                 <matte red="192" green="102" blue="0" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.0047626942" saturationOffset="0.02094239" brightnessOffset="0.0039215684" alphaOffset="0"/>
151.16555 +                              </stop>
151.16556 +                              <stop position="1.0" midpoint="0.5">
151.16557 +                                 <matte red="252" green="162" blue="60" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.0047626942" saturationOffset="-0.21715283" brightnessOffset="0.23921567" alphaOffset="0"/>
151.16558 +                              </stop>
151.16559 +                           </gradient>
151.16560 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.16561 +                           <points>
151.16562 +                              <point x="0.0" y="6.0" cp1x="0.0" cp1y="6.0" cp2x="2.678571428571433" cp2y="6.000000000000001"/>
151.16563 +                              <point x="12.357142857142872" y="1.0357142857142834" cp1x="6.142857142857157" cp1y="1.0000000000000004" cp2x="12.357142857142872" cp2y="1.0357142857142834"/>
151.16564 +                              <point x="16.28571428571428" y="1.0357142857142858" cp1x="16.28571428571428" cp1y="1.0357142857142858" cp2x="24.615384615384638" cp2y="1.0384615384615354"/>
151.16565 +                              <point x="28.0" y="6.0" cp1x="22.71428571428573" cp1y="6.035714285714286" cp2x="28.0" cp2y="6.0"/>
151.16566 +                              <point x="30.0" y="6.0" cp1x="30.0" cp1y="6.0" cp2x="30.0" cp2y="6.0"/>
151.16567 +                              <point x="30.0" y="7.0" cp1x="30.0" cp1y="7.0" cp2x="30.0" cp2y="7.0"/>
151.16568 +                              <point x="28.0" y="7.0" cp1x="28.0" cp1y="7.0" cp2x="22.67857142857143" cp2y="7.035714285714285"/>
151.16569 +                              <point x="16.285714285714295" y="12.000000000000007" cp1x="25.26923076923079" cp1y="12.038461538461538" cp2x="16.285714285714295" cp2y="12.000000000000007"/>
151.16570 +                              <point x="12.785714285714295" y="12.0" cp1x="12.785714285714295" cp1y="12.0" cp2x="6.071428571428592" cp2y="12.0"/>
151.16571 +                              <point x="0.0" y="7.0" cp1x="2.6071428571428568" cp1y="7.035714285714286" cp2x="0.0" cp2y="7.0"/>
151.16572 +                           </points>
151.16573 +                        </path>
151.16574 +                        <rectangle x1="0.0" x2="30.0" y1="0.0" y2="13.0" rounding="0.0">
151.16575 +                           <gradient cycleMethod="NO_CYCLE">
151.16576 +                              <stop position="0.051612902" midpoint="0.5">
151.16577 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.16578 +                              </stop>
151.16579 +                              <stop position="0.08064516" midpoint="0.5">
151.16580 +                                 <matte red="235" green="236" blue="238" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.097921275" brightnessOffset="0.18823528" alphaOffset="0"/>
151.16581 +                              </stop>
151.16582 +                              <stop position="0.5064516" midpoint="0.5">
151.16583 +                                 <matte red="217" green="214" blue="212" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.54444444" saturationOffset="-0.08748484" brightnessOffset="0.10588235" alphaOffset="0"/>
151.16584 +                              </stop>
151.16585 +                              <stop position="0.87419355" midpoint="0.5">
151.16586 +                                 <matte red="227" green="229" blue="233" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.08477524" brightnessOffset="0.16862744" alphaOffset="0"/>
151.16587 +                              </stop>
151.16588 +                              <stop position="0.9032258" midpoint="0.5">
151.16589 +                                 <matte red="249" green="251" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.086996906" brightnessOffset="0.25490195" alphaOffset="0"/>
151.16590 +                              </stop>
151.16591 +                           </gradient>
151.16592 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.16593 +                        </rectangle>
151.16594 +                     </shapes>
151.16595 +                     <effects/>
151.16596 +                  </layer>
151.16597 +                  <templateLayer fileName="11405266ab0.png">
151.16598 +                     <layer name="Template" type="template">
151.16599 +                        <opacity>1.0</opacity>
151.16600 +                        <fillOpacity>1.0</fillOpacity>
151.16601 +                        <blendingMode>NORMAL</blendingMode>
151.16602 +                        <locked>false</locked>
151.16603 +                        <visible>true</visible>
151.16604 +                        <shapes/>
151.16605 +                        <effects/>
151.16606 +                     </layer>
151.16607 +                  </templateLayer>
151.16608 +               </canvas>
151.16609 +            </state>
151.16610 +            <state stateKeys="Disabled">
151.16611 +               <style>
151.16612 +                  <textForeground/>
151.16613 +                  <textBackground/>
151.16614 +                  <background/>
151.16615 +                  <uiproperties/>
151.16616 +               </style>
151.16617 +               <canvas>
151.16618 +                  <size width="27" height="19"/>
151.16619 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.16620 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.16621 +                  <layer name="Layer 1">
151.16622 +                     <opacity>1.0</opacity>
151.16623 +                     <fillOpacity>1.0</fillOpacity>
151.16624 +                     <blendingMode>NORMAL</blendingMode>
151.16625 +                     <locked>false</locked>
151.16626 +                     <visible>true</visible>
151.16627 +                     <shapes>
151.16628 +                        <rectangle x1="3.0" x2="26.0" y1="3.0" y2="16.0" rounding="0.0">
151.16629 +                           <gradient cycleMethod="NO_CYCLE">
151.16630 +                              <stop position="0.038709678" midpoint="0.5">
151.16631 +                                 <matte red="220" green="215" blue="211" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.009704903" saturationOffset="-0.9381485" brightnessOffset="0.11372548" alphaOffset="0"/>
151.16632 +                              </stop>
151.16633 +                              <stop position="0.08387097" midpoint="0.5">
151.16634 +                                 <matte red="215" green="203" blue="191" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-4.4563413E-4" saturationOffset="-0.86742973" brightnessOffset="0.09411764" alphaOffset="0"/>
151.16635 +                              </stop>
151.16636 +                              <stop position="0.46129033" midpoint="0.5">
151.16637 +                                 <matte red="211" green="192" blue="173" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-4.4563413E-4" saturationOffset="-0.79896283" brightnessOffset="0.07843137" alphaOffset="0"/>
151.16638 +                              </stop>
151.16639 +                              <stop position="0.5193548" midpoint="0.5">
151.16640 +                                 <matte red="208" green="185" blue="161" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.0013274103" saturationOffset="-0.7530961" brightnessOffset="0.06666666" alphaOffset="0"/>
151.16641 +                              </stop>
151.16642 +                              <stop position="0.91612905" midpoint="0.5">
151.16643 +                                 <matte red="219" green="196" blue="172" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.0013274103" saturationOffset="-0.7644457" brightnessOffset="0.109803915" alphaOffset="0"/>
151.16644 +                              </stop>
151.16645 +                              <stop position="0.93225807" midpoint="0.5">
151.16646 +                                 <matte red="225" green="206" blue="182" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.009244293" saturationOffset="-0.78794646" brightnessOffset="0.13333333" alphaOffset="0"/>
151.16647 +                              </stop>
151.16648 +                           </gradient>
151.16649 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.16650 +                        </rectangle>
151.16651 +                        <rectangle x1="2.0" x2="27.0" y1="2.0" y2="17.0" rounding="0.0">
151.16652 +                           <gradient cycleMethod="NO_CYCLE">
151.16653 +                              <stop position="0.038709678" midpoint="0.5">
151.16654 +                                 <matte red="197" green="174" blue="161" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.023593787" saturationOffset="-0.7963165" brightnessOffset="0.02352941" alphaOffset="0"/>
151.16655 +                              </stop>
151.16656 +                              <stop position="0.07096774" midpoint="0.5">
151.16657 +                                 <matte red="202" green="179" blue="161" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.010608241" saturationOffset="-0.7760873" brightnessOffset="0.043137252" alphaOffset="0"/>
151.16658 +                              </stop>
151.16659 +                              <stop position="0.4903226" midpoint="0.5">
151.16660 +                                 <matte red="200" green="177" blue="161" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.015402906" saturationOffset="-0.7840576" brightnessOffset="0.035294116" alphaOffset="0"/>
151.16661 +                              </stop>
151.16662 +                              <stop position="0.9032258" midpoint="0.5">
151.16663 +                                 <matte red="206" green="185" blue="171" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.017112307" saturationOffset="-0.8091547" brightnessOffset="0.058823526" alphaOffset="0"/>
151.16664 +                              </stop>
151.16665 +                              <stop position="0.9451613" midpoint="0.5">
151.16666 +                                 <matte red="186" green="163" blue="161" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.07044564" saturationOffset="-0.844649" brightnessOffset="-0.019607842" alphaOffset="0"/>
151.16667 +                              </stop>
151.16668 +                           </gradient>
151.16669 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.16670 +                        </rectangle>
151.16671 +                        <path>
151.16672 +                           <matte red="218" green="211" blue="198" alpha="99" uiDefaultParentName="nimbusOrange" hueOffset="0.024554357" saturationOffset="-0.8873145" brightnessOffset="0.10588235" alphaOffset="-156"/>
151.16673 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.16674 +                           <points>
151.16675 +                              <point x="3.0" y="0.6333333333333334" cp1x="5.0" cp1y="0.6333333333333334" cp2x="1.0" cp2y="0.6333333333333334"/>
151.16676 +                              <point x="0.6333333333333334" y="3.0" cp1x="0.6333333333333334" cp1y="1.0" cp2x="0.6333333333333334" cp2y="5.0"/>
151.16677 +                              <point x="0.6333333333333334" y="16.0" cp1x="0.6333333333333334" cp1y="14.0" cp2x="0.6333333333333334" cp2y="18.0"/>
151.16678 +                              <point x="3.0" y="18.46666666666669" cp1x="1.0" cp1y="18.46666666666669" cp2x="5.0" cp2y="18.46666666666669"/>
151.16679 +                              <point x="27.0" y="18.46666666666669" cp1x="27.0" cp1y="18.46666666666669" cp2x="27.0" cp2y="18.46666666666669"/>
151.16680 +                              <point x="27.0" y="17.0" cp1x="27.0" cp1y="17.0" cp2x="27.0" cp2y="17.0"/>
151.16681 +                              <point x="2.0" y="17.0" cp1x="2.0" cp1y="17.0" cp2x="2.0" cp2y="17.0"/>
151.16682 +                              <point x="2.0" y="2.0" cp1x="2.0" cp1y="2.0" cp2x="2.0" cp2y="2.0"/>
151.16683 +                              <point x="27.0" y="2.0" cp1x="27.0" cp1y="2.0" cp2x="27.0" cp2y="2.0"/>
151.16684 +                              <point x="27.0" y="0.6000000000000001" cp1x="27.0" cp1y="0.6000000000000001" cp2x="27.0" cp2y="0.6000000000000001"/>
151.16685 +                           </points>
151.16686 +                        </path>
151.16687 +                     </shapes>
151.16688 +                     <effects/>
151.16689 +                  </layer>
151.16690 +               </canvas>
151.16691 +            </state>
151.16692 +            <state stateKeys="Disabled+Finished">
151.16693 +               <style>
151.16694 +                  <textForeground/>
151.16695 +                  <textBackground/>
151.16696 +                  <background/>
151.16697 +                  <uiproperties/>
151.16698 +               </style>
151.16699 +               <canvas>
151.16700 +                  <size width="27" height="19"/>
151.16701 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.16702 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.16703 +                  <layer name="Layer 1">
151.16704 +                     <opacity>1.0</opacity>
151.16705 +                     <fillOpacity>1.0</fillOpacity>
151.16706 +                     <blendingMode>NORMAL</blendingMode>
151.16707 +                     <locked>false</locked>
151.16708 +                     <visible>true</visible>
151.16709 +                     <shapes>
151.16710 +                        <rectangle x1="3.0" x2="24.0" y1="3.0" y2="16.0" rounding="0.0">
151.16711 +                           <gradient cycleMethod="NO_CYCLE">
151.16712 +                              <stop position="0.038709678" midpoint="0.5">
151.16713 +                                 <matte red="220" green="215" blue="211" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.009704903" saturationOffset="-0.9381485" brightnessOffset="0.11372548" alphaOffset="0"/>
151.16714 +                              </stop>
151.16715 +                              <stop position="0.08387097" midpoint="0.5">
151.16716 +                                 <matte red="215" green="203" blue="191" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-4.4563413E-4" saturationOffset="-0.86742973" brightnessOffset="0.09411764" alphaOffset="0"/>
151.16717 +                              </stop>
151.16718 +                              <stop position="0.46129033" midpoint="0.5">
151.16719 +                                 <matte red="211" green="192" blue="173" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-4.4563413E-4" saturationOffset="-0.79896283" brightnessOffset="0.07843137" alphaOffset="0"/>
151.16720 +                              </stop>
151.16721 +                              <stop position="0.5193548" midpoint="0.5">
151.16722 +                                 <matte red="208" green="185" blue="161" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.0013274103" saturationOffset="-0.7530961" brightnessOffset="0.06666666" alphaOffset="0"/>
151.16723 +                              </stop>
151.16724 +                              <stop position="0.91612905" midpoint="0.5">
151.16725 +                                 <matte red="219" green="196" blue="172" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.0013274103" saturationOffset="-0.7644457" brightnessOffset="0.109803915" alphaOffset="0"/>
151.16726 +                              </stop>
151.16727 +                              <stop position="0.93225807" midpoint="0.5">
151.16728 +                                 <matte red="225" green="206" blue="182" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.009244293" saturationOffset="-0.78794646" brightnessOffset="0.13333333" alphaOffset="0"/>
151.16729 +                              </stop>
151.16730 +                           </gradient>
151.16731 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.16732 +                        </rectangle>
151.16733 +                        <rectangle x1="2.0" x2="25.0" y1="2.0" y2="17.0" rounding="0.0">
151.16734 +                           <gradient cycleMethod="NO_CYCLE">
151.16735 +                              <stop position="0.038709678" midpoint="0.5">
151.16736 +                                 <matte red="197" green="174" blue="161" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.023593787" saturationOffset="-0.7963165" brightnessOffset="0.02352941" alphaOffset="0"/>
151.16737 +                              </stop>
151.16738 +                              <stop position="0.07096774" midpoint="0.5">
151.16739 +                                 <matte red="202" green="179" blue="161" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.010608241" saturationOffset="-0.7760873" brightnessOffset="0.043137252" alphaOffset="0"/>
151.16740 +                              </stop>
151.16741 +                              <stop position="0.4903226" midpoint="0.5">
151.16742 +                                 <matte red="200" green="177" blue="161" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.015402906" saturationOffset="-0.7840576" brightnessOffset="0.035294116" alphaOffset="0"/>
151.16743 +                              </stop>
151.16744 +                              <stop position="0.9032258" midpoint="0.5">
151.16745 +                                 <matte red="206" green="185" blue="171" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.017112307" saturationOffset="-0.8091547" brightnessOffset="0.058823526" alphaOffset="0"/>
151.16746 +                              </stop>
151.16747 +                              <stop position="0.9451613" midpoint="0.5">
151.16748 +                                 <matte red="186" green="163" blue="161" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-0.07044564" saturationOffset="-0.844649" brightnessOffset="-0.019607842" alphaOffset="0"/>
151.16749 +                              </stop>
151.16750 +                           </gradient>
151.16751 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.16752 +                        </rectangle>
151.16753 +                        <path>
151.16754 +                           <matte red="218" green="211" blue="198" alpha="99" uiDefaultParentName="nimbusOrange" hueOffset="0.024554357" saturationOffset="-0.8873145" brightnessOffset="0.10588235" alphaOffset="-156"/>
151.16755 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.16756 +                           <points>
151.16757 +                              <point x="2.9666666666666637" y="0.5999999999999999" cp1x="4.966666666666667" cp1y="0.5999999999999999" cp2x="0.9666666666666643" cp2y="0.5999999999999999"/>
151.16758 +                              <point x="0.5999999999999989" y="2.966666666666667" cp1x="0.5999999999999989" cp1y="0.9666666666666661" cp2x="0.5999999999999989" cp2y="4.966666666666666"/>
151.16759 +                              <point x="0.5999999999999989" y="15.966666666666676" cp1x="0.5999999999999989" cp1y="13.96666666666667" cp2x="0.5999999999999989" cp2y="17.966666666666683"/>
151.16760 +                              <point x="2.9666666666666637" y="18.433333333333373" cp1x="0.9666666666666643" cp1y="18.433333333333373" cp2x="4.966666666666667" cp2y="18.433333333333373"/>
151.16761 +                              <point x="25.500000000000025" y="18.400000000000038" cp1x="25.500000000000025" cp1y="18.400000000000038" cp2x="25.500000000000025" cp2y="18.400000000000038"/>
151.16762 +                              <point x="26.23333333333335" y="17.466666666666697" cp1x="26.23333333333335" cp1y="17.466666666666697" cp2x="26.23333333333335" cp2y="17.466666666666697"/>
151.16763 +                              <point x="26.266666666666662" y="10.53333333333335" cp1x="26.266666666666662" cp1y="10.53333333333335" cp2x="26.266666666666662" cp2y="10.53333333333335"/>
151.16764 +                              <point x="26.299999999999997" y="8.666666666666663" cp1x="26.299999999999997" cp1y="8.666666666666663" cp2x="26.299999999999997" cp2y="8.666666666666663"/>
151.16765 +                              <point x="26.299999999999986" y="1.8666666666666663" cp1x="26.299999999999986" cp1y="1.8666666666666663" cp2x="26.299999999999986" cp2y="1.8666666666666663"/>
151.16766 +                              <point x="25.799999999999983" y="0.6666666666666657" cp1x="25.799999999999983" cp1y="0.6666666666666657" cp2x="25.799999999999983" cp2y="0.6666666666666657"/>
151.16767 +                           </points>
151.16768 +                        </path>
151.16769 +                     </shapes>
151.16770 +                     <effects/>
151.16771 +                  </layer>
151.16772 +               </canvas>
151.16773 +            </state>
151.16774 +            <state stateKeys="Disabled+Indeterminate">
151.16775 +               <style>
151.16776 +                  <textForeground/>
151.16777 +                  <textBackground/>
151.16778 +                  <background/>
151.16779 +                  <uiproperties>
151.16780 +                     <uiProperty name="progressPadding" type="INT" value="3"/>
151.16781 +                  </uiproperties>
151.16782 +               </style>
151.16783 +               <canvas>
151.16784 +                  <size width="30" height="13"/>
151.16785 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.16786 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.16787 +                  <layer name="Layer 1">
151.16788 +                     <opacity>1.0</opacity>
151.16789 +                     <fillOpacity>1.0</fillOpacity>
151.16790 +                     <blendingMode>NORMAL</blendingMode>
151.16791 +                     <locked>false</locked>
151.16792 +                     <visible>true</visible>
151.16793 +                     <shapes>
151.16794 +                        <path>
151.16795 +                           <gradient cycleMethod="NO_CYCLE">
151.16796 +                              <stop position="0.0" midpoint="0.5">
151.16797 +                                 <matte red="215" green="203" blue="191" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-4.4563413E-4" saturationOffset="-0.86742973" brightnessOffset="0.09411764" alphaOffset="0"/>
151.16798 +                              </stop>
151.16799 +                              <stop position="0.41290322" midpoint="0.5">
151.16800 +                                 <matte red="211" green="192" blue="173" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="-4.4563413E-4" saturationOffset="-0.79896283" brightnessOffset="0.07843137" alphaOffset="0"/>
151.16801 +                              </stop>
151.16802 +                              <stop position="0.47096774" midpoint="0.5">
151.16803 +                                 <matte red="208" green="185" blue="161" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.0013274103" saturationOffset="-0.7530961" brightnessOffset="0.06666666" alphaOffset="0"/>
151.16804 +                              </stop>
151.16805 +                              <stop position="1.0" midpoint="0.5">
151.16806 +                                 <matte red="224" green="202" blue="179" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.0014062226" saturationOffset="-0.77816474" brightnessOffset="0.12941176" alphaOffset="0"/>
151.16807 +                              </stop>
151.16808 +                           </gradient>
151.16809 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.16810 +                           <points>
151.16811 +                              <point x="0.0" y="6.0" cp1x="0.0" cp1y="6.0" cp2x="2.678571428571433" cp2y="6.000000000000001"/>
151.16812 +                              <point x="12.357142857142872" y="1.0357142857142834" cp1x="6.0" cp1y="1.0" cp2x="12.357142857142872" cp2y="1.0357142857142834"/>
151.16813 +                              <point x="16.28571428571428" y="1.0357142857142858" cp1x="16.28571428571428" cp1y="1.0357142857142858" cp2x="20.285714285714278" cp2y="1.0357142857142858"/>
151.16814 +                              <point x="28.0" y="6.0" cp1x="22.71428571428573" cp1y="6.035714285714286" cp2x="28.0" cp2y="6.0"/>
151.16815 +                              <point x="30.0" y="6.0" cp1x="30.0" cp1y="6.0" cp2x="30.0" cp2y="6.0"/>
151.16816 +                              <point x="30.0" y="7.0" cp1x="30.0" cp1y="7.0" cp2x="30.0" cp2y="7.0"/>
151.16817 +                              <point x="28.0" y="7.0" cp1x="28.0" cp1y="7.0" cp2x="22.67857142857143" cp2y="7.035714285714285"/>
151.16818 +                              <point x="16.285714285714295" y="12.000000000000007" cp1x="20.28571428571428" cp1y="12.000000000000007" cp2x="16.285714285714295" cp2y="12.000000000000007"/>
151.16819 +                              <point x="12.785714285714295" y="12.0" cp1x="12.785714285714295" cp1y="12.0" cp2x="6.214285714285712" cp2y="11.964285714285714"/>
151.16820 +                              <point x="0.0" y="7.0" cp1x="2.6071428571428568" cp1y="7.035714285714286" cp2x="0.0" cp2y="7.0"/>
151.16821 +                           </points>
151.16822 +                        </path>
151.16823 +                        <rectangle x1="0.0" x2="30.0" y1="0.0" y2="13.0" rounding="0.0">
151.16824 +                           <gradient cycleMethod="NO_CYCLE">
151.16825 +                              <stop position="0.051612902" midpoint="0.5">
151.16826 +                                 <matte red="225" green="228" blue="232" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.015872955" saturationOffset="-0.0803539" brightnessOffset="0.16470587" alphaOffset="0"/>
151.16827 +                              </stop>
151.16828 +                              <stop position="0.08064516" midpoint="0.5">
151.16829 +                                 <matte red="220" green="222" blue="227" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07968931" brightnessOffset="0.14509803" alphaOffset="0"/>
151.16830 +                              </stop>
151.16831 +                              <stop position="0.5064516" midpoint="0.5">
151.16832 +                                 <matte red="215" green="216" blue="220" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.02222228" saturationOffset="-0.08779904" brightnessOffset="0.11764705" alphaOffset="0"/>
151.16833 +                              </stop>
151.16834 +                              <stop position="0.87419355" midpoint="0.5">
151.16835 +                                 <matte red="218" green="220" blue="226" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0138888955" saturationOffset="-0.075128086" brightnessOffset="0.14117646" alphaOffset="0"/>
151.16836 +                              </stop>
151.16837 +                              <stop position="0.9032258" midpoint="0.5">
151.16838 +                                 <matte red="224" green="226" blue="232" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0138888955" saturationOffset="-0.07604356" brightnessOffset="0.16470587" alphaOffset="0"/>
151.16839 +                              </stop>
151.16840 +                           </gradient>
151.16841 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.16842 +                        </rectangle>
151.16843 +                     </shapes>
151.16844 +                     <effects/>
151.16845 +                  </layer>
151.16846 +                  <templateLayer fileName="1141fee46ff.png">
151.16847 +                     <layer name="Template" type="template">
151.16848 +                        <opacity>1.0</opacity>
151.16849 +                        <fillOpacity>1.0</fillOpacity>
151.16850 +                        <blendingMode>NORMAL</blendingMode>
151.16851 +                        <locked>false</locked>
151.16852 +                        <visible>false</visible>
151.16853 +                        <shapes/>
151.16854 +                        <effects/>
151.16855 +                     </layer>
151.16856 +                  </templateLayer>
151.16857 +               </canvas>
151.16858 +            </state>
151.16859 +         </foregroundStates>
151.16860 +         <borderStates/>
151.16861 +         <regions/>
151.16862 +      </uiComponent>
151.16863 +      <uiComponent opaque="false" type="javax.swing.JSeparator" name="Separator" ui="SeparatorUI" subregion="false">
151.16864 +         <stateTypes/>
151.16865 +         <contentMargins top="0" bottom="0" left="0" right="0"/>
151.16866 +         <style>
151.16867 +            <textForeground/>
151.16868 +            <textBackground/>
151.16869 +            <background/>
151.16870 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.16871 +            <cacheMode>NO_CACHING</cacheMode>
151.16872 +            <uiproperties/>
151.16873 +         </style>
151.16874 +         <backgroundStates>
151.16875 +            <state stateKeys="Enabled" inverted="true">
151.16876 +               <style>
151.16877 +                  <textForeground/>
151.16878 +                  <textBackground/>
151.16879 +                  <background/>
151.16880 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.16881 +                  <uiproperties/>
151.16882 +               </style>
151.16883 +               <canvas>
151.16884 +                  <size width="100" height="3"/>
151.16885 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.16886 +                  <stretchingInsets top="0" bottom="0" left="40" right="40"/>
151.16887 +                  <layer name="Layer 1">
151.16888 +                     <opacity>1.0</opacity>
151.16889 +                     <fillOpacity>1.0</fillOpacity>
151.16890 +                     <blendingMode>NORMAL</blendingMode>
151.16891 +                     <locked>false</locked>
151.16892 +                     <visible>true</visible>
151.16893 +                     <shapes>
151.16894 +                        <rectangle x1="0.0" x2="100.0" y1="1.0" y2="2.0" rounding="0.0">
151.16895 +                           <matte red="167" green="172" blue="180" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.008547008" saturationOffset="-0.03830409" brightnessOffset="-0.039215684" alphaOffset="0"/>
151.16896 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.16897 +                        </rectangle>
151.16898 +                     </shapes>
151.16899 +                     <effects/>
151.16900 +                  </layer>
151.16901 +               </canvas>
151.16902 +            </state>
151.16903 +         </backgroundStates>
151.16904 +         <foregroundStates/>
151.16905 +         <borderStates/>
151.16906 +         <regions/>
151.16907 +      </uiComponent>
151.16908 +      <uiComponent opaque="true" type="javax.swing.JScrollBar" name="ScrollBar" ui="ScrollBarUI" subregion="false">
151.16909 +         <stateTypes/>
151.16910 +         <contentMargins top="0" bottom="0" left="0" right="0"/>
151.16911 +         <style>
151.16912 +            <textForeground/>
151.16913 +            <textBackground/>
151.16914 +            <background/>
151.16915 +            <uiproperties>
151.16916 +               <uiProperty name="incrementButtonGap" type="INT" value="-8"/>
151.16917 +               <uiProperty name="decrementButtonGap" type="INT" value="-8"/>
151.16918 +               <uiProperty name="thumbHeight" type="INT" value="15"/>
151.16919 +               <uiProperty name="minimumThumbSize" type="DIMENSION">
151.16920 +                  <dimension width="29" height="29"/>
151.16921 +               </uiProperty>
151.16922 +               <uiProperty name="maximumThumbSize" type="DIMENSION">
151.16923 +                  <dimension width="1000" height="1000"/>
151.16924 +               </uiProperty>
151.16925 +            </uiproperties>
151.16926 +         </style>
151.16927 +         <backgroundStates/>
151.16928 +         <foregroundStates/>
151.16929 +         <borderStates/>
151.16930 +         <regions>
151.16931 +            <uiComponent opaque="false" componentName="ScrollBar.button" type="javax.swing.plaf.synth.SynthArrowButton" name="ArrowButton" ui="SynthArrowButtonUI" subregion="true">
151.16932 +               <stateTypes/>
151.16933 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.16934 +               <style>
151.16935 +                  <textForeground/>
151.16936 +                  <textBackground/>
151.16937 +                  <background/>
151.16938 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.16939 +                  <uiproperties>
151.16940 +                     <uiProperty name="size" type="INT" value="25"/>
151.16941 +                  </uiproperties>
151.16942 +               </style>
151.16943 +               <backgroundStates/>
151.16944 +               <foregroundStates>
151.16945 +                  <state stateKeys="Enabled">
151.16946 +                     <style>
151.16947 +                        <textForeground/>
151.16948 +                        <textBackground/>
151.16949 +                        <background/>
151.16950 +                        <uiproperties/>
151.16951 +                     </style>
151.16952 +                     <canvas>
151.16953 +                        <size width="25" height="15"/>
151.16954 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.16955 +                        <stretchingInsets top="1" bottom="1" left="1" right="1"/>
151.16956 +                        <layer name="Layer 1">
151.16957 +                           <opacity>1.0</opacity>
151.16958 +                           <fillOpacity>1.0</fillOpacity>
151.16959 +                           <blendingMode>NORMAL</blendingMode>
151.16960 +                           <locked>false</locked>
151.16961 +                           <visible>true</visible>
151.16962 +                           <shapes>
151.16963 +                              <path>
151.16964 +                                 <matte red="255" green="255" blue="255" alpha="90" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-165"/>
151.16965 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.16966 +                                 <points>
151.16967 +                                    <point x="16.441176470588236" y="2.0" cp1x="15.705882352941176" cp1y="2.0" cp2x="17.176470588235297" cp2y="2.0"/>
151.16968 +                                    <point x="17.52941176470588" y="6.323529411764706" cp1x="16.617647058823525" cp1y="4.117647058823527" cp2x="18.441176470588236" cp2y="8.529411764705884"/>
151.16969 +                                    <point x="20.41176470588234" y="11.323529411764707" cp1x="18.05882352941175" cp1y="9.47058823529412" cp2x="22.76470588235293" cp2y="13.176470588235293"/>
151.16970 +                                    <point x="24.499999999999993" y="14.235294117647056" cp1x="24.499999999999993" cp1y="14.235294117647056" cp2x="24.499999999999993" cp2y="14.235294117647056"/>
151.16971 +                                    <point x="24.352941176470587" y="14.823529411764707" cp1x="24.352941176470587" cp1y="14.823529411764707" cp2x="24.352941176470587" cp2y="14.823529411764707"/>
151.16972 +                                    <point x="19.823529411764667" y="11.970588235294116" cp1x="21.382352941176432" cp1y="13.352941176470583" cp2x="18.264705882352903" cp2y="10.588235294117649"/>
151.16973 +                                    <point x="16.970588235294116" y="7.294117647058823" cp1x="17.76470588235294" cp1y="9.294117647058822" cp2x="16.176470588235293" cp2y="5.294117647058824"/>
151.16974 +                                 </points>
151.16975 +                              </path>
151.16976 +                              <path>
151.16977 +                                 <gradient cycleMethod="NO_CYCLE">
151.16978 +                                    <stop position="0.0" midpoint="0.5">
151.16979 +                                       <matte red="45" green="45" blue="46" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.08878718" brightnessOffset="-0.5647059" alphaOffset="0"/>
151.16980 +                                    </stop>
151.16981 +                                    <stop position="0.5928144" midpoint="0.5">
151.16982 +                                       <matte red="64" green="65" blue="66" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.080223285" brightnessOffset="-0.4862745" alphaOffset="0"/>
151.16983 +                                    </stop>
151.16984 +                                    <stop position="0.994012" midpoint="0.5">
151.16985 +                                       <matte red="129" green="131" blue="131" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.111111104" saturationOffset="-0.09525914" brightnessOffset="-0.23137254" alphaOffset="0"/>
151.16986 +                                    </stop>
151.16987 +                                 </gradient>
151.16988 +                                 <paintPoints x1="0.924999994635583" y1="0.9285714285714283" x2="0.9249999986092253" y2="0.004201680672268871"/>
151.16989 +                                 <points>
151.16990 +                                    <point x="12.0" y="4.0" cp1x="12.0" cp1y="4.0" cp2x="12.0" cp2y="4.0"/>
151.16991 +                                    <point x="12.0" y="11.0" cp1x="12.0" cp1y="11.0" cp2x="12.0" cp2y="11.0"/>
151.16992 +                                    <point x="4.9411764705882355" y="7.499999999999999" cp1x="4.9411764705882355" cp1y="7.499999999999999" cp2x="4.9411764705882355" cp2y="7.499999999999999"/>
151.16993 +                                 </points>
151.16994 +                              </path>
151.16995 +                              <path>
151.16996 +                                 <gradient cycleMethod="NO_CYCLE">
151.16997 +                                    <stop position="0.0" midpoint="0.5">
151.16998 +                                       <matte red="112" green="114" blue="115" alpha="119" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.055555522" saturationOffset="-0.08443936" brightnessOffset="-0.29411766" alphaOffset="-136"/>
151.16999 +                                    </stop>
151.17000 +                                    <stop position="1.0" midpoint="0.5">
151.17001 +                                       <matte red="252" green="254" blue="255" alpha="77" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.055555522" saturationOffset="-0.09876161" brightnessOffset="0.25490195" alphaOffset="-178"/>
151.17002 +                                    </stop>
151.17003 +                                 </gradient>
151.17004 +                                 <paintPoints x1="0.0" y1="0.5" x2="0.573529411764707" y2="0.5"/>
151.17005 +                                 <points>
151.17006 +                                    <point x="-0.058823529411764705" y="1.0294117647058822" cp1x="-0.058823529411764705" cp1y="1.0294117647058822" cp2x="-0.058823529411764705" cp2y="1.0294117647058822"/>
151.17007 +                                    <point x="0.9705882352941175" y="1.4999999999999987" cp1x="0.9705882352941175" cp1y="1.4999999999999987" cp2x="0.9705882352941175" cp2y="1.4999999999999987"/>
151.17008 +                                    <point x="1.9411764705882355" y="2.0294117647058822" cp1x="1.9411764705882355" cp1y="2.0294117647058822" cp2x="1.9411764705882355" cp2y="2.0294117647058822"/>
151.17009 +                                    <point x="1.9411764705882355" y="15.029411764705882" cp1x="1.9411764705882355" cp1y="15.029411764705882" cp2x="1.9411764705882355" cp2y="15.029411764705882"/>
151.17010 +                                    <point x="-0.058823529411764705" y="15.029411764705882" cp1x="-0.058823529411764705" cp1y="15.029411764705882" cp2x="-0.058823529411764705" cp2y="15.029411764705882"/>
151.17011 +                                 </points>
151.17012 +                              </path>
151.17013 +                              <path>
151.17014 +                                 <gradient cycleMethod="NO_CYCLE">
151.17015 +                                    <stop position="0.0" midpoint="0.5">
151.17016 +                                       <matte red="147" green="149" blue="152" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.01111114" saturationOffset="-0.07763158" brightnessOffset="-0.1490196" alphaOffset="0"/>
151.17017 +                                    </stop>
151.17018 +                                    <stop position="0.065868266" midpoint="0.5">
151.17019 +                                       <matte red="211" green="212" blue="212" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.111111104" saturationOffset="-0.10580933" brightnessOffset="0.086274505" alphaOffset="0"/>
151.17020 +                                    </stop>
151.17021 +                                    <stop position="0.11377245" midpoint="0.5">
151.17022 +                                       <matte red="240" green="241" blue="242" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.102261856" brightnessOffset="0.20392156" alphaOffset="0"/>
151.17023 +                                    </stop>
151.17024 +                                    <stop position="0.3473054" midpoint="0.5">
151.17025 +                                       <matte red="217" green="221" blue="224" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.039682567" saturationOffset="-0.079276316" brightnessOffset="0.13333333" alphaOffset="0"/>
151.17026 +                                    </stop>
151.17027 +                                    <stop position="0.6407186" midpoint="0.5">
151.17028 +                                       <matte red="210" green="214" blue="218" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.07382907" brightnessOffset="0.109803915" alphaOffset="0"/>
151.17029 +                                    </stop>
151.17030 +                                    <stop position="0.92814374" midpoint="0.5">
151.17031 +                                       <matte red="242" green="246" blue="249" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.039682567" saturationOffset="-0.08241387" brightnessOffset="0.23137254" alphaOffset="0"/>
151.17032 +                                    </stop>
151.17033 +                                 </gradient>
151.17034 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.17035 +                                 <points>
151.17036 +                                    <point x="0.0" y="0.0" cp1x="0.0" cp1y="0.0" cp2x="0.0" cp2y="0.0"/>
151.17037 +                                    <point x="17.0" y="0.0" cp1x="17.0" cp1y="0.0" cp2x="17.0" cp2y="0.0"/>
151.17038 +                                    <point x="17.0" y="5.0" cp1x="16.294117647058837" cp1y="1.9705882352941178" cp2x="17.705882352941163" cp2y="8.029411764705882"/>
151.17039 +                                    <point x="20.0" y="11.0" cp1x="18.0" cp1y="9.058823529411764" cp2x="22.0" cp2y="12.941176470588236"/>
151.17040 +                                    <point x="25.0" y="14.0" cp1x="25.0" cp1y="14.0" cp2x="25.0" cp2y="14.0"/>
151.17041 +                                    <point x="25.0" y="15.0" cp1x="25.0" cp1y="15.0" cp2x="25.0" cp2y="15.0"/>
151.17042 +                                    <point x="0.0" y="15.0" cp1x="0.0" cp1y="15.0" cp2x="0.0" cp2y="15.0"/>
151.17043 +                                 </points>
151.17044 +                              </path>
151.17045 +                              <path>
151.17046 +                                 <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.17047 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.17048 +                                 <points>
151.17049 +                                    <point x="25.0" y="15.0" cp1x="25.0" cp1y="15.0" cp2x="25.0" cp2y="15.0"/>
151.17050 +                                 </points>
151.17051 +                              </path>
151.17052 +                           </shapes>
151.17053 +                           <effects/>
151.17054 +                        </layer>
151.17055 +                        <templateLayer fileName="113e702fdf8.png">
151.17056 +                           <layer name="Template" type="template">
151.17057 +                              <opacity>1.0</opacity>
151.17058 +                              <fillOpacity>1.0</fillOpacity>
151.17059 +                              <blendingMode>NORMAL</blendingMode>
151.17060 +                              <locked>false</locked>
151.17061 +                              <visible>false</visible>
151.17062 +                              <shapes/>
151.17063 +                              <effects/>
151.17064 +                           </layer>
151.17065 +                        </templateLayer>
151.17066 +                     </canvas>
151.17067 +                  </state>
151.17068 +                  <state stateKeys="Disabled">
151.17069 +                     <style>
151.17070 +                        <textForeground/>
151.17071 +                        <textBackground/>
151.17072 +                        <background/>
151.17073 +                        <uiproperties/>
151.17074 +                     </style>
151.17075 +                     <canvas>
151.17076 +                        <size width="25" height="15"/>
151.17077 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.17078 +                        <stretchingInsets top="1" bottom="1" left="1" right="1"/>
151.17079 +                        <layer name="Layer 1">
151.17080 +                           <opacity>1.0</opacity>
151.17081 +                           <fillOpacity>1.0</fillOpacity>
151.17082 +                           <blendingMode>NORMAL</blendingMode>
151.17083 +                           <locked>false</locked>
151.17084 +                           <visible>true</visible>
151.17085 +                           <shapes>
151.17086 +                              <path>
151.17087 +                                 <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.17088 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.17089 +                                 <points>
151.17090 +                                    <point x="25.0" y="15.0" cp1x="25.0" cp1y="15.0" cp2x="25.0" cp2y="15.0"/>
151.17091 +                                 </points>
151.17092 +                              </path>
151.17093 +                           </shapes>
151.17094 +                           <effects/>
151.17095 +                        </layer>
151.17096 +                     </canvas>
151.17097 +                  </state>
151.17098 +                  <state stateKeys="MouseOver">
151.17099 +                     <style>
151.17100 +                        <textForeground/>
151.17101 +                        <textBackground/>
151.17102 +                        <background/>
151.17103 +                        <uiproperties/>
151.17104 +                     </style>
151.17105 +                     <canvas>
151.17106 +                        <size width="25" height="15"/>
151.17107 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.17108 +                        <stretchingInsets top="1" bottom="1" left="1" right="1"/>
151.17109 +                        <layer name="Layer 1">
151.17110 +                           <opacity>1.0</opacity>
151.17111 +                           <fillOpacity>1.0</fillOpacity>
151.17112 +                           <blendingMode>NORMAL</blendingMode>
151.17113 +                           <locked>false</locked>
151.17114 +                           <visible>true</visible>
151.17115 +                           <shapes>
151.17116 +                              <path>
151.17117 +                                 <matte red="255" green="255" blue="255" alpha="90" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-165"/>
151.17118 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.17119 +                                 <points>
151.17120 +                                    <point x="16.441176470588236" y="2.0" cp1x="15.705882352941176" cp1y="2.0" cp2x="17.176470588235297" cp2y="2.0"/>
151.17121 +                                    <point x="17.52941176470588" y="6.323529411764706" cp1x="16.617647058823525" cp1y="4.117647058823527" cp2x="18.441176470588236" cp2y="8.529411764705884"/>
151.17122 +                                    <point x="20.41176470588234" y="11.323529411764707" cp1x="18.05882352941175" cp1y="9.47058823529412" cp2x="22.76470588235293" cp2y="13.176470588235293"/>
151.17123 +                                    <point x="24.499999999999993" y="14.235294117647056" cp1x="24.499999999999993" cp1y="14.235294117647056" cp2x="24.499999999999993" cp2y="14.235294117647056"/>
151.17124 +                                    <point x="24.352941176470587" y="14.823529411764707" cp1x="24.352941176470587" cp1y="14.823529411764707" cp2x="24.352941176470587" cp2y="14.823529411764707"/>
151.17125 +                                    <point x="19.823529411764667" y="11.970588235294116" cp1x="21.382352941176432" cp1y="13.352941176470583" cp2x="18.264705882352903" cp2y="10.588235294117649"/>
151.17126 +                                    <point x="16.970588235294116" y="7.294117647058823" cp1x="17.76470588235294" cp1y="9.294117647058822" cp2x="16.176470588235293" cp2y="5.294117647058824"/>
151.17127 +                                 </points>
151.17128 +                              </path>
151.17129 +                              <path>
151.17130 +                                 <gradient cycleMethod="NO_CYCLE">
151.17131 +                                    <stop position="0.0" midpoint="0.5">
151.17132 +                                       <matte red="64" green="64" blue="65" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.0951417" brightnessOffset="-0.49019608" alphaOffset="0"/>
151.17133 +                                    </stop>
151.17134 +                                    <stop position="0.5928144" midpoint="0.5">
151.17135 +                                       <matte red="83" green="84" blue="85" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.086996906" brightnessOffset="-0.4117647" alphaOffset="0"/>
151.17136 +                                    </stop>
151.17137 +                                    <stop position="0.994012" midpoint="0.5">
151.17138 +                                       <matte red="148" green="150" blue="150" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.111111104" saturationOffset="-0.09719298" brightnessOffset="-0.15686274" alphaOffset="0"/>
151.17139 +                                    </stop>
151.17140 +                                 </gradient>
151.17141 +                                 <paintPoints x1="0.924999994635583" y1="0.9285714285714283" x2="0.9249999986092253" y2="0.004201680672268871"/>
151.17142 +                                 <points>
151.17143 +                                    <point x="12.0" y="4.0" cp1x="12.0" cp1y="4.0" cp2x="12.0" cp2y="4.0"/>
151.17144 +                                    <point x="12.0" y="11.0" cp1x="12.0" cp1y="11.0" cp2x="12.0" cp2y="11.0"/>
151.17145 +                                    <point x="4.9411764705882355" y="7.499999999999999" cp1x="4.9411764705882355" cp1y="7.499999999999999" cp2x="4.9411764705882355" cp2y="7.499999999999999"/>
151.17146 +                                 </points>
151.17147 +                              </path>
151.17148 +                              <path>
151.17149 +                                 <gradient cycleMethod="NO_CYCLE">
151.17150 +                                    <stop position="0.19518717" midpoint="0.5">
151.17151 +                                       <matte red="160" green="163" blue="165" alpha="186" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.04444444" saturationOffset="-0.080223285" brightnessOffset="-0.09803921" alphaOffset="-69"/>
151.17152 +                                    </stop>
151.17153 +                                    <stop position="1.0" midpoint="0.5">
151.17154 +                                       <matte red="252" green="254" blue="255" alpha="215" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.055555522" saturationOffset="-0.09876161" brightnessOffset="0.25490195" alphaOffset="-39"/>
151.17155 +                                    </stop>
151.17156 +                                 </gradient>
151.17157 +                                 <paintPoints x1="0.0" y1="0.5" x2="0.573529411764707" y2="0.5"/>
151.17158 +                                 <points>
151.17159 +                                    <point x="-0.058823529411764705" y="1.0294117647058822" cp1x="-0.058823529411764705" cp1y="1.0294117647058822" cp2x="-0.058823529411764705" cp2y="1.0294117647058822"/>
151.17160 +                                    <point x="0.9705882352941175" y="1.4999999999999987" cp1x="0.9705882352941175" cp1y="1.4999999999999987" cp2x="0.9705882352941175" cp2y="1.4999999999999987"/>
151.17161 +                                    <point x="1.9411764705882355" y="2.0294117647058822" cp1x="1.9411764705882355" cp1y="2.0294117647058822" cp2x="1.9411764705882355" cp2y="2.0294117647058822"/>
151.17162 +                                    <point x="1.9411764705882355" y="15.029411764705882" cp1x="1.9411764705882355" cp1y="15.029411764705882" cp2x="1.9411764705882355" cp2y="15.029411764705882"/>
151.17163 +                                    <point x="-0.058823529411764705" y="15.029411764705882" cp1x="-0.058823529411764705" cp1y="15.029411764705882" cp2x="-0.058823529411764705" cp2y="15.029411764705882"/>
151.17164 +                                 </points>
151.17165 +                              </path>
151.17166 +                              <path>
151.17167 +                                 <gradient cycleMethod="NO_CYCLE">
151.17168 +                                    <stop position="0.0" midpoint="0.5">
151.17169 +                                       <matte red="160" green="163" blue="165" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.04444444" saturationOffset="-0.080223285" brightnessOffset="-0.09803921" alphaOffset="0"/>
151.17170 +                                    </stop>
151.17171 +                                    <stop position="0.065868266" midpoint="0.5">
151.17172 +                                       <matte red="217" green="217" blue="217" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="0.10588235" alphaOffset="0"/>
151.17173 +                                    </stop>
151.17174 +                                    <stop position="0.11377245" midpoint="0.5">
151.17175 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.17176 +                                    </stop>
151.17177 +                                    <stop position="0.3473054" midpoint="0.5">
151.17178 +                                       <matte red="236" green="240" blue="243" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.039682567" saturationOffset="-0.081719734" brightnessOffset="0.20784312" alphaOffset="0"/>
151.17179 +                                    </stop>
151.17180 +                                    <stop position="0.6407186" midpoint="0.5">
151.17181 +                                       <matte red="229" green="233" blue="237" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.07677104" brightnessOffset="0.18431371" alphaOffset="0"/>
151.17182 +                                    </stop>
151.17183 +                                    <stop position="0.92814374" midpoint="0.5">
151.17184 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.17185 +                                    </stop>
151.17186 +                                 </gradient>
151.17187 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.17188 +                                 <points>
151.17189 +                                    <point x="0.0" y="0.0" cp1x="0.0" cp1y="0.0" cp2x="0.0" cp2y="0.0"/>
151.17190 +                                    <point x="17.0" y="0.0" cp1x="17.0" cp1y="0.0" cp2x="17.0" cp2y="0.0"/>
151.17191 +                                    <point x="17.0" y="5.0" cp1x="16.294117647058837" cp1y="1.9705882352941178" cp2x="17.705882352941163" cp2y="8.029411764705882"/>
151.17192 +                                    <point x="20.0" y="11.0" cp1x="18.0" cp1y="9.058823529411764" cp2x="22.0" cp2y="12.941176470588236"/>
151.17193 +                                    <point x="25.0" y="14.0" cp1x="25.0" cp1y="14.0" cp2x="25.0" cp2y="14.0"/>
151.17194 +                                    <point x="25.0" y="15.0" cp1x="25.0" cp1y="15.0" cp2x="25.0" cp2y="15.0"/>
151.17195 +                                    <point x="0.0" y="15.0" cp1x="0.0" cp1y="15.0" cp2x="0.0" cp2y="15.0"/>
151.17196 +                                 </points>
151.17197 +                              </path>
151.17198 +                              <path>
151.17199 +                                 <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.17200 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.17201 +                                 <points>
151.17202 +                                    <point x="25.0" y="15.0" cp1x="25.0" cp1y="15.0" cp2x="25.0" cp2y="15.0"/>
151.17203 +                                 </points>
151.17204 +                              </path>
151.17205 +                           </shapes>
151.17206 +                           <effects/>
151.17207 +                        </layer>
151.17208 +                        <templateLayer fileName="114d988b120.png">
151.17209 +                           <layer name="Template" type="template">
151.17210 +                              <opacity>1.0</opacity>
151.17211 +                              <fillOpacity>1.0</fillOpacity>
151.17212 +                              <blendingMode>NORMAL</blendingMode>
151.17213 +                              <locked>false</locked>
151.17214 +                              <visible>true</visible>
151.17215 +                              <shapes/>
151.17216 +                              <effects/>
151.17217 +                           </layer>
151.17218 +                        </templateLayer>
151.17219 +                     </canvas>
151.17220 +                  </state>
151.17221 +                  <state stateKeys="Pressed">
151.17222 +                     <style>
151.17223 +                        <textForeground/>
151.17224 +                        <textBackground/>
151.17225 +                        <background/>
151.17226 +                        <uiproperties/>
151.17227 +                     </style>
151.17228 +                     <canvas>
151.17229 +                        <size width="25" height="15"/>
151.17230 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.17231 +                        <stretchingInsets top="1" bottom="1" left="1" right="1"/>
151.17232 +                        <layer name="Layer 1">
151.17233 +                           <opacity>1.0</opacity>
151.17234 +                           <fillOpacity>1.0</fillOpacity>
151.17235 +                           <blendingMode>NORMAL</blendingMode>
151.17236 +                           <locked>false</locked>
151.17237 +                           <visible>true</visible>
151.17238 +                           <shapes>
151.17239 +                              <path>
151.17240 +                                 <matte red="255" green="255" blue="255" alpha="90" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-165"/>
151.17241 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.17242 +                                 <points>
151.17243 +                                    <point x="16.441176470588236" y="2.0" cp1x="15.705882352941176" cp1y="2.0" cp2x="17.176470588235297" cp2y="2.0"/>
151.17244 +                                    <point x="17.52941176470588" y="6.323529411764706" cp1x="16.617647058823525" cp1y="4.117647058823527" cp2x="18.441176470588236" cp2y="8.529411764705884"/>
151.17245 +                                    <point x="20.41176470588234" y="11.323529411764707" cp1x="18.05882352941175" cp1y="9.47058823529412" cp2x="22.76470588235293" cp2y="13.176470588235293"/>
151.17246 +                                    <point x="24.499999999999993" y="14.235294117647056" cp1x="24.499999999999993" cp1y="14.235294117647056" cp2x="24.499999999999993" cp2y="14.235294117647056"/>
151.17247 +                                    <point x="24.352941176470587" y="14.823529411764707" cp1x="24.352941176470587" cp1y="14.823529411764707" cp2x="24.352941176470587" cp2y="14.823529411764707"/>
151.17248 +                                    <point x="19.823529411764667" y="11.970588235294116" cp1x="21.382352941176432" cp1y="13.352941176470583" cp2x="18.264705882352903" cp2y="10.588235294117649"/>
151.17249 +                                    <point x="16.970588235294116" y="7.294117647058823" cp1x="17.76470588235294" cp1y="9.294117647058822" cp2x="16.176470588235293" cp2y="5.294117647058824"/>
151.17250 +                                 </points>
151.17251 +                              </path>
151.17252 +                              <path>
151.17253 +                                 <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.74509805" alphaOffset="0"/>
151.17254 +                                 <paintPoints x1="0.924999994635583" y1="0.9285714285714283" x2="0.9249999986092253" y2="0.004201680672268871"/>
151.17255 +                                 <points>
151.17256 +                                    <point x="12.0" y="4.0" cp1x="12.0" cp1y="4.0" cp2x="12.0" cp2y="4.0"/>
151.17257 +                                    <point x="12.0" y="11.0" cp1x="12.0" cp1y="11.0" cp2x="12.0" cp2y="11.0"/>
151.17258 +                                    <point x="4.9411764705882355" y="7.499999999999999" cp1x="4.9411764705882355" cp1y="7.499999999999999" cp2x="4.9411764705882355" cp2y="7.499999999999999"/>
151.17259 +                                 </points>
151.17260 +                              </path>
151.17261 +                              <path>
151.17262 +                                 <gradient cycleMethod="NO_CYCLE">
151.17263 +                                    <stop position="0.0" midpoint="0.5">
151.17264 +                                       <matte red="126" green="131" blue="135" alpha="211" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.037037015" saturationOffset="-0.043859646" brightnessOffset="-0.21568626" alphaOffset="-44"/>
151.17265 +                                    </stop>
151.17266 +                                    <stop position="1.0" midpoint="0.5">
151.17267 +                                       <matte red="252" green="254" blue="255" alpha="77" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.055555522" saturationOffset="-0.09876161" brightnessOffset="0.25490195" alphaOffset="-178"/>
151.17268 +                                    </stop>
151.17269 +                                 </gradient>
151.17270 +                                 <paintPoints x1="0.0" y1="0.5" x2="0.573529411764707" y2="0.5"/>
151.17271 +                                 <points>
151.17272 +                                    <point x="-0.058823529411764705" y="1.0294117647058822" cp1x="-0.058823529411764705" cp1y="1.0294117647058822" cp2x="-0.058823529411764705" cp2y="1.0294117647058822"/>
151.17273 +                                    <point x="0.9705882352941175" y="1.4999999999999987" cp1x="0.9705882352941175" cp1y="1.4999999999999987" cp2x="0.9705882352941175" cp2y="1.4999999999999987"/>
151.17274 +                                    <point x="1.9411764705882355" y="2.0294117647058822" cp1x="1.9411764705882355" cp1y="2.0294117647058822" cp2x="1.9411764705882355" cp2y="2.0294117647058822"/>
151.17275 +                                    <point x="1.9411764705882355" y="15.029411764705882" cp1x="1.9411764705882355" cp1y="15.029411764705882" cp2x="1.9411764705882355" cp2y="15.029411764705882"/>
151.17276 +                                    <point x="-0.058823529411764705" y="15.029411764705882" cp1x="-0.058823529411764705" cp1y="15.029411764705882" cp2x="-0.058823529411764705" cp2y="15.029411764705882"/>
151.17277 +                                 </points>
151.17278 +                              </path>
151.17279 +                              <path>
151.17280 +                                 <gradient cycleMethod="NO_CYCLE">
151.17281 +                                    <stop position="0.0" midpoint="0.5">
151.17282 +                                       <matte red="126" green="131" blue="135" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.037037015" saturationOffset="-0.043859646" brightnessOffset="-0.21568626" alphaOffset="0"/>
151.17283 +                                    </stop>
151.17284 +                                    <stop position="0.065868266" midpoint="0.5">
151.17285 +                                       <matte red="180" green="185" blue="187" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.06349206" saturationOffset="-0.07309316" brightnessOffset="-0.011764705" alphaOffset="0"/>
151.17286 +                                    </stop>
151.17287 +                                    <stop position="0.11377245" midpoint="0.5">
151.17288 +                                       <matte red="205" green="210" blue="213" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.048611104" saturationOffset="-0.07296763" brightnessOffset="0.09019607" alphaOffset="0"/>
151.17289 +                                    </stop>
151.17290 +                                    <stop position="0.3473054" midpoint="0.5">
151.17291 +                                       <matte red="187" green="193" blue="198" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.03535354" saturationOffset="-0.05497076" brightnessOffset="0.031372547" alphaOffset="0"/>
151.17292 +                                    </stop>
151.17293 +                                    <stop position="0.6407186" midpoint="0.5">
151.17294 +                                       <matte red="180" green="187" blue="193" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.034188032" saturationOffset="-0.043168806" brightnessOffset="0.011764705" alphaOffset="0"/>
151.17295 +                                    </stop>
151.17296 +                                    <stop position="0.92814374" midpoint="0.5">
151.17297 +                                       <matte red="207" green="213" blue="218" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.03535354" saturationOffset="-0.0600676" brightnessOffset="0.109803915" alphaOffset="0"/>
151.17298 +                                    </stop>
151.17299 +                                 </gradient>
151.17300 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.17301 +                                 <points>
151.17302 +                                    <point x="0.0" y="0.0" cp1x="0.0" cp1y="0.0" cp2x="0.0" cp2y="0.0"/>
151.17303 +                                    <point x="17.0" y="0.0" cp1x="17.0" cp1y="0.0" cp2x="17.0" cp2y="0.0"/>
151.17304 +                                    <point x="17.0" y="5.0" cp1x="16.294117647058837" cp1y="1.9705882352941178" cp2x="17.705882352941163" cp2y="8.029411764705882"/>
151.17305 +                                    <point x="20.0" y="11.0" cp1x="18.0" cp1y="9.058823529411764" cp2x="22.0" cp2y="12.941176470588236"/>
151.17306 +                                    <point x="25.0" y="14.0" cp1x="25.0" cp1y="14.0" cp2x="25.0" cp2y="14.0"/>
151.17307 +                                    <point x="25.0" y="15.0" cp1x="25.0" cp1y="15.0" cp2x="25.0" cp2y="15.0"/>
151.17308 +                                    <point x="0.0" y="15.0" cp1x="0.0" cp1y="15.0" cp2x="0.0" cp2y="15.0"/>
151.17309 +                                 </points>
151.17310 +                              </path>
151.17311 +                              <path>
151.17312 +                                 <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.17313 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.17314 +                                 <points>
151.17315 +                                    <point x="25.0" y="15.0" cp1x="25.0" cp1y="15.0" cp2x="25.0" cp2y="15.0"/>
151.17316 +                                 </points>
151.17317 +                              </path>
151.17318 +                           </shapes>
151.17319 +                           <effects/>
151.17320 +                        </layer>
151.17321 +                        <templateLayer fileName="114d98aee62.png">
151.17322 +                           <layer name="Template" type="template">
151.17323 +                              <opacity>1.0</opacity>
151.17324 +                              <fillOpacity>1.0</fillOpacity>
151.17325 +                              <blendingMode>NORMAL</blendingMode>
151.17326 +                              <locked>false</locked>
151.17327 +                              <visible>true</visible>
151.17328 +                              <shapes/>
151.17329 +                              <effects/>
151.17330 +                           </layer>
151.17331 +                        </templateLayer>
151.17332 +                     </canvas>
151.17333 +                  </state>
151.17334 +               </foregroundStates>
151.17335 +               <borderStates/>
151.17336 +               <regions/>
151.17337 +            </uiComponent>
151.17338 +            <region name="ScrollBarThumb" subregion="true">
151.17339 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.17340 +               <style>
151.17341 +                  <textForeground/>
151.17342 +                  <textBackground/>
151.17343 +                  <background/>
151.17344 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.17345 +                  <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.17346 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.17347 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.17348 +                  <uiproperties/>
151.17349 +               </style>
151.17350 +               <backgroundStates>
151.17351 +                  <state stateKeys="Disabled">
151.17352 +                     <style>
151.17353 +                        <textForeground/>
151.17354 +                        <textBackground/>
151.17355 +                        <background/>
151.17356 +                        <uiproperties/>
151.17357 +                     </style>
151.17358 +                     <canvas>
151.17359 +                        <size width="100" height="30"/>
151.17360 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.17361 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.17362 +                        <layer name="Layer 1">
151.17363 +                           <opacity>1.0</opacity>
151.17364 +                           <fillOpacity>1.0</fillOpacity>
151.17365 +                           <blendingMode>NORMAL</blendingMode>
151.17366 +                           <locked>false</locked>
151.17367 +                           <visible>true</visible>
151.17368 +                           <shapes/>
151.17369 +                           <effects/>
151.17370 +                        </layer>
151.17371 +                     </canvas>
151.17372 +                  </state>
151.17373 +                  <state stateKeys="Enabled">
151.17374 +                     <style>
151.17375 +                        <textForeground/>
151.17376 +                        <textBackground/>
151.17377 +                        <background/>
151.17378 +                        <uiproperties/>
151.17379 +                     </style>
151.17380 +                     <canvas>
151.17381 +                        <size width="38" height="15"/>
151.17382 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.17383 +                        <stretchingInsets top="0" bottom="0" left="15" right="15"/>
151.17384 +                        <layer name="Layer 1">
151.17385 +                           <opacity>1.0</opacity>
151.17386 +                           <fillOpacity>1.0</fillOpacity>
151.17387 +                           <blendingMode>NORMAL</blendingMode>
151.17388 +                           <locked>false</locked>
151.17389 +                           <visible>true</visible>
151.17390 +                           <shapes>
151.17391 +                              <path>
151.17392 +                                 <gradient cycleMethod="NO_CYCLE">
151.17393 +                                    <stop position="0.0" midpoint="0.5">
151.17394 +                                       <matte red="104" green="125" blue="143" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0017285943" saturationOffset="-0.362987" brightnessOffset="0.011764705" alphaOffset="0"/>
151.17395 +                                    </stop>
151.17396 +                                    <stop position="1.0" midpoint="0.5">
151.17397 +                                       <matte red="104" green="125" blue="143" alpha="0" uiDefaultParentName="nimbusBase" hueOffset="-0.0017285943" saturationOffset="-0.362987" brightnessOffset="0.011764705" alphaOffset="-255"/>
151.17398 +                                    </stop>
151.17399 +                                 </gradient>
151.17400 +                                 <paintPoints x1="0.940909090909089" y1="0.03592814412291934" x2="0.5954545454545457" y2="0.26347304548015776"/>
151.17401 +                                 <points>
151.17402 +                                    <point x="37.04545454545455" y="0.0" cp1x="37.04545454545455" cp1y="0.0" cp2x="37.04545454545455" cp2y="0.0"/>
151.17403 +                                    <point x="32.04545454545455" y="0.0" cp1x="32.04545454545455" cp1y="0.0" cp2x="32.04545454545455" cp2y="0.0"/>
151.17404 +                                    <point x="34.681818181818194" y="2.0" cp1x="34.00000000000002" cp1y="0.7727272727272729" cp2x="35.36363636363637" cp2y="3.227272727272727"/>
151.17405 +                                    <point x="35.59090909090908" y="7.590909090909094" cp1x="35.59090909090908" cp1y="7.590909090909094" cp2x="35.59090909090908" cp2y="7.590909090909094"/>
151.17406 +                                 </points>
151.17407 +                              </path>
151.17408 +                              <path>
151.17409 +                                 <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.17410 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.17411 +                                 <points>
151.17412 +                                    <point x="29.363636363636367" y="7.681818181818182" cp1x="29.363636363636367" cp1y="7.681818181818182" cp2x="29.363636363636367" cp2y="7.681818181818182"/>
151.17413 +                                 </points>
151.17414 +                              </path>
151.17415 +                              <path>
151.17416 +                                 <gradient cycleMethod="NO_CYCLE">
151.17417 +                                    <stop position="0.0" midpoint="0.5">
151.17418 +                                       <matte red="104" green="125" blue="143" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0017285943" saturationOffset="-0.362987" brightnessOffset="0.011764705" alphaOffset="0"/>
151.17419 +                                    </stop>
151.17420 +                                    <stop position="1.0" midpoint="0.5">
151.17421 +                                       <matte red="129" green="148" blue="165" alpha="33" uiDefaultParentName="nimbusBase" hueOffset="5.2034855E-5" saturationOffset="-0.41753247" brightnessOffset="0.09803921" alphaOffset="-222"/>
151.17422 +                                    </stop>
151.17423 +                                 </gradient>
151.17424 +                                 <paintPoints x1="0.06818181818181814" y1="-0.005952381053749398" x2="0.36890908871182554" y2="0.23929171756874906"/>
151.17425 +                                 <points>
151.17426 +                                    <point x="6.0" y="0.0" cp1x="6.0" cp1y="0.0" cp2x="6.0" cp2y="0.0"/>
151.17427 +                                    <point x="1.0" y="0.0" cp1x="1.0" cp1y="0.0" cp2x="1.0" cp2y="0.0"/>
151.17428 +                                    <point x="2.4090909090909083" y="7.636363636363642" cp1x="2.4090909090909083" cp1y="7.636363636363642" cp2x="2.4090909090909083" cp2y="7.636363636363642"/>
151.17429 +                                    <point x="3.0000000000000004" y="2.0454545454545503" cp1x="2.045454545454544" cp1y="3.5909090909090975" cp2x="3.954545454545457" cp2y="0.5000000000000031"/>
151.17430 +                                 </points>
151.17431 +                              </path>
151.17432 +                              <path>
151.17433 +                                 <gradient cycleMethod="NO_CYCLE">
151.17434 +                                    <stop position="0.038922157" midpoint="0.5">
151.17435 +                                       <matte red="183" green="194" blue="204" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="7.13408E-4" saturationOffset="-0.53277314" brightnessOffset="0.25098038" alphaOffset="0"/>
151.17436 +                                    </stop>
151.17437 +                                    <stop position="0.06287425" midpoint="0.5">
151.17438 +                                       <matte red="252" green="253" blue="253" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.07865167" saturationOffset="-0.6317617" brightnessOffset="0.44313723" alphaOffset="0"/>
151.17439 +                                    </stop>
151.17440 +                                    <stop position="0.32934132" midpoint="0.5">
151.17441 +                                       <matte red="168" green="189" blue="208" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.44340658" brightnessOffset="0.26666665" alphaOffset="0"/>
151.17442 +                                    </stop>
151.17443 +                                    <stop position="0.6497006" midpoint="0.5">
151.17444 +                                       <matte red="197" green="218" blue="237" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4669379" brightnessOffset="0.38039213" alphaOffset="0"/>
151.17445 +                                    </stop>
151.17446 +                                    <stop position="1.0" midpoint="0.5">
151.17447 +                                       <matte red="237" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.07865167" saturationOffset="-0.56512606" brightnessOffset="0.45098037" alphaOffset="0"/>
151.17448 +                                    </stop>
151.17449 +                                 </gradient>
151.17450 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.17451 +                                 <points>
151.17452 +                                    <point x="1.0" y="0.0" cp1x="1.0" cp1y="0.0" cp2x="1.0" cp2y="0.0"/>
151.17453 +                                    <point x="1.0" y="1.0" cp1x="1.0" cp1y="1.0" cp2x="0.9545454545454546" cp2y="9.45454545454545"/>
151.17454 +                                    <point x="15.0" y="14.0" cp1x="9.136363636363646" cp1y="14.0" cp2x="15.0" cp2y="14.0"/>
151.17455 +                                    <point x="23.0" y="14.0" cp1x="23.0" cp1y="14.0" cp2x="28.909090909090935" cp2y="13.999999999999996"/>
151.17456 +                                    <point x="37.0" y="1.0" cp1x="36.95454545454545" cp1y="9.36363636363636" cp2x="37.0" cp2y="1.0"/>
151.17457 +                                    <point x="37.0" y="0.0" cp1x="37.0" cp1y="0.0" cp2x="37.0" cp2y="0.0"/>
151.17458 +                                 </points>
151.17459 +                              </path>
151.17460 +                              <path>
151.17461 +                                 <gradient cycleMethod="NO_CYCLE">
151.17462 +                                    <stop position="0.0" midpoint="0.5">
151.17463 +                                       <matte red="9" green="30" blue="49" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="0.18061227" brightnessOffset="-0.35686278" alphaOffset="0"/>
151.17464 +                                    </stop>
151.17465 +                                    <stop position="1.0" midpoint="0.5">
151.17466 +                                       <matte red="54" green="75" blue="94" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.21018237" brightnessOffset="-0.18039218" alphaOffset="0"/>
151.17467 +                                    </stop>
151.17468 +                                 </gradient>
151.17469 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.17470 +                                 <points>
151.17471 +                                    <point x="0.0" y="0.0" cp1x="0.0" cp1y="0.0" cp2x="0.0" cp2y="0.0"/>
151.17472 +                                    <point x="0.0" y="1.0" cp1x="0.0" cp1y="1.0" cp2x="0.0" cp2y="7.0"/>
151.17473 +                                    <point x="15.0" y="15.0" cp1x="5.0" cp1y="15.0" cp2x="15.0" cp2y="15.0"/>
151.17474 +                                    <point x="23.0" y="15.0" cp1x="23.0" cp1y="15.0" cp2x="33.0" cp2y="15.0"/>
151.17475 +                                    <point x="38.0" y="1.0" cp1x="38.0" cp1y="7.0" cp2x="38.0" cp2y="1.0"/>
151.17476 +                                    <point x="38.0" y="0.0" cp1x="38.0" cp1y="0.0" cp2x="38.0" cp2y="0.0"/>
151.17477 +                                 </points>
151.17478 +                              </path>
151.17479 +                           </shapes>
151.17480 +                           <effects/>
151.17481 +                        </layer>
151.17482 +                        <templateLayer fileName="113e6a24589.png">
151.17483 +                           <layer name="Template" type="template">
151.17484 +                              <opacity>1.0</opacity>
151.17485 +                              <fillOpacity>1.0</fillOpacity>
151.17486 +                              <blendingMode>NORMAL</blendingMode>
151.17487 +                              <locked>false</locked>
151.17488 +                              <visible>false</visible>
151.17489 +                              <shapes/>
151.17490 +                              <effects/>
151.17491 +                           </layer>
151.17492 +                        </templateLayer>
151.17493 +                     </canvas>
151.17494 +                  </state>
151.17495 +                  <state stateKeys="Focused">
151.17496 +                     <style>
151.17497 +                        <textForeground/>
151.17498 +                        <textBackground/>
151.17499 +                        <background/>
151.17500 +                        <uiproperties/>
151.17501 +                     </style>
151.17502 +                     <canvas>
151.17503 +                        <size width="100" height="30"/>
151.17504 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.17505 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.17506 +                        <layer name="Layer 1">
151.17507 +                           <opacity>1.0</opacity>
151.17508 +                           <fillOpacity>1.0</fillOpacity>
151.17509 +                           <blendingMode>NORMAL</blendingMode>
151.17510 +                           <locked>false</locked>
151.17511 +                           <visible>true</visible>
151.17512 +                           <shapes/>
151.17513 +                           <effects/>
151.17514 +                        </layer>
151.17515 +                     </canvas>
151.17516 +                  </state>
151.17517 +                  <state stateKeys="MouseOver">
151.17518 +                     <style>
151.17519 +                        <textForeground/>
151.17520 +                        <textBackground/>
151.17521 +                        <background/>
151.17522 +                        <uiproperties/>
151.17523 +                     </style>
151.17524 +                     <canvas>
151.17525 +                        <size width="38" height="15"/>
151.17526 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.17527 +                        <stretchingInsets top="0" bottom="0" left="15" right="15"/>
151.17528 +                        <layer name="Layer 1">
151.17529 +                           <opacity>1.0</opacity>
151.17530 +                           <fillOpacity>1.0</fillOpacity>
151.17531 +                           <blendingMode>NORMAL</blendingMode>
151.17532 +                           <locked>false</locked>
151.17533 +                           <visible>true</visible>
151.17534 +                           <shapes>
151.17535 +                              <path>
151.17536 +                                 <gradient cycleMethod="NO_CYCLE">
151.17537 +                                    <stop position="0.0" midpoint="0.5">
151.17538 +                                       <matte red="104" green="125" blue="143" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0017285943" saturationOffset="-0.362987" brightnessOffset="0.011764705" alphaOffset="0"/>
151.17539 +                                    </stop>
151.17540 +                                    <stop position="1.0" midpoint="0.5">
151.17541 +                                       <matte red="104" green="125" blue="143" alpha="0" uiDefaultParentName="nimbusBase" hueOffset="-0.0017285943" saturationOffset="-0.362987" brightnessOffset="0.011764705" alphaOffset="-255"/>
151.17542 +                                    </stop>
151.17543 +                                 </gradient>
151.17544 +                                 <paintPoints x1="0.940909090909089" y1="0.03592814412291934" x2="0.5954545454545457" y2="0.26347304548015776"/>
151.17545 +                                 <points>
151.17546 +                                    <point x="37.04545454545455" y="0.0" cp1x="37.04545454545455" cp1y="0.0" cp2x="37.04545454545455" cp2y="0.0"/>
151.17547 +                                    <point x="32.04545454545455" y="0.0" cp1x="32.04545454545455" cp1y="0.0" cp2x="32.04545454545455" cp2y="0.0"/>
151.17548 +                                    <point x="34.681818181818194" y="2.0" cp1x="34.00000000000002" cp1y="0.7727272727272729" cp2x="35.36363636363637" cp2y="3.227272727272727"/>
151.17549 +                                    <point x="35.59090909090908" y="7.590909090909094" cp1x="35.59090909090908" cp1y="7.590909090909094" cp2x="35.59090909090908" cp2y="7.590909090909094"/>
151.17550 +                                 </points>
151.17551 +                              </path>
151.17552 +                              <path>
151.17553 +                                 <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.17554 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.17555 +                                 <points>
151.17556 +                                    <point x="29.363636363636367" y="7.681818181818182" cp1x="29.363636363636367" cp1y="7.681818181818182" cp2x="29.363636363636367" cp2y="7.681818181818182"/>
151.17557 +                                 </points>
151.17558 +                              </path>
151.17559 +                              <path>
151.17560 +                                 <gradient cycleMethod="NO_CYCLE">
151.17561 +                                    <stop position="0.0" midpoint="0.5">
151.17562 +                                       <matte red="104" green="125" blue="143" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0017285943" saturationOffset="-0.362987" brightnessOffset="0.011764705" alphaOffset="0"/>
151.17563 +                                    </stop>
151.17564 +                                    <stop position="1.0" midpoint="0.5">
151.17565 +                                       <matte red="129" green="148" blue="165" alpha="33" uiDefaultParentName="nimbusBase" hueOffset="5.2034855E-5" saturationOffset="-0.41753247" brightnessOffset="0.09803921" alphaOffset="-222"/>
151.17566 +                                    </stop>
151.17567 +                                 </gradient>
151.17568 +                                 <paintPoints x1="0.06818181818181814" y1="-0.005952381053749398" x2="0.36890908871182554" y2="0.23929171756874906"/>
151.17569 +                                 <points>
151.17570 +                                    <point x="6.0" y="0.0" cp1x="6.0" cp1y="0.0" cp2x="6.0" cp2y="0.0"/>
151.17571 +                                    <point x="1.0" y="0.0" cp1x="1.0" cp1y="0.0" cp2x="1.0" cp2y="0.0"/>
151.17572 +                                    <point x="2.4090909090909083" y="7.636363636363642" cp1x="2.4090909090909083" cp1y="7.636363636363642" cp2x="2.4090909090909083" cp2y="7.636363636363642"/>
151.17573 +                                    <point x="3.0000000000000004" y="2.0454545454545503" cp1x="2.045454545454544" cp1y="3.5909090909090975" cp2x="3.954545454545457" cp2y="0.5000000000000031"/>
151.17574 +                                 </points>
151.17575 +                              </path>
151.17576 +                              <path>
151.17577 +                                 <gradient cycleMethod="NO_CYCLE">
151.17578 +                                    <stop position="0.038922157" midpoint="0.5">
151.17579 +                                       <matte red="189" green="196" blue="204" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.010237217" saturationOffset="-0.5621849" brightnessOffset="0.25098038" alphaOffset="0"/>
151.17580 +                                    </stop>
151.17581 +                                    <stop position="0.06287425" midpoint="0.5">
151.17582 +                                       <matte red="253" green="253" blue="254" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="-0.6317773" brightnessOffset="0.4470588" alphaOffset="0"/>
151.17583 +                                    </stop>
151.17584 +                                    <stop position="0.32934132" midpoint="0.5">
151.17585 +                                       <matte red="187" green="208" blue="227" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.45950285" brightnessOffset="0.34117645" alphaOffset="0"/>
151.17586 +                                    </stop>
151.17587 +                                    <stop position="0.6497006" midpoint="0.5">
151.17588 +                                       <matte red="216" green="237" blue="255" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0017285943" saturationOffset="-0.48277313" brightnessOffset="0.45098037" alphaOffset="0"/>
151.17589 +                                    </stop>
151.17590 +                                    <stop position="1.0" midpoint="0.5">
151.17591 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="0"/>
151.17592 +                                    </stop>
151.17593 +                                 </gradient>
151.17594 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.17595 +                                 <points>
151.17596 +                                    <point x="1.0" y="0.0" cp1x="1.0" cp1y="0.0" cp2x="1.0" cp2y="0.0"/>
151.17597 +                                    <point x="1.0" y="1.0" cp1x="1.0" cp1y="1.0" cp2x="0.9545454545454546" cp2y="9.45454545454545"/>
151.17598 +                                    <point x="15.0" y="14.0" cp1x="9.136363636363646" cp1y="14.0" cp2x="15.0" cp2y="14.0"/>
151.17599 +                                    <point x="23.0" y="14.0" cp1x="23.0" cp1y="14.0" cp2x="28.909090909090935" cp2y="13.999999999999996"/>
151.17600 +                                    <point x="37.0" y="1.0" cp1x="36.95454545454545" cp1y="9.36363636363636" cp2x="37.0" cp2y="1.0"/>
151.17601 +                                    <point x="37.0" y="0.0" cp1x="37.0" cp1y="0.0" cp2x="37.0" cp2y="0.0"/>
151.17602 +                                 </points>
151.17603 +                              </path>
151.17604 +                              <path>
151.17605 +                                 <gradient cycleMethod="NO_CYCLE">
151.17606 +                                    <stop position="0.0" midpoint="0.5">
151.17607 +                                       <matte red="9" green="30" blue="49" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="0.18061227" brightnessOffset="-0.35686278" alphaOffset="0"/>
151.17608 +                                    </stop>
151.17609 +                                    <stop position="1.0" midpoint="0.5">
151.17610 +                                       <matte red="54" green="75" blue="94" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.21018237" brightnessOffset="-0.18039218" alphaOffset="0"/>
151.17611 +                                    </stop>
151.17612 +                                 </gradient>
151.17613 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.17614 +                                 <points>
151.17615 +                                    <point x="0.0" y="0.0" cp1x="0.0" cp1y="0.0" cp2x="0.0" cp2y="0.0"/>
151.17616 +                                    <point x="0.0" y="1.0" cp1x="0.0" cp1y="1.0" cp2x="0.0" cp2y="7.0"/>
151.17617 +                                    <point x="15.0" y="15.0" cp1x="5.0" cp1y="15.0" cp2x="15.0" cp2y="15.0"/>
151.17618 +                                    <point x="23.0" y="15.0" cp1x="23.0" cp1y="15.0" cp2x="33.0" cp2y="15.0"/>
151.17619 +                                    <point x="38.0" y="1.0" cp1x="38.0" cp1y="7.0" cp2x="38.0" cp2y="1.0"/>
151.17620 +                                    <point x="38.0" y="0.0" cp1x="38.0" cp1y="0.0" cp2x="38.0" cp2y="0.0"/>
151.17621 +                                 </points>
151.17622 +                              </path>
151.17623 +                           </shapes>
151.17624 +                           <effects/>
151.17625 +                        </layer>
151.17626 +                        <templateLayer fileName="1141ec296f1.png">
151.17627 +                           <layer name="Template" type="template">
151.17628 +                              <opacity>1.0</opacity>
151.17629 +                              <fillOpacity>1.0</fillOpacity>
151.17630 +                              <blendingMode>NORMAL</blendingMode>
151.17631 +                              <locked>false</locked>
151.17632 +                              <visible>false</visible>
151.17633 +                              <shapes/>
151.17634 +                              <effects/>
151.17635 +                           </layer>
151.17636 +                        </templateLayer>
151.17637 +                     </canvas>
151.17638 +                  </state>
151.17639 +                  <state stateKeys="Pressed">
151.17640 +                     <style>
151.17641 +                        <textForeground/>
151.17642 +                        <textBackground/>
151.17643 +                        <background/>
151.17644 +                        <uiproperties/>
151.17645 +                     </style>
151.17646 +                     <canvas>
151.17647 +                        <size width="38" height="15"/>
151.17648 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.17649 +                        <stretchingInsets top="0" bottom="0" left="15" right="15"/>
151.17650 +                        <layer name="Layer 1">
151.17651 +                           <opacity>1.0</opacity>
151.17652 +                           <fillOpacity>1.0</fillOpacity>
151.17653 +                           <blendingMode>NORMAL</blendingMode>
151.17654 +                           <locked>false</locked>
151.17655 +                           <visible>true</visible>
151.17656 +                           <shapes>
151.17657 +                              <path>
151.17658 +                                 <gradient cycleMethod="NO_CYCLE">
151.17659 +                                    <stop position="0.0" midpoint="0.5">
151.17660 +                                       <matte red="36" green="42" blue="48" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.3857143" brightnessOffset="-0.36078435" alphaOffset="0"/>
151.17661 +                                    </stop>
151.17662 +                                    <stop position="1.0" midpoint="0.5">
151.17663 +                                       <matte red="104" green="125" blue="143" alpha="0" uiDefaultParentName="nimbusBase" hueOffset="-0.0017285943" saturationOffset="-0.362987" brightnessOffset="0.011764705" alphaOffset="-255"/>
151.17664 +                                    </stop>
151.17665 +                                 </gradient>
151.17666 +                                 <paintPoints x1="0.940909090909089" y1="0.03592814412291934" x2="0.3761563291933634" y2="0.3491017889731149"/>
151.17667 +                                 <points>
151.17668 +                                    <point x="37.04545454545455" y="0.0" cp1x="37.04545454545455" cp1y="0.0" cp2x="37.04545454545455" cp2y="0.0"/>
151.17669 +                                    <point x="31.34545454545454" y="0.0" cp1x="31.34545454545454" cp1y="0.0" cp2x="31.34545454545454" cp2y="0.0"/>
151.17670 +                                    <point x="34.38181818181821" y="2.0999999999999996" cp1x="33.70000000000004" cp1y="0.872727272727273" cp2x="35.063636363636384" cp2y="3.3272727272727267"/>
151.17671 +                                    <point x="35.59090909090908" y="7.590909090909094" cp1x="35.59090909090908" cp1y="7.590909090909094" cp2x="35.59090909090908" cp2y="7.590909090909094"/>
151.17672 +                                 </points>
151.17673 +                              </path>
151.17674 +                              <path>
151.17675 +                                 <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.17676 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.17677 +                                 <points>
151.17678 +                                    <point x="29.363636363636367" y="7.681818181818182" cp1x="29.363636363636367" cp1y="7.681818181818182" cp2x="29.363636363636367" cp2y="7.681818181818182"/>
151.17679 +                                 </points>
151.17680 +                              </path>
151.17681 +                              <path>
151.17682 +                                 <gradient cycleMethod="NO_CYCLE">
151.17683 +                                    <stop position="0.0" midpoint="0.5">
151.17684 +                                       <matte red="39" green="47" blue="54" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-8.738637E-4" saturationOffset="-0.3579365" brightnessOffset="-0.33725494" alphaOffset="0"/>
151.17685 +                                    </stop>
151.17686 +                                    <stop position="1.0" midpoint="0.5">
151.17687 +                                       <matte red="129" green="148" blue="165" alpha="33" uiDefaultParentName="nimbusBase" hueOffset="5.2034855E-5" saturationOffset="-0.41753247" brightnessOffset="0.09803921" alphaOffset="-222"/>
151.17688 +                                    </stop>
151.17689 +                                 </gradient>
151.17690 +                                 <paintPoints x1="0.06818181818181814" y1="-0.005952381053749398" x2="0.36890908871182554" y2="0.23929171756874906"/>
151.17691 +                                 <points>
151.17692 +                                    <point x="6.0" y="0.0" cp1x="6.0" cp1y="0.0" cp2x="6.0" cp2y="0.0"/>
151.17693 +                                    <point x="1.0" y="0.0" cp1x="1.0" cp1y="0.0" cp2x="1.0" cp2y="0.0"/>
151.17694 +                                    <point x="2.4090909090909083" y="7.636363636363642" cp1x="2.4090909090909083" cp1y="7.636363636363642" cp2x="2.4090909090909083" cp2y="7.636363636363642"/>
151.17695 +                                    <point x="3.0000000000000004" y="2.0454545454545503" cp1x="2.045454545454544" cp1y="3.5909090909090975" cp2x="3.954545454545457" cp2y="0.5000000000000031"/>
151.17696 +                                 </points>
151.17697 +                              </path>
151.17698 +                              <path>
151.17699 +                                 <gradient cycleMethod="NO_CYCLE">
151.17700 +                                    <stop position="0.038922157" midpoint="0.5">
151.17701 +                                       <matte red="89" green="113" blue="136" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.002908647" saturationOffset="-0.29012606" brightnessOffset="-0.015686274" alphaOffset="0"/>
151.17702 +                                    </stop>
151.17703 +                                    <stop position="0.06287425" midpoint="0.5">
151.17704 +                                       <matte red="151" green="175" blue="196" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-8.738637E-4" saturationOffset="-0.40612245" brightnessOffset="0.21960783" alphaOffset="0"/>
151.17705 +                                    </stop>
151.17706 +                                    <stop position="0.32934132" midpoint="0.5">
151.17707 +                                       <matte red="55" green="102" blue="144" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.01765871" brightnessOffset="0.015686274" alphaOffset="0"/>
151.17708 +                                    </stop>
151.17709 +                                    <stop position="0.6497006" midpoint="0.5">
151.17710 +                                       <matte red="86" green="133" blue="175" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.12714285" brightnessOffset="0.1372549" alphaOffset="0"/>
151.17711 +                                    </stop>
151.17712 +                                    <stop position="1.0" midpoint="0.5">
151.17713 +                                       <matte red="131" green="177" blue="220" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0018727183" saturationOffset="-0.23116884" brightnessOffset="0.31372547" alphaOffset="0"/>
151.17714 +                                    </stop>
151.17715 +                                 </gradient>
151.17716 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.17717 +                                 <points>
151.17718 +                                    <point x="1.0" y="0.0" cp1x="1.0" cp1y="0.0" cp2x="1.0" cp2y="0.0"/>
151.17719 +                                    <point x="1.0" y="1.0" cp1x="1.0" cp1y="1.0" cp2x="0.9545454545454546" cp2y="9.45454545454545"/>
151.17720 +                                    <point x="15.0" y="14.0" cp1x="9.136363636363646" cp1y="14.0" cp2x="15.0" cp2y="14.0"/>
151.17721 +                                    <point x="23.0" y="14.0" cp1x="23.0" cp1y="14.0" cp2x="28.909090909090935" cp2y="13.999999999999996"/>
151.17722 +                                    <point x="37.0" y="1.0" cp1x="36.95454545454545" cp1y="9.36363636363636" cp2x="37.0" cp2y="1.0"/>
151.17723 +                                    <point x="37.0" y="0.0" cp1x="37.0" cp1y="0.0" cp2x="37.0" cp2y="0.0"/>
151.17724 +                                 </points>
151.17725 +                              </path>
151.17726 +                              <path>
151.17727 +                                 <gradient cycleMethod="NO_CYCLE">
151.17728 +                                    <stop position="0.0" midpoint="0.5">
151.17729 +                                       <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.17730 +                                    </stop>
151.17731 +                                    <stop position="1.0" midpoint="0.5">
151.17732 +                                       <matte red="4" green="30" blue="54" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0013483167" saturationOffset="0.29021162" brightnessOffset="-0.33725494" alphaOffset="0"/>
151.17733 +                                    </stop>
151.17734 +                                 </gradient>
151.17735 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.17736 +                                 <points>
151.17737 +                                    <point x="0.0" y="0.0" cp1x="0.0" cp1y="0.0" cp2x="0.0" cp2y="0.0"/>
151.17738 +                                    <point x="0.0" y="1.0" cp1x="0.0" cp1y="1.0" cp2x="0.0" cp2y="7.0"/>
151.17739 +                                    <point x="15.0" y="15.0" cp1x="5.0" cp1y="15.0" cp2x="15.0" cp2y="15.0"/>
151.17740 +                                    <point x="23.0" y="15.0" cp1x="23.0" cp1y="15.0" cp2x="33.0" cp2y="15.0"/>
151.17741 +                                    <point x="38.0" y="1.0" cp1x="38.0" cp1y="7.0" cp2x="38.0" cp2y="1.0"/>
151.17742 +                                    <point x="38.0" y="0.0" cp1x="38.0" cp1y="0.0" cp2x="38.0" cp2y="0.0"/>
151.17743 +                                 </points>
151.17744 +                              </path>
151.17745 +                           </shapes>
151.17746 +                           <effects/>
151.17747 +                        </layer>
151.17748 +                        <templateLayer fileName="114d984fa41.png">
151.17749 +                           <layer name="Template" type="template">
151.17750 +                              <opacity>1.0</opacity>
151.17751 +                              <fillOpacity>1.0</fillOpacity>
151.17752 +                              <blendingMode>NORMAL</blendingMode>
151.17753 +                              <locked>false</locked>
151.17754 +                              <visible>false</visible>
151.17755 +                              <shapes/>
151.17756 +                              <effects/>
151.17757 +                           </layer>
151.17758 +                        </templateLayer>
151.17759 +                     </canvas>
151.17760 +                  </state>
151.17761 +               </backgroundStates>
151.17762 +               <foregroundStates/>
151.17763 +               <borderStates/>
151.17764 +               <regions/>
151.17765 +            </region>
151.17766 +            <region name="ScrollBarTrack" subregion="true">
151.17767 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.17768 +               <style>
151.17769 +                  <textForeground/>
151.17770 +                  <textBackground/>
151.17771 +                  <background/>
151.17772 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.17773 +                  <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.17774 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.17775 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.17776 +                  <uiproperties/>
151.17777 +               </style>
151.17778 +               <backgroundStates>
151.17779 +                  <state stateKeys="Disabled">
151.17780 +                     <style>
151.17781 +                        <textForeground/>
151.17782 +                        <textBackground/>
151.17783 +                        <background/>
151.17784 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.17785 +                        <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.17786 +                        <uiproperties/>
151.17787 +                     </style>
151.17788 +                     <canvas>
151.17789 +                        <size width="18" height="15"/>
151.17790 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.17791 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.17792 +                        <layer name="Layer 1">
151.17793 +                           <opacity>1.0</opacity>
151.17794 +                           <fillOpacity>1.0</fillOpacity>
151.17795 +                           <blendingMode>NORMAL</blendingMode>
151.17796 +                           <locked>false</locked>
151.17797 +                           <visible>true</visible>
151.17798 +                           <shapes>
151.17799 +                              <rectangle x1="0.0" x2="18.0" y1="0.0" y2="15.0" rounding="0.0">
151.17800 +                                 <gradient cycleMethod="NO_CYCLE">
151.17801 +                                    <stop position="0.016129032" midpoint="0.5">
151.17802 +                                       <matte red="191" green="192" blue="193" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.10016362" brightnessOffset="0.011764705" alphaOffset="0"/>
151.17803 +                                    </stop>
151.17804 +                                    <stop position="0.061290324" midpoint="0.49019608">
151.17805 +                                       <matte red="197" green="198" blue="199" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.100476064" brightnessOffset="0.035294116" alphaOffset="0"/>
151.17806 +                                    </stop>
151.17807 +                                    <stop position="0.26451612" midpoint="0.27979276">
151.17808 +                                       <matte red="223" green="223" blue="224" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10606203" brightnessOffset="0.13333333" alphaOffset="0"/>
151.17809 +                                    </stop>
151.17810 +                                    <stop position="0.88387096" midpoint="0.5">
151.17811 +                                       <matte red="253" green="253" blue="253" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="0.24705881" alphaOffset="0"/>
151.17812 +                                    </stop>
151.17813 +                                 </gradient>
151.17814 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.17815 +                              </rectangle>
151.17816 +                           </shapes>
151.17817 +                           <effects/>
151.17818 +                        </layer>
151.17819 +                        <templateLayer fileName="1140138e9be.png">
151.17820 +                           <layer name="Template" type="template">
151.17821 +                              <opacity>1.0</opacity>
151.17822 +                              <fillOpacity>1.0</fillOpacity>
151.17823 +                              <blendingMode>NORMAL</blendingMode>
151.17824 +                              <locked>false</locked>
151.17825 +                              <visible>true</visible>
151.17826 +                              <shapes/>
151.17827 +                              <effects/>
151.17828 +                           </layer>
151.17829 +                        </templateLayer>
151.17830 +                     </canvas>
151.17831 +                  </state>
151.17832 +                  <state stateKeys="Enabled">
151.17833 +                     <style>
151.17834 +                        <textForeground/>
151.17835 +                        <textBackground/>
151.17836 +                        <background/>
151.17837 +                        <cacheSettingsInherited>false</cacheSettingsInherited>
151.17838 +                        <uiproperties/>
151.17839 +                     </style>
151.17840 +                     <canvas>
151.17841 +                        <size width="34" height="15"/>
151.17842 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.17843 +                        <stretchingInsets top="5" bottom="5" left="10" right="9"/>
151.17844 +                        <layer name="Layer 2">
151.17845 +                           <opacity>1.0</opacity>
151.17846 +                           <fillOpacity>1.0</fillOpacity>
151.17847 +                           <blendingMode>NORMAL</blendingMode>
151.17848 +                           <locked>false</locked>
151.17849 +                           <visible>true</visible>
151.17850 +                           <shapes>
151.17851 +                              <path>
151.17852 +                                 <gradient cycleMethod="NO_CYCLE">
151.17853 +                                    <stop position="0.0" midpoint="0.5">
151.17854 +                                       <matte red="160" green="163" blue="167" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.015872955" saturationOffset="-0.06861015" brightnessOffset="-0.09019607" alphaOffset="0"/>
151.17855 +                                    </stop>
151.17856 +                                    <stop position="1.0" midpoint="0.5">
151.17857 +                                       <matte red="201" green="204" blue="210" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06766917" brightnessOffset="0.07843137" alphaOffset="0"/>
151.17858 +                                    </stop>
151.17859 +                                 </gradient>
151.17860 +                                 <paintPoints x1="0.8645834554400952" y1="0.20952380952380953" x2="0.020833188460903894" y2="0.9523809523809526"/>
151.17861 +                                 <points>
151.17862 +                                    <point x="25.99999999999998" y="13.499999999999998" cp1x="25.571428571428548" cp1y="12.85714285714286" cp2x="26.42857142857141" cp2y="14.142857142857137"/>
151.17863 +                                    <point x="30.642857142857142" y="10.999999999999996" cp1x="29.07142857142857" cp1y="12.642857142857135" cp2x="32.214285714285715" cp2y="9.357142857142858"/>
151.17864 +                                    <point x="32.57142857142857" y="6.928571428571431" cp1x="33.28571428571429" cp1y="7.5714285714285765" cp2x="31.857142857142847" cp2y="6.285714285714285"/>
151.17865 +                                    <point x="29.71428571428571" y="10.285714285714285" cp1x="30.428571428571423" cp1y="9.42857142857143" cp2x="29.0" cp2y="11.142857142857139"/>
151.17866 +                                 </points>
151.17867 +                              </path>
151.17868 +                              <path>
151.17869 +                                 <gradient cycleMethod="NO_CYCLE">
151.17870 +                                    <stop position="0.0" midpoint="0.5">
151.17871 +                                       <matte red="155" green="158" blue="162" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.015872955" saturationOffset="-0.06731644" brightnessOffset="-0.109803915" alphaOffset="0"/>
151.17872 +                                    </stop>
151.17873 +                                    <stop position="1.0" midpoint="0.5">
151.17874 +                                       <matte red="209" green="212" blue="218" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06924191" brightnessOffset="0.109803915" alphaOffset="0"/>
151.17875 +                                    </stop>
151.17876 +                                 </gradient>
151.17877 +                                 <paintPoints x1="0.12719298862023998" y1="0.1315789407640286" x2="0.907894728916834" y2="0.8771929886202403"/>
151.17878 +                                 <points>
151.17879 +                                    <point x="1.1428571428571428" y="6.857142857142858" cp1x="0.3571428571428572" cp1y="7.428571428571431" cp2x="1.9285714285714284" cp2y="6.285714285714285"/>
151.17880 +                                    <point x="4.642857142857142" y="10.35714285714286" cp1x="3.285714285714285" cp1y="8.78571428571429" cp2x="6.0" cp2y="11.928571428571429"/>
151.17881 +                                    <point x="8.714285714285712" y="13.64285714285714" cp1x="8.928571428571425" cp1y="12.64285714285714" cp2x="8.499999999999998" cp2y="14.64285714285714"/>
151.17882 +                                    <point x="3.5714285714285707" y="11.571428571428573" cp1x="5.071428571428571" cp1y="13.214285714285719" cp2x="2.0714285714285703" cp2y="9.928571428571427"/>
151.17883 +                                 </points>
151.17884 +                              </path>
151.17885 +                              <path>
151.17886 +                                 <gradient cycleMethod="NO_CYCLE">
151.17887 +                                    <stop position="0.0" midpoint="0.87096775">
151.17888 +                                       <matte red="60" green="61" blue="62" alpha="0" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.07826825" brightnessOffset="-0.5019608" alphaOffset="-255"/>
151.17889 +                                    </stop>
151.17890 +                                    <stop position="1.0" midpoint="0.5">
151.17891 +                                       <matte red="56" green="57" blue="59" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.05967886" brightnessOffset="-0.5137255" alphaOffset="0"/>
151.17892 +                                    </stop>
151.17893 +                                 </gradient>
151.17894 +                                 <paintPoints x1="-0.045918367346938736" y1="0.1833642539170922" x2="0.8724489795918368" y2="0.040507111059949225"/>
151.17895 +                                 <points>
151.17896 +                                    <point x="34.0" y="0.0" cp1x="34.0" cp1y="0.0" cp2x="34.0" cp2y="0.0"/>
151.17897 +                                    <point x="27.0" y="0.0" cp1x="27.0" cp1y="0.0" cp2x="27.0" cp2y="0.0"/>
151.17898 +                                    <point x="27.0" y="14.0" cp1x="27.0" cp1y="14.0" cp2x="27.0" cp2y="14.0"/>
151.17899 +                                    <point x="31.07142857142855" y="10.928571428571425" cp1x="30.07142857142855" cp1y="11.928571428571425" cp2x="32.071428571428555" cp2y="9.928571428571425"/>
151.17900 +                                    <point x="34.0" y="6.0" cp1x="34.0" cp1y="6.0" cp2x="34.0" cp2y="6.0"/>
151.17901 +                                 </points>
151.17902 +                              </path>
151.17903 +                              <path>
151.17904 +                                 <gradient cycleMethod="NO_CYCLE">
151.17905 +                                    <stop position="0.0" midpoint="0.1">
151.17906 +                                       <matte red="56" green="57" blue="59" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.05967886" brightnessOffset="-0.5137255" alphaOffset="0"/>
151.17907 +                                    </stop>
151.17908 +                                    <stop position="1.0" midpoint="0.5">
151.17909 +                                       <matte red="56" green="57" blue="59" alpha="0" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.05967886" brightnessOffset="-0.5137255" alphaOffset="-255"/>
151.17910 +                                    </stop>
151.17911 +                                 </gradient>
151.17912 +                                 <paintPoints x1="0.0" y1="0.0" x2="0.9285714285714282" y2="0.12244897959183673"/>
151.17913 +                                 <points>
151.17914 +                                    <point x="7.0" y="0.0" cp1x="7.0" cp1y="0.0" cp2x="7.0" cp2y="0.0"/>
151.17915 +                                    <point x="0.0" y="0.0" cp1x="0.0" cp1y="0.0" cp2x="0.0" cp2y="0.0"/>
151.17916 +                                    <point x="0.0" y="6.0" cp1x="0.0" cp1y="6.0" cp2x="0.0" cp2y="6.0"/>
151.17917 +                                    <point x="3.0" y="11.0" cp1x="2.0" cp1y="10.0" cp2x="4.0" cp2y="12.0"/>
151.17918 +                                    <point x="6.785714285714284" y="13.999999999999995" cp1x="6.785714285714284" cp1y="13.999999999999995" cp2x="6.785714285714284" cp2y="13.999999999999995"/>
151.17919 +                                 </points>
151.17920 +                              </path>
151.17921 +                           </shapes>
151.17922 +                           <effects/>
151.17923 +                        </layer>
151.17924 +                        <layer name="Layer 1">
151.17925 +                           <opacity>1.0</opacity>
151.17926 +                           <fillOpacity>1.0</fillOpacity>
151.17927 +                           <blendingMode>NORMAL</blendingMode>
151.17928 +                           <locked>false</locked>
151.17929 +                           <visible>true</visible>
151.17930 +                           <shapes>
151.17931 +                              <rectangle x1="0.0" x2="34.0" y1="0.0" y2="15.0" rounding="0.0">
151.17932 +                                 <gradient cycleMethod="NO_CYCLE">
151.17933 +                                    <stop position="0.0" midpoint="0.5">
151.17934 +                                       <matte red="104" green="105" blue="109" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.02222228" saturationOffset="-0.06465475" brightnessOffset="-0.31764707" alphaOffset="0"/>
151.17935 +                                    </stop>
151.17936 +                                    <stop position="0.061290324" midpoint="0.5">
151.17937 +                                       <matte red="134" green="136" blue="140" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06766917" brightnessOffset="-0.19607842" alphaOffset="0"/>
151.17938 +                                    </stop>
151.17939 +                                    <stop position="0.13225806" midpoint="0.5">
151.17940 +                                       <matte red="170" green="173" blue="178" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.006944418" saturationOffset="-0.0655825" brightnessOffset="-0.04705882" alphaOffset="0"/>
151.17941 +                                    </stop>
151.17942 +                                    <stop position="0.30967742" midpoint="0.32105264">
151.17943 +                                       <matte red="195" green="197" blue="203" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0138888955" saturationOffset="-0.071117446" brightnessOffset="0.05098039" alphaOffset="0"/>
151.17944 +                                    </stop>
151.17945 +                                    <stop position="0.82258064" midpoint="0.5">
151.17946 +                                       <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
151.17947 +                                    </stop>
151.17948 +                                 </gradient>
151.17949 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.17950 +                              </rectangle>
151.17951 +                           </shapes>
151.17952 +                           <effects/>
151.17953 +                        </layer>
151.17954 +                        <templateLayer fileName="1140122fb90.png">
151.17955 +                           <layer name="Template" type="template">
151.17956 +                              <opacity>1.0</opacity>
151.17957 +                              <fillOpacity>1.0</fillOpacity>
151.17958 +                              <blendingMode>NORMAL</blendingMode>
151.17959 +                              <locked>false</locked>
151.17960 +                              <visible>true</visible>
151.17961 +                              <shapes/>
151.17962 +                              <effects/>
151.17963 +                           </layer>
151.17964 +                        </templateLayer>
151.17965 +                     </canvas>
151.17966 +                  </state>
151.17967 +               </backgroundStates>
151.17968 +               <foregroundStates/>
151.17969 +               <borderStates/>
151.17970 +               <regions/>
151.17971 +            </region>
151.17972 +         </regions>
151.17973 +      </uiComponent>
151.17974 +      <uiComponent opaque="false" type="javax.swing.JScrollPane" name="ScrollPane" ui="ScrollPaneUI" subregion="false">
151.17975 +         <stateTypes/>
151.17976 +         <contentMargins top="3" bottom="3" left="3" right="3"/>
151.17977 +         <style>
151.17978 +            <textForeground/>
151.17979 +            <textBackground/>
151.17980 +            <background/>
151.17981 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.17982 +            <cacheMode>NO_CACHING</cacheMode>
151.17983 +            <uiproperties>
151.17984 +               <uiProperty name="useChildTextComponentFocus" type="BOOLEAN" value="true"/>
151.17985 +            </uiproperties>
151.17986 +         </style>
151.17987 +         <backgroundStates>
151.17988 +            <state stateKeys="Enabled">
151.17989 +               <style>
151.17990 +                  <textForeground/>
151.17991 +                  <textBackground/>
151.17992 +                  <background/>
151.17993 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.17994 +                  <uiproperties/>
151.17995 +               </style>
151.17996 +               <canvas>
151.17997 +                  <size width="100" height="30"/>
151.17998 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.17999 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.18000 +                  <layer name="Layer 1">
151.18001 +                     <opacity>1.0</opacity>
151.18002 +                     <fillOpacity>1.0</fillOpacity>
151.18003 +                     <blendingMode>NORMAL</blendingMode>
151.18004 +                     <locked>false</locked>
151.18005 +                     <visible>true</visible>
151.18006 +                     <shapes/>
151.18007 +                     <effects/>
151.18008 +                  </layer>
151.18009 +               </canvas>
151.18010 +            </state>
151.18011 +         </backgroundStates>
151.18012 +         <foregroundStates/>
151.18013 +         <borderStates>
151.18014 +            <state stateKeys="Enabled+Focused">
151.18015 +               <style>
151.18016 +                  <textForeground/>
151.18017 +                  <textBackground/>
151.18018 +                  <background/>
151.18019 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.18020 +                  <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.18021 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.18022 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.18023 +                  <uiproperties/>
151.18024 +               </style>
151.18025 +               <canvas>
151.18026 +                  <size width="122" height="24"/>
151.18027 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
151.18028 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.18029 +                  <layer name="Layer 2">
151.18030 +                     <opacity>1.0</opacity>
151.18031 +                     <fillOpacity>1.0</fillOpacity>
151.18032 +                     <blendingMode>NORMAL</blendingMode>
151.18033 +                     <locked>false</locked>
151.18034 +                     <visible>true</visible>
151.18035 +                     <shapes>
151.18036 +                        <path>
151.18037 +                           <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.18038 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.18039 +                           <points>
151.18040 +                              <point x="2.0" y="2.0" cp1x="2.0" cp1y="2.0" cp2x="2.0" cp2y="2.0"/>
151.18041 +                              <point x="2.0" y="22.0" cp1x="2.0" cp1y="22.0" cp2x="2.0" cp2y="22.0"/>
151.18042 +                              <point x="120.0" y="22.0" cp1x="120.0" cp1y="22.0" cp2x="120.0" cp2y="22.0"/>
151.18043 +                              <point x="120.0" y="2.0" cp1x="120.0" cp1y="2.0" cp2x="120.0" cp2y="2.0"/>
151.18044 +                              <point x="121.4" y="2.0" cp1x="121.5" cp1y="2.0" cp2x="121.5" cp2y="2.0"/>
151.18045 +                              <point x="121.4" y="23.4" cp1x="121.4" cp1y="23.4" cp2x="121.4" cp2y="23.4"/>
151.18046 +                              <point x="0.6" y="23.4" cp1x="0.6" cp1y="23.4" cp2x="0.6" cp2y="23.4"/>
151.18047 +                              <point x="0.6" y="0.6" cp1x="0.6" cp1y="0.6" cp2x="0.6" cp2y="0.6"/>
151.18048 +                              <point x="121.4" y="0.6" cp1x="121.4" cp1y="0.6" cp2x="121.4" cp2y="0.6"/>
151.18049 +                              <point x="121.4" y="2.0" cp1x="121.4" cp1y="2.0" cp2x="121.4" cp2y="2.0"/>
151.18050 +                           </points>
151.18051 +                        </path>
151.18052 +                        <rectangle x1="3.0" x2="119.0" y1="21.0" y2="22.0" rounding="0.0">
151.18053 +                           <matte red="146" green="151" blue="161" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.18054 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.18055 +                        </rectangle>
151.18056 +                        <rectangle x1="119.0" x2="120.0" y1="2.0" y2="22.0" rounding="0.0">
151.18057 +                           <matte red="146" green="151" blue="161" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.18058 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.18059 +                        </rectangle>
151.18060 +                        <rectangle x1="2.0" x2="3.0" y1="2.0" y2="22.0" rounding="0.0">
151.18061 +                           <matte red="146" green="151" blue="161" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.18062 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.18063 +                        </rectangle>
151.18064 +                        <rectangle x1="3.0" x2="119.0" y1="2.0" y2="3.0" rounding="0.0">
151.18065 +                           <matte red="146" green="151" blue="161" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.18066 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.18067 +                        </rectangle>
151.18068 +                     </shapes>
151.18069 +                     <effects/>
151.18070 +                  </layer>
151.18071 +               </canvas>
151.18072 +            </state>
151.18073 +            <state stateKeys="Enabled">
151.18074 +               <style>
151.18075 +                  <textForeground/>
151.18076 +                  <textBackground/>
151.18077 +                  <background/>
151.18078 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.18079 +                  <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.18080 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.18081 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.18082 +                  <uiproperties/>
151.18083 +               </style>
151.18084 +               <canvas>
151.18085 +                  <size width="122" height="24"/>
151.18086 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
151.18087 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.18088 +                  <layer name="Layer 2">
151.18089 +                     <opacity>1.0</opacity>
151.18090 +                     <fillOpacity>1.0</fillOpacity>
151.18091 +                     <blendingMode>NORMAL</blendingMode>
151.18092 +                     <locked>false</locked>
151.18093 +                     <visible>true</visible>
151.18094 +                     <shapes>
151.18095 +                        <rectangle x1="3.0" x2="119.0" y1="21.0" y2="22.0" rounding="0.0">
151.18096 +                           <matte red="146" green="151" blue="161" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.18097 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.18098 +                        </rectangle>
151.18099 +                        <rectangle x1="119.0" x2="120.0" y1="2.0" y2="22.0" rounding="0.0">
151.18100 +                           <matte red="146" green="151" blue="161" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.18101 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.18102 +                        </rectangle>
151.18103 +                        <rectangle x1="2.0" x2="3.0" y1="2.0" y2="22.0" rounding="0.0">
151.18104 +                           <matte red="146" green="151" blue="161" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.18105 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.18106 +                        </rectangle>
151.18107 +                        <rectangle x1="3.0" x2="119.0" y1="2.0" y2="3.0" rounding="0.0">
151.18108 +                           <matte red="146" green="151" blue="161" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.18109 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.18110 +                        </rectangle>
151.18111 +                     </shapes>
151.18112 +                     <effects/>
151.18113 +                  </layer>
151.18114 +               </canvas>
151.18115 +            </state>
151.18116 +         </borderStates>
151.18117 +         <regions/>
151.18118 +      </uiComponent>
151.18119 +      <uiComponent opaque="true" type="javax.swing.JViewport" name="Viewport" ui="ViewportUI" subregion="false">
151.18120 +         <stateTypes/>
151.18121 +         <contentMargins top="0" bottom="0" left="0" right="0"/>
151.18122 +         <style>
151.18123 +            <textForeground/>
151.18124 +            <textBackground/>
151.18125 +            <background/>
151.18126 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.18127 +            <cacheMode>NO_CACHING</cacheMode>
151.18128 +            <uiproperties/>
151.18129 +         </style>
151.18130 +         <backgroundStates/>
151.18131 +         <foregroundStates/>
151.18132 +         <borderStates/>
151.18133 +         <regions/>
151.18134 +      </uiComponent>
151.18135 +      <uiComponent opaque="false" type="javax.swing.JSlider" name="Slider" ui="SliderUI" subregion="false">
151.18136 +         <stateTypes>
151.18137 +            <stateType key="Enabled"/>
151.18138 +            <stateType key="MouseOver"/>
151.18139 +            <stateType key="Pressed"/>
151.18140 +            <stateType key="Disabled"/>
151.18141 +            <stateType key="Focused"/>
151.18142 +            <stateType key="Selected"/>
151.18143 +            <stateType key="ArrowShape">
151.18144 +               <codeSnippet><![CDATA[ return c.getClientProperty("Slider.paintThumbArrowShape") == Boolean.TRUE; ]]></codeSnippet>
151.18145 +            </stateType>
151.18146 +         </stateTypes>
151.18147 +         <contentMargins top="0" bottom="0" left="0" right="0"/>
151.18148 +         <style>
151.18149 +            <textForeground/>
151.18150 +            <textBackground/>
151.18151 +            <background/>
151.18152 +            <uiproperties>
151.18153 +               <uiProperty name="thumbWidth" type="INT" value="17"/>
151.18154 +               <uiProperty name="thumbHeight" type="INT" value="17"/>
151.18155 +               <uiProperty name="trackBorder" type="INT" value="0"/>
151.18156 +               <uiProperty name="paintValue" type="BOOLEAN" value="false"/>
151.18157 +               <uiProperty name="tickColor" type="COLOR">
151.18158 +                  <matte red="35" green="40" blue="48" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.18159 +               </uiProperty>
151.18160 +            </uiproperties>
151.18161 +         </style>
151.18162 +         <backgroundStates/>
151.18163 +         <foregroundStates/>
151.18164 +         <borderStates/>
151.18165 +         <regions>
151.18166 +            <region name="SliderThumb" subregion="true">
151.18167 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.18168 +               <style>
151.18169 +                  <textForeground/>
151.18170 +                  <textBackground/>
151.18171 +                  <background/>
151.18172 +                  <uiproperties/>
151.18173 +               </style>
151.18174 +               <backgroundStates>
151.18175 +                  <state stateKeys="Disabled">
151.18176 +                     <style>
151.18177 +                        <textForeground/>
151.18178 +                        <textBackground/>
151.18179 +                        <background/>
151.18180 +                        <uiproperties/>
151.18181 +                     </style>
151.18182 +                     <canvas>
151.18183 +                        <size width="17" height="17"/>
151.18184 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.18185 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.18186 +                        <layer name="Layer 1">
151.18187 +                           <opacity>1.0</opacity>
151.18188 +                           <fillOpacity>1.0</fillOpacity>
151.18189 +                           <blendingMode>NORMAL</blendingMode>
151.18190 +                           <locked>false</locked>
151.18191 +                           <visible>true</visible>
151.18192 +                           <shapes>
151.18193 +                              <ellipse x1="3.0" x2="14.0" y1="3.0" y2="14.0">
151.18194 +                                 <gradient cycleMethod="NO_CYCLE">
151.18195 +                                    <stop position="0.0" midpoint="0.5">
151.18196 +                                       <matte red="221" green="225" blue="231" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.5924243" brightnessOffset="0.35686272" alphaOffset="0"/>
151.18197 +                                    </stop>
151.18198 +                                    <stop position="0.42513368" midpoint="0.5">
151.18199 +                                       <matte red="204" green="210" blue="219" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.56722116" brightnessOffset="0.3098039" alphaOffset="0"/>
151.18200 +                                    </stop>
151.18201 +                                    <stop position="1.0" midpoint="0.5">
151.18202 +                                       <matte red="208" green="214" blue="223" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.56844974" brightnessOffset="0.32549018" alphaOffset="0"/>
151.18203 +                                    </stop>
151.18204 +                                 </gradient>
151.18205 +                                 <paintPoints x1="0.5023510971786834" y1="0.0015673981191222587" x2="0.5023510971786838" y2="1.0"/>
151.18206 +                              </ellipse>
151.18207 +                              <ellipse x1="2.0" x2="15.0" y1="2.0" y2="15.0">
151.18208 +                                 <gradient cycleMethod="NO_CYCLE">
151.18209 +                                    <stop position="0.0" midpoint="0.5">
151.18210 +                                       <matte red="190" green="196" blue="205" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.5625436" brightnessOffset="0.25490195" alphaOffset="0"/>
151.18211 +                                    </stop>
151.18212 +                                    <stop position="1.0" midpoint="0.5">
151.18213 +                                       <matte red="173" green="180" blue="189" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.015098333" saturationOffset="-0.55105823" brightnessOffset="0.19215685" alphaOffset="0"/>
151.18214 +                                    </stop>
151.18215 +                                 </gradient>
151.18216 +                                 <paintPoints x1="0.510610079575597" y1="-4.553649124439119E-18" x2="0.4993368700265251" y2="1.0039787798408488"/>
151.18217 +                              </ellipse>
151.18218 +                           </shapes>
151.18219 +                           <effects/>
151.18220 +                        </layer>
151.18221 +                        <templateLayer fileName="1139ea2c125.png">
151.18222 +                           <layer name="Template" type="template">
151.18223 +                              <opacity>1.0</opacity>
151.18224 +                              <fillOpacity>1.0</fillOpacity>
151.18225 +                              <blendingMode>NORMAL</blendingMode>
151.18226 +                              <locked>false</locked>
151.18227 +                              <visible>false</visible>
151.18228 +                              <shapes/>
151.18229 +                              <effects/>
151.18230 +                           </layer>
151.18231 +                        </templateLayer>
151.18232 +                     </canvas>
151.18233 +                  </state>
151.18234 +                  <state stateKeys="Enabled">
151.18235 +                     <style>
151.18236 +                        <textForeground/>
151.18237 +                        <textBackground/>
151.18238 +                        <background/>
151.18239 +                        <uiproperties/>
151.18240 +                     </style>
151.18241 +                     <canvas>
151.18242 +                        <size width="17" height="17"/>
151.18243 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.18244 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.18245 +                        <layer name="Layer 1">
151.18246 +                           <opacity>1.0</opacity>
151.18247 +                           <fillOpacity>1.0</fillOpacity>
151.18248 +                           <blendingMode>NORMAL</blendingMode>
151.18249 +                           <locked>false</locked>
151.18250 +                           <visible>true</visible>
151.18251 +                           <shapes>
151.18252 +                              <ellipse x1="3.0" x2="14.0" y1="3.0" y2="14.0">
151.18253 +                                 <gradient cycleMethod="NO_CYCLE">
151.18254 +                                    <stop position="0.0" midpoint="0.5">
151.18255 +                                       <matte red="249" green="251" blue="252" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.023096085" saturationOffset="-0.6238095" brightnessOffset="0.43921566" alphaOffset="0"/>
151.18256 +                                    </stop>
151.18257 +                                    <stop position="0.42513368" midpoint="0.5">
151.18258 +                                       <matte red="163" green="184" blue="203" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.43866998" brightnessOffset="0.24705881" alphaOffset="0"/>
151.18259 +                                    </stop>
151.18260 +                                    <stop position="0.69786096" midpoint="0.5">
151.18261 +                                       <matte red="163" green="184" blue="203" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.43866998" brightnessOffset="0.24705881" alphaOffset="0"/>
151.18262 +                                    </stop>
151.18263 +                                    <stop position="1.0" midpoint="0.5">
151.18264 +                                       <matte red="184" green="205" blue="224" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.45714286" brightnessOffset="0.32941175" alphaOffset="0"/>
151.18265 +                                    </stop>
151.18266 +                                 </gradient>
151.18267 +                                 <paintPoints x1="0.5" y1="0.0015673981191222587" x2="0.5" y2="1.0"/>
151.18268 +                              </ellipse>
151.18269 +                              <ellipse x1="2.0" x2="15.0" y1="2.0" y2="15.0">
151.18270 +                                 <gradient cycleMethod="NO_CYCLE">
151.18271 +                                    <stop position="0.0" midpoint="0.5">
151.18272 +                                       <matte red="98" green="119" blue="138" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.34585923" brightnessOffset="-0.007843137" alphaOffset="0"/>
151.18273 +                                    </stop>
151.18274 +                                    <stop position="1.0" midpoint="0.5">
151.18275 +                                       <matte red="36" green="57" blue="75" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0017285943" saturationOffset="-0.11571431" brightnessOffset="-0.25490198" alphaOffset="0"/>
151.18276 +                                    </stop>
151.18277 +                                 </gradient>
151.18278 +                                 <paintPoints x1="0.51" y1="-4.553649124439119E-18" x2="0.51" y2="1.0039787798408488"/>
151.18279 +                              </ellipse>
151.18280 +                              <ellipse x1="2.0" x2="15.0" y1="3.0" y2="16.0">
151.18281 +                                 <matte red="111" green="116" blue="125" alpha="99" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.003968239" saturationOffset="0.0014736876" brightnessOffset="-0.25490198" alphaOffset="-156"/>
151.18282 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.18283 +                              </ellipse>
151.18284 +                           </shapes>
151.18285 +                           <effects/>
151.18286 +                        </layer>
151.18287 +                        <templateLayer fileName="1139e25a3ea.png">
151.18288 +                           <layer name="Template" type="template">
151.18289 +                              <opacity>1.0</opacity>
151.18290 +                              <fillOpacity>1.0</fillOpacity>
151.18291 +                              <blendingMode>NORMAL</blendingMode>
151.18292 +                              <locked>false</locked>
151.18293 +                              <visible>false</visible>
151.18294 +                              <shapes/>
151.18295 +                              <effects/>
151.18296 +                           </layer>
151.18297 +                        </templateLayer>
151.18298 +                     </canvas>
151.18299 +                  </state>
151.18300 +                  <state stateKeys="Focused">
151.18301 +                     <style>
151.18302 +                        <textForeground/>
151.18303 +                        <textBackground/>
151.18304 +                        <background/>
151.18305 +                        <uiproperties/>
151.18306 +                     </style>
151.18307 +                     <canvas>
151.18308 +                        <size width="17" height="17"/>
151.18309 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.18310 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.18311 +                        <layer name="Layer 1">
151.18312 +                           <opacity>1.0</opacity>
151.18313 +                           <fillOpacity>1.0</fillOpacity>
151.18314 +                           <blendingMode>NORMAL</blendingMode>
151.18315 +                           <locked>false</locked>
151.18316 +                           <visible>true</visible>
151.18317 +                           <shapes>
151.18318 +                              <ellipse x1="3.0" x2="14.0" y1="3.0" y2="14.0">
151.18319 +                                 <gradient cycleMethod="NO_CYCLE">
151.18320 +                                    <stop position="0.0" midpoint="0.5">
151.18321 +                                       <matte red="249" green="251" blue="252" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.023096085" saturationOffset="-0.6238095" brightnessOffset="0.43921566" alphaOffset="0"/>
151.18322 +                                    </stop>
151.18323 +                                    <stop position="0.42513368" midpoint="0.5">
151.18324 +                                       <matte red="163" green="184" blue="203" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.43866998" brightnessOffset="0.24705881" alphaOffset="0"/>
151.18325 +                                    </stop>
151.18326 +                                    <stop position="0.69786096" midpoint="0.5">
151.18327 +                                       <matte red="163" green="184" blue="203" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.43866998" brightnessOffset="0.24705881" alphaOffset="0"/>
151.18328 +                                    </stop>
151.18329 +                                    <stop position="1.0" midpoint="0.5">
151.18330 +                                       <matte red="184" green="205" blue="224" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.45714286" brightnessOffset="0.32941175" alphaOffset="0"/>
151.18331 +                                    </stop>
151.18332 +                                 </gradient>
151.18333 +                                 <paintPoints x1="0.5" y1="0.0015673981191222587" x2="0.5" y2="1.0"/>
151.18334 +                              </ellipse>
151.18335 +                              <ellipse x1="2.0" x2="15.0" y1="2.0" y2="15.0">
151.18336 +                                 <gradient cycleMethod="NO_CYCLE">
151.18337 +                                    <stop position="0.0" midpoint="0.5">
151.18338 +                                       <matte red="98" green="119" blue="138" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.34585923" brightnessOffset="-0.007843137" alphaOffset="0"/>
151.18339 +                                    </stop>
151.18340 +                                    <stop position="1.0" midpoint="0.5">
151.18341 +                                       <matte red="36" green="57" blue="75" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0017285943" saturationOffset="-0.11571431" brightnessOffset="-0.25490198" alphaOffset="0"/>
151.18342 +                                    </stop>
151.18343 +                                 </gradient>
151.18344 +                                 <paintPoints x1="0.51" y1="-4.553649124439119E-18" x2="0.51" y2="1.0039787798408488"/>
151.18345 +                              </ellipse>
151.18346 +                              <ellipse x1="0.6" x2="16.4" y1="0.6" y2="16.4">
151.18347 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.18348 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.18349 +                              </ellipse>
151.18350 +                           </shapes>
151.18351 +                           <effects/>
151.18352 +                        </layer>
151.18353 +                     </canvas>
151.18354 +                  </state>
151.18355 +                  <state stateKeys="Focused+MouseOver">
151.18356 +                     <style>
151.18357 +                        <textForeground/>
151.18358 +                        <textBackground/>
151.18359 +                        <background/>
151.18360 +                        <uiproperties/>
151.18361 +                     </style>
151.18362 +                     <canvas>
151.18363 +                        <size width="17" height="17"/>
151.18364 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.18365 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.18366 +                        <layer name="Layer 1">
151.18367 +                           <opacity>1.0</opacity>
151.18368 +                           <fillOpacity>1.0</fillOpacity>
151.18369 +                           <blendingMode>NORMAL</blendingMode>
151.18370 +                           <locked>false</locked>
151.18371 +                           <visible>true</visible>
151.18372 +                           <shapes>
151.18373 +                              <ellipse x1="3.0" x2="14.0" y1="3.0" y2="14.0">
151.18374 +                                 <gradient cycleMethod="NO_CYCLE">
151.18375 +                                    <stop position="0.0" midpoint="0.5">
151.18376 +                                       <matte red="251" green="252" blue="253" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.62780917" brightnessOffset="0.44313723" alphaOffset="0"/>
151.18377 +                                    </stop>
151.18378 +                                    <stop position="0.42513368" midpoint="0.5">
151.18379 +                                       <matte red="185" green="205" blue="223" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="-0.4653107" brightnessOffset="0.32549018" alphaOffset="0"/>
151.18380 +                                    </stop>
151.18381 +                                    <stop position="0.69786096" midpoint="0.5">
151.18382 +                                       <matte red="183" green="204" blue="223" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4563421" brightnessOffset="0.32549018" alphaOffset="0"/>
151.18383 +                                    </stop>
151.18384 +                                    <stop position="1.0" midpoint="0.5">
151.18385 +                                       <matte red="201" green="222" blue="240" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0017285943" saturationOffset="-0.4732143" brightnessOffset="0.39215684" alphaOffset="0"/>
151.18386 +                                    </stop>
151.18387 +                                 </gradient>
151.18388 +                                 <paintPoints x1="0.5023510971786834" y1="0.0015673981191222587" x2="0.5023510971786838" y2="1.0"/>
151.18389 +                              </ellipse>
151.18390 +                              <ellipse x1="2.0" x2="15.0" y1="2.0" y2="15.0">
151.18391 +                                 <gradient cycleMethod="NO_CYCLE">
151.18392 +                                    <stop position="0.0" midpoint="0.5">
151.18393 +                                       <matte red="53" green="80" blue="102" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0038217902" saturationOffset="-0.15532213" brightnessOffset="-0.14901963" alphaOffset="0"/>
151.18394 +                                    </stop>
151.18395 +                                    <stop position="1.0" midpoint="0.5">
151.18396 +                                       <matte red="1" green="1" blue="1" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54509807" alphaOffset="0"/>
151.18397 +                                    </stop>
151.18398 +                                 </gradient>
151.18399 +                                 <paintPoints x1="0.510610079575597" y1="-4.553649124439119E-18" x2="0.4993368700265251" y2="1.0039787798408488"/>
151.18400 +                              </ellipse>
151.18401 +                              <ellipse x1="0.6" x2="16.4" y1="0.6" y2="16.4">
151.18402 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.18403 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.18404 +                              </ellipse>
151.18405 +                           </shapes>
151.18406 +                           <effects/>
151.18407 +                        </layer>
151.18408 +                        <templateLayer fileName="1139ea4a6e6.png">
151.18409 +                           <layer name="Template" type="template">
151.18410 +                              <opacity>1.0</opacity>
151.18411 +                              <fillOpacity>1.0</fillOpacity>
151.18412 +                              <blendingMode>NORMAL</blendingMode>
151.18413 +                              <locked>false</locked>
151.18414 +                              <visible>false</visible>
151.18415 +                              <shapes/>
151.18416 +                              <effects/>
151.18417 +                           </layer>
151.18418 +                        </templateLayer>
151.18419 +                     </canvas>
151.18420 +                  </state>
151.18421 +                  <state stateKeys="Focused+Pressed">
151.18422 +                     <style>
151.18423 +                        <textForeground/>
151.18424 +                        <textBackground/>
151.18425 +                        <background/>
151.18426 +                        <uiproperties/>
151.18427 +                     </style>
151.18428 +                     <canvas>
151.18429 +                        <size width="17" height="17"/>
151.18430 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.18431 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.18432 +                        <layer name="Layer 1">
151.18433 +                           <opacity>1.0</opacity>
151.18434 +                           <fillOpacity>1.0</fillOpacity>
151.18435 +                           <blendingMode>NORMAL</blendingMode>
151.18436 +                           <locked>false</locked>
151.18437 +                           <visible>true</visible>
151.18438 +                           <shapes>
151.18439 +                              <ellipse x1="3.0" x2="14.0" y1="3.0" y2="14.0">
151.18440 +                                 <gradient cycleMethod="NO_CYCLE">
151.18441 +                                    <stop position="0.0" midpoint="0.5">
151.18442 +                                       <matte red="166" green="186" blue="204" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="-0.44943976" brightnessOffset="0.25098038" alphaOffset="0"/>
151.18443 +                                    </stop>
151.18444 +                                    <stop position="0.47593582" midpoint="0.5">
151.18445 +                                       <matte red="51" green="98" blue="140" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.18446 +                                    </stop>
151.18447 +                                    <stop position="0.5962567" midpoint="0.5">
151.18448 +                                       <matte red="51" green="98" blue="140" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.18449 +                                    </stop>
151.18450 +                                    <stop position="1.0" midpoint="0.5">
151.18451 +                                       <matte red="83" green="129" blue="171" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="8.9377165E-4" saturationOffset="-0.121094406" brightnessOffset="0.12156862" alphaOffset="0"/>
151.18452 +                                    </stop>
151.18453 +                                 </gradient>
151.18454 +                                 <paintPoints x1="0.5023510971786834" y1="0.0015673981191222587" x2="0.5023510971786838" y2="1.0"/>
151.18455 +                              </ellipse>
151.18456 +                              <ellipse x1="2.0" x2="15.0" y1="2.0" y2="15.0">
151.18457 +                                 <gradient cycleMethod="NO_CYCLE">
151.18458 +                                    <stop position="0.0" midpoint="0.5">
151.18459 +                                       <matte red="1" green="1" blue="1" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54509807" alphaOffset="0"/>
151.18460 +                                    </stop>
151.18461 +                                    <stop position="1.0" midpoint="0.5">
151.18462 +                                       <matte red="38" green="66" blue="92" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0015952587" saturationOffset="-0.04875779" brightnessOffset="-0.18823531" alphaOffset="0"/>
151.18463 +                                    </stop>
151.18464 +                                 </gradient>
151.18465 +                                 <paintPoints x1="0.510610079575597" y1="-4.553649124439119E-18" x2="0.4993368700265251" y2="1.0039787798408488"/>
151.18466 +                              </ellipse>
151.18467 +                              <ellipse x1="0.6" x2="16.4" y1="0.6" y2="16.4">
151.18468 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.18469 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.18470 +                              </ellipse>
151.18471 +                           </shapes>
151.18472 +                           <effects/>
151.18473 +                        </layer>
151.18474 +                        <templateLayer fileName="1139ea77546.png">
151.18475 +                           <layer name="Template" type="template">
151.18476 +                              <opacity>1.0</opacity>
151.18477 +                              <fillOpacity>1.0</fillOpacity>
151.18478 +                              <blendingMode>NORMAL</blendingMode>
151.18479 +                              <locked>false</locked>
151.18480 +                              <visible>false</visible>
151.18481 +                              <shapes/>
151.18482 +                              <effects/>
151.18483 +                           </layer>
151.18484 +                        </templateLayer>
151.18485 +                     </canvas>
151.18486 +                  </state>
151.18487 +                  <state stateKeys="MouseOver">
151.18488 +                     <style>
151.18489 +                        <textForeground/>
151.18490 +                        <textBackground/>
151.18491 +                        <background/>
151.18492 +                        <uiproperties/>
151.18493 +                     </style>
151.18494 +                     <canvas>
151.18495 +                        <size width="17" height="17"/>
151.18496 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.18497 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.18498 +                        <layer name="Layer 1">
151.18499 +                           <opacity>1.0</opacity>
151.18500 +                           <fillOpacity>1.0</fillOpacity>
151.18501 +                           <blendingMode>NORMAL</blendingMode>
151.18502 +                           <locked>false</locked>
151.18503 +                           <visible>true</visible>
151.18504 +                           <shapes>
151.18505 +                              <ellipse x1="3.0" x2="14.0" y1="3.0" y2="14.0">
151.18506 +                                 <gradient cycleMethod="NO_CYCLE">
151.18507 +                                    <stop position="0.0" midpoint="0.5">
151.18508 +                                       <matte red="251" green="252" blue="253" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.62780917" brightnessOffset="0.44313723" alphaOffset="0"/>
151.18509 +                                    </stop>
151.18510 +                                    <stop position="0.42513368" midpoint="0.5">
151.18511 +                                       <matte red="185" green="205" blue="223" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="-0.4653107" brightnessOffset="0.32549018" alphaOffset="0"/>
151.18512 +                                    </stop>
151.18513 +                                    <stop position="0.69786096" midpoint="0.5">
151.18514 +                                       <matte red="183" green="204" blue="223" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4563421" brightnessOffset="0.32549018" alphaOffset="0"/>
151.18515 +                                    </stop>
151.18516 +                                    <stop position="1.0" midpoint="0.5">
151.18517 +                                       <matte red="201" green="222" blue="240" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0017285943" saturationOffset="-0.4732143" brightnessOffset="0.39215684" alphaOffset="0"/>
151.18518 +                                    </stop>
151.18519 +                                 </gradient>
151.18520 +                                 <paintPoints x1="0.5023510971786834" y1="0.0015673981191222587" x2="0.5023510971786838" y2="1.0"/>
151.18521 +                              </ellipse>
151.18522 +                              <ellipse x1="2.0" x2="15.0" y1="2.0" y2="15.0">
151.18523 +                                 <gradient cycleMethod="NO_CYCLE">
151.18524 +                                    <stop position="0.0" midpoint="0.5">
151.18525 +                                       <matte red="53" green="80" blue="102" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0038217902" saturationOffset="-0.15532213" brightnessOffset="-0.14901963" alphaOffset="0"/>
151.18526 +                                    </stop>
151.18527 +                                    <stop position="1.0" midpoint="0.5">
151.18528 +                                       <matte red="1" green="1" blue="1" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54509807" alphaOffset="0"/>
151.18529 +                                    </stop>
151.18530 +                                 </gradient>
151.18531 +                                 <paintPoints x1="0.510610079575597" y1="-4.553649124439119E-18" x2="0.4993368700265251" y2="1.0039787798408488"/>
151.18532 +                              </ellipse>
151.18533 +                              <ellipse x1="2.0" x2="15.0" y1="3.0" y2="16.0">
151.18534 +                                 <matte red="111" green="116" blue="125" alpha="99" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.003968239" saturationOffset="0.0014736876" brightnessOffset="-0.25490198" alphaOffset="-156"/>
151.18535 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.18536 +                              </ellipse>
151.18537 +                           </shapes>
151.18538 +                           <effects/>
151.18539 +                        </layer>
151.18540 +                        <templateLayer fileName="1139ea4a6e6.png">
151.18541 +                           <layer name="Template" type="template">
151.18542 +                              <opacity>1.0</opacity>
151.18543 +                              <fillOpacity>1.0</fillOpacity>
151.18544 +                              <blendingMode>NORMAL</blendingMode>
151.18545 +                              <locked>false</locked>
151.18546 +                              <visible>false</visible>
151.18547 +                              <shapes/>
151.18548 +                              <effects/>
151.18549 +                           </layer>
151.18550 +                        </templateLayer>
151.18551 +                     </canvas>
151.18552 +                  </state>
151.18553 +                  <state stateKeys="Pressed">
151.18554 +                     <style>
151.18555 +                        <textForeground/>
151.18556 +                        <textBackground/>
151.18557 +                        <background/>
151.18558 +                        <uiproperties/>
151.18559 +                     </style>
151.18560 +                     <canvas>
151.18561 +                        <size width="17" height="17"/>
151.18562 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.18563 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.18564 +                        <layer name="Layer 1">
151.18565 +                           <opacity>1.0</opacity>
151.18566 +                           <fillOpacity>1.0</fillOpacity>
151.18567 +                           <blendingMode>NORMAL</blendingMode>
151.18568 +                           <locked>false</locked>
151.18569 +                           <visible>true</visible>
151.18570 +                           <shapes>
151.18571 +                              <ellipse x1="3.0" x2="14.0" y1="3.0" y2="14.0">
151.18572 +                                 <gradient cycleMethod="NO_CYCLE">
151.18573 +                                    <stop position="0.0" midpoint="0.5">
151.18574 +                                       <matte red="166" green="186" blue="204" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="-0.44943976" brightnessOffset="0.25098038" alphaOffset="0"/>
151.18575 +                                    </stop>
151.18576 +                                    <stop position="0.47593582" midpoint="0.5">
151.18577 +                                       <matte red="51" green="98" blue="140" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.18578 +                                    </stop>
151.18579 +                                    <stop position="0.5962567" midpoint="0.5">
151.18580 +                                       <matte red="51" green="98" blue="140" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.18581 +                                    </stop>
151.18582 +                                    <stop position="1.0" midpoint="0.5">
151.18583 +                                       <matte red="83" green="129" blue="171" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="8.9377165E-4" saturationOffset="-0.121094406" brightnessOffset="0.12156862" alphaOffset="0"/>
151.18584 +                                    </stop>
151.18585 +                                 </gradient>
151.18586 +                                 <paintPoints x1="0.5023510971786834" y1="0.0015673981191222587" x2="0.5023510971786838" y2="1.0"/>
151.18587 +                              </ellipse>
151.18588 +                              <ellipse x1="2.0" x2="15.0" y1="2.0" y2="15.0">
151.18589 +                                 <gradient cycleMethod="NO_CYCLE">
151.18590 +                                    <stop position="0.0" midpoint="0.5">
151.18591 +                                       <matte red="1" green="1" blue="1" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54509807" alphaOffset="0"/>
151.18592 +                                    </stop>
151.18593 +                                    <stop position="1.0" midpoint="0.5">
151.18594 +                                       <matte red="38" green="66" blue="92" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0015952587" saturationOffset="-0.04875779" brightnessOffset="-0.18823531" alphaOffset="0"/>
151.18595 +                                    </stop>
151.18596 +                                 </gradient>
151.18597 +                                 <paintPoints x1="0.510610079575597" y1="-4.553649124439119E-18" x2="0.4993368700265251" y2="1.0039787798408488"/>
151.18598 +                              </ellipse>
151.18599 +                              <ellipse x1="2.0" x2="15.0" y1="3.0" y2="16.0">
151.18600 +                                 <matte red="255" green="255" blue="255" alpha="134" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-121"/>
151.18601 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.18602 +                              </ellipse>
151.18603 +                           </shapes>
151.18604 +                           <effects/>
151.18605 +                        </layer>
151.18606 +                        <templateLayer fileName="1139ea77546.png">
151.18607 +                           <layer name="Template" type="template">
151.18608 +                              <opacity>1.0</opacity>
151.18609 +                              <fillOpacity>1.0</fillOpacity>
151.18610 +                              <blendingMode>NORMAL</blendingMode>
151.18611 +                              <locked>false</locked>
151.18612 +                              <visible>false</visible>
151.18613 +                              <shapes/>
151.18614 +                              <effects/>
151.18615 +                           </layer>
151.18616 +                        </templateLayer>
151.18617 +                     </canvas>
151.18618 +                  </state>
151.18619 +                  <state stateKeys="Enabled+ArrowShape">
151.18620 +                     <style>
151.18621 +                        <textForeground/>
151.18622 +                        <textBackground/>
151.18623 +                        <background/>
151.18624 +                        <uiproperties/>
151.18625 +                     </style>
151.18626 +                     <canvas>
151.18627 +                        <size width="17" height="17"/>
151.18628 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.18629 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.18630 +                        <layer name="Layer 1">
151.18631 +                           <opacity>1.0</opacity>
151.18632 +                           <fillOpacity>1.0</fillOpacity>
151.18633 +                           <blendingMode>NORMAL</blendingMode>
151.18634 +                           <locked>false</locked>
151.18635 +                           <visible>true</visible>
151.18636 +                           <shapes>
151.18637 +                              <path>
151.18638 +                                 <gradient cycleMethod="NO_CYCLE">
151.18639 +                                    <stop position="0.061290324" midpoint="0.5">
151.18640 +                                       <matte red="248" green="250" blue="251" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.023096085" saturationOffset="-0.62376213" brightnessOffset="0.4352941" alphaOffset="0"/>
151.18641 +                                    </stop>
151.18642 +                                    <stop position="0.14193548" midpoint="0.5">
151.18643 +                                       <matte red="232" green="237" blue="242" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.594392" brightnessOffset="0.39999998" alphaOffset="0"/>
151.18644 +                                    </stop>
151.18645 +                                    <stop position="0.46129033" midpoint="0.5">
151.18646 +                                       <matte red="166" green="187" blue="205" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0017285943" saturationOffset="-0.4454704" brightnessOffset="0.25490195" alphaOffset="0"/>
151.18647 +                                    </stop>
151.18648 +                                    <stop position="0.7354839" midpoint="0.5">
151.18649 +                                       <matte red="191" green="212" blue="231" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4625541" brightnessOffset="0.35686272" alphaOffset="0"/>
151.18650 +                                    </stop>
151.18651 +                                    <stop position="0.8516129" midpoint="0.5">
151.18652 +                                       <matte red="208" green="229" blue="248" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.47442397" brightnessOffset="0.4235294" alphaOffset="0"/>
151.18653 +                                    </stop>
151.18654 +                                 </gradient>
151.18655 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.18656 +                                 <points>
151.18657 +                                    <point x="4.027803030303029" y="3.004848484848486" cp1x="3.032649021149256" cp1y="4.6674981382317355" cp2x="4.536011975539247" cp2y="2.155760385045938"/>
151.18658 +                                    <point x="13.846363636363638" y="9.291818181818181" cp1x="13.849548242977425" cp1y="8.685129924076254" cp2x="13.842473440242545" cp2y="10.03292582656201"/>
151.18659 +                                    <point x="3.9727272727272753" y="13.966363636363635" cp1x="4.359824654142523" cp1y="15.207145646334764" cp2x="3.5863614419930605" cp2y="12.727926501268922"/>
151.18660 +                                 </points>
151.18661 +                              </path>
151.18662 +                              <path>
151.18663 +                                 <gradient cycleMethod="NO_CYCLE">
151.18664 +                                    <stop position="0.0" midpoint="0.5">
151.18665 +                                       <matte red="104" green="121" blue="135" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0033828616" saturationOffset="-0.40608466" brightnessOffset="-0.019607842" alphaOffset="0"/>
151.18666 +                                    </stop>
151.18667 +                                    <stop position="0.48064515" midpoint="0.5">
151.18668 +                                       <matte red="47" green="68" blue="87" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.17594418" brightnessOffset="-0.20784315" alphaOffset="0"/>
151.18669 +                                    </stop>
151.18670 +                                    <stop position="1.0" midpoint="0.5">
151.18671 +                                       <matte red="32" green="50" blue="67" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0023007393" saturationOffset="-0.11332625" brightnessOffset="-0.28627452" alphaOffset="0"/>
151.18672 +                                    </stop>
151.18673 +                                 </gradient>
151.18674 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.18675 +                                 <points>
151.18676 +                                    <point x="3.077651515151513" y="14.977272727272723" cp1x="2.3276635759026876" cp1y="13.892921695242634" cp2x="3.9874604605873967" cp2y="16.29269690585581"/>
151.18677 +                                    <point x="15.07575757575758" y="9.278409090909093" cp1x="15.090346383854083" cp1y="10.207961161875609" cp2x="15.062102395509116" cp2y="8.408344792618548"/>
151.18678 +                                    <point x="3.046195652173914" y="2.035820158102767" cp1x="4.019189127078684" cp1y="0.6109557613825192" cp2x="2.297674764597527" cp2y="3.1319639559976284"/>
151.18679 +                                 </points>
151.18680 +                              </path>
151.18681 +                              <path>
151.18682 +                                 <matte red="150" green="156" blue="168" alpha="146" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.18683 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.18684 +                                 <points>
151.18685 +                                    <point x="4.083333333333332" y="2.503787878787879" cp1x="2.2198078146656997" cp1y="2.872783314232221" cp2x="5.647660212943894" cp2y="2.194036564766758"/>
151.18686 +                                    <point x="15.962727272727284" y="9.281818181818181" cp1x="16.020900857276246" cp1y="8.817054690620388" cp2x="15.621858714169313" cp2y="12.005103372910728"/>
151.18687 +                                    <point x="3.5031818181818175" y="15.846818181818183" cp1x="8.071309735244107" cp1y="15.840803266669884" cp2x="-0.020213740918331703" cp2y="15.85145748389261"/>
151.18688 +                                 </points>
151.18689 +                              </path>
151.18690 +                           </shapes>
151.18691 +                           <effects/>
151.18692 +                        </layer>
151.18693 +                     </canvas>
151.18694 +                  </state>
151.18695 +                  <state stateKeys="Disabled+ArrowShape">
151.18696 +                     <style>
151.18697 +                        <textForeground/>
151.18698 +                        <textBackground/>
151.18699 +                        <background/>
151.18700 +                        <uiproperties/>
151.18701 +                     </style>
151.18702 +                     <canvas>
151.18703 +                        <size width="17" height="17"/>
151.18704 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.18705 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.18706 +                        <layer name="Layer 1">
151.18707 +                           <opacity>1.0</opacity>
151.18708 +                           <fillOpacity>1.0</fillOpacity>
151.18709 +                           <blendingMode>NORMAL</blendingMode>
151.18710 +                           <locked>false</locked>
151.18711 +                           <visible>true</visible>
151.18712 +                           <shapes>
151.18713 +                              <path>
151.18714 +                                 <gradient cycleMethod="NO_CYCLE">
151.18715 +                                    <stop position="0.0" midpoint="0.5">
151.18716 +                                       <matte red="221" green="225" blue="231" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.5924243" brightnessOffset="0.35686272" alphaOffset="0"/>
151.18717 +                                    </stop>
151.18718 +                                    <stop position="0.42513368" midpoint="0.5">
151.18719 +                                       <matte red="204" green="210" blue="219" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.56722116" brightnessOffset="0.3098039" alphaOffset="0"/>
151.18720 +                                    </stop>
151.18721 +                                    <stop position="1.0" midpoint="0.5">
151.18722 +                                       <matte red="208" green="214" blue="223" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.56844974" brightnessOffset="0.32549018" alphaOffset="0"/>
151.18723 +                                    </stop>
151.18724 +                                 </gradient>
151.18725 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.18726 +                                 <points>
151.18727 +                                    <point x="4.027803030303029" y="3.004848484848486" cp1x="3.032649021149256" cp1y="4.6674981382317355" cp2x="4.536011975539247" cp2y="2.155760385045938"/>
151.18728 +                                    <point x="13.846363636363638" y="9.291818181818181" cp1x="13.849548242977425" cp1y="8.685129924076254" cp2x="13.842473440242545" cp2y="10.03292582656201"/>
151.18729 +                                    <point x="3.9727272727272753" y="13.966363636363635" cp1x="4.359824654142523" cp1y="15.207145646334764" cp2x="3.5863614419930605" cp2y="12.727926501268922"/>
151.18730 +                                 </points>
151.18731 +                              </path>
151.18732 +                              <path>
151.18733 +                                 <gradient cycleMethod="NO_CYCLE">
151.18734 +                                    <stop position="0.0" midpoint="0.5">
151.18735 +                                       <matte red="190" green="196" blue="205" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.5625436" brightnessOffset="0.25490195" alphaOffset="0"/>
151.18736 +                                    </stop>
151.18737 +                                    <stop position="1.0" midpoint="0.5">
151.18738 +                                       <matte red="173" green="180" blue="189" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.015098333" saturationOffset="-0.55105823" brightnessOffset="0.19215685" alphaOffset="0"/>
151.18739 +                                    </stop>
151.18740 +                                 </gradient>
151.18741 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.18742 +                                 <points>
151.18743 +                                    <point x="3.077651515151513" y="14.977272727272723" cp1x="2.3276635759026876" cp1y="13.892921695242634" cp2x="3.9874604605873967" cp2y="16.29269690585581"/>
151.18744 +                                    <point x="15.07575757575758" y="9.278409090909093" cp1x="15.090346383854083" cp1y="10.207961161875609" cp2x="15.062102395509116" cp2y="8.408344792618548"/>
151.18745 +                                    <point x="3.046195652173914" y="2.035820158102767" cp1x="4.019189127078684" cp1y="0.6109557613825192" cp2x="2.297674764597527" cp2y="3.1319639559976284"/>
151.18746 +                                 </points>
151.18747 +                              </path>
151.18748 +                           </shapes>
151.18749 +                           <effects/>
151.18750 +                        </layer>
151.18751 +                     </canvas>
151.18752 +                  </state>
151.18753 +                  <state stateKeys="MouseOver+ArrowShape">
151.18754 +                     <style>
151.18755 +                        <textForeground/>
151.18756 +                        <textBackground/>
151.18757 +                        <background/>
151.18758 +                        <uiproperties/>
151.18759 +                     </style>
151.18760 +                     <canvas>
151.18761 +                        <size width="17" height="17"/>
151.18762 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.18763 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.18764 +                        <layer name="Layer 1">
151.18765 +                           <opacity>1.0</opacity>
151.18766 +                           <fillOpacity>1.0</fillOpacity>
151.18767 +                           <blendingMode>NORMAL</blendingMode>
151.18768 +                           <locked>false</locked>
151.18769 +                           <visible>true</visible>
151.18770 +                           <shapes>
151.18771 +                              <path>
151.18772 +                                 <gradient cycleMethod="NO_CYCLE">
151.18773 +                                    <stop position="0.0" midpoint="0.5">
151.18774 +                                       <matte red="251" green="252" blue="253" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.62780917" brightnessOffset="0.44313723" alphaOffset="0"/>
151.18775 +                                    </stop>
151.18776 +                                    <stop position="0.42513368" midpoint="0.5">
151.18777 +                                       <matte red="185" green="205" blue="223" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="-0.4653107" brightnessOffset="0.32549018" alphaOffset="0"/>
151.18778 +                                    </stop>
151.18779 +                                    <stop position="0.69786096" midpoint="0.5">
151.18780 +                                       <matte red="183" green="204" blue="223" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4563421" brightnessOffset="0.32549018" alphaOffset="0"/>
151.18781 +                                    </stop>
151.18782 +                                    <stop position="1.0" midpoint="0.5">
151.18783 +                                       <matte red="201" green="222" blue="240" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0017285943" saturationOffset="-0.4732143" brightnessOffset="0.39215684" alphaOffset="0"/>
151.18784 +                                    </stop>
151.18785 +                                 </gradient>
151.18786 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.18787 +                                 <points>
151.18788 +                                    <point x="4.027803030303029" y="3.004848484848486" cp1x="3.032649021149256" cp1y="4.6674981382317355" cp2x="4.536011975539247" cp2y="2.155760385045938"/>
151.18789 +                                    <point x="13.846363636363638" y="9.291818181818181" cp1x="13.849548242977425" cp1y="8.685129924076254" cp2x="13.842473440242545" cp2y="10.03292582656201"/>
151.18790 +                                    <point x="3.9727272727272753" y="13.966363636363635" cp1x="4.359824654142523" cp1y="15.207145646334764" cp2x="3.5863614419930605" cp2y="12.727926501268922"/>
151.18791 +                                 </points>
151.18792 +                              </path>
151.18793 +                              <path>
151.18794 +                                 <gradient cycleMethod="NO_CYCLE">
151.18795 +                                    <stop position="0.0" midpoint="0.5">
151.18796 +                                       <matte red="53" green="80" blue="102" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0038217902" saturationOffset="-0.15532213" brightnessOffset="-0.14901963" alphaOffset="0"/>
151.18797 +                                    </stop>
151.18798 +                                    <stop position="1.0" midpoint="0.5">
151.18799 +                                       <matte red="1" green="1" blue="1" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54509807" alphaOffset="0"/>
151.18800 +                                    </stop>
151.18801 +                                 </gradient>
151.18802 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.18803 +                                 <points>
151.18804 +                                    <point x="3.077651515151513" y="14.977272727272723" cp1x="2.3276635759026876" cp1y="13.892921695242634" cp2x="3.9874604605873967" cp2y="16.29269690585581"/>
151.18805 +                                    <point x="15.07575757575758" y="9.278409090909093" cp1x="15.090346383854083" cp1y="10.207961161875609" cp2x="15.062102395509116" cp2y="8.408344792618548"/>
151.18806 +                                    <point x="3.046195652173914" y="2.035820158102767" cp1x="4.019189127078684" cp1y="0.6109557613825192" cp2x="2.297674764597527" cp2y="3.1319639559976284"/>
151.18807 +                                 </points>
151.18808 +                              </path>
151.18809 +                              <path>
151.18810 +                                 <matte red="150" green="156" blue="168" alpha="146" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.18811 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.18812 +                                 <points>
151.18813 +                                    <point x="4.083333333333332" y="2.503787878787879" cp1x="2.2198078146656997" cp1y="2.872783314232221" cp2x="5.647660212943894" cp2y="2.194036564766758"/>
151.18814 +                                    <point x="15.962727272727284" y="9.281818181818181" cp1x="16.020900857276246" cp1y="8.817054690620388" cp2x="15.621858714169313" cp2y="12.005103372910728"/>
151.18815 +                                    <point x="3.5031818181818175" y="15.846818181818183" cp1x="8.071309735244107" cp1y="15.840803266669884" cp2x="-0.020213740918331703" cp2y="15.85145748389261"/>
151.18816 +                                 </points>
151.18817 +                              </path>
151.18818 +                           </shapes>
151.18819 +                           <effects/>
151.18820 +                        </layer>
151.18821 +                     </canvas>
151.18822 +                  </state>
151.18823 +                  <state stateKeys="Pressed+ArrowShape">
151.18824 +                     <style>
151.18825 +                        <textForeground/>
151.18826 +                        <textBackground/>
151.18827 +                        <background/>
151.18828 +                        <uiproperties/>
151.18829 +                     </style>
151.18830 +                     <canvas>
151.18831 +                        <size width="17" height="17"/>
151.18832 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.18833 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.18834 +                        <layer name="Layer 1">
151.18835 +                           <opacity>1.0</opacity>
151.18836 +                           <fillOpacity>1.0</fillOpacity>
151.18837 +                           <blendingMode>NORMAL</blendingMode>
151.18838 +                           <locked>false</locked>
151.18839 +                           <visible>true</visible>
151.18840 +                           <shapes>
151.18841 +                              <path>
151.18842 +                                 <gradient cycleMethod="NO_CYCLE">
151.18843 +                                    <stop position="0.0" midpoint="0.5">
151.18844 +                                       <matte red="166" green="186" blue="204" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="-0.44943976" brightnessOffset="0.25098038" alphaOffset="0"/>
151.18845 +                                    </stop>
151.18846 +                                    <stop position="0.47593582" midpoint="0.5">
151.18847 +                                       <matte red="51" green="98" blue="140" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.18848 +                                    </stop>
151.18849 +                                    <stop position="0.5962567" midpoint="0.5">
151.18850 +                                       <matte red="51" green="98" blue="140" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.18851 +                                    </stop>
151.18852 +                                    <stop position="1.0" midpoint="0.5">
151.18853 +                                       <matte red="83" green="129" blue="171" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="8.9377165E-4" saturationOffset="-0.121094406" brightnessOffset="0.12156862" alphaOffset="0"/>
151.18854 +                                    </stop>
151.18855 +                                 </gradient>
151.18856 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.18857 +                                 <points>
151.18858 +                                    <point x="4.027803030303029" y="3.004848484848486" cp1x="3.032649021149256" cp1y="4.6674981382317355" cp2x="4.536011975539247" cp2y="2.155760385045938"/>
151.18859 +                                    <point x="13.846363636363638" y="9.291818181818181" cp1x="13.849548242977425" cp1y="8.685129924076254" cp2x="13.842473440242545" cp2y="10.03292582656201"/>
151.18860 +                                    <point x="3.9727272727272753" y="13.966363636363635" cp1x="4.359824654142523" cp1y="15.207145646334764" cp2x="3.5863614419930605" cp2y="12.727926501268922"/>
151.18861 +                                 </points>
151.18862 +                              </path>
151.18863 +                              <path>
151.18864 +                                 <gradient cycleMethod="NO_CYCLE">
151.18865 +                                    <stop position="0.0" midpoint="0.5">
151.18866 +                                       <matte red="1" green="1" blue="1" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54509807" alphaOffset="0"/>
151.18867 +                                    </stop>
151.18868 +                                    <stop position="1.0" midpoint="0.5">
151.18869 +                                       <matte red="38" green="66" blue="92" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0015952587" saturationOffset="-0.04875779" brightnessOffset="-0.18823531" alphaOffset="0"/>
151.18870 +                                    </stop>
151.18871 +                                 </gradient>
151.18872 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.18873 +                                 <points>
151.18874 +                                    <point x="3.077651515151513" y="14.977272727272723" cp1x="2.3276635759026876" cp1y="13.892921695242634" cp2x="3.9874604605873967" cp2y="16.29269690585581"/>
151.18875 +                                    <point x="15.07575757575758" y="9.278409090909093" cp1x="15.090346383854083" cp1y="10.207961161875609" cp2x="15.062102395509116" cp2y="8.408344792618548"/>
151.18876 +                                    <point x="3.046195652173914" y="2.035820158102767" cp1x="4.019189127078684" cp1y="0.6109557613825192" cp2x="2.297674764597527" cp2y="3.1319639559976284"/>
151.18877 +                                 </points>
151.18878 +                              </path>
151.18879 +                              <path>
151.18880 +                                 <matte red="150" green="156" blue="168" alpha="146" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.18881 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.18882 +                                 <points>
151.18883 +                                    <point x="4.083333333333332" y="2.503787878787879" cp1x="2.2198078146656997" cp1y="2.872783314232221" cp2x="5.647660212943894" cp2y="2.194036564766758"/>
151.18884 +                                    <point x="15.962727272727284" y="9.281818181818181" cp1x="16.020900857276246" cp1y="8.817054690620388" cp2x="15.621858714169313" cp2y="12.005103372910728"/>
151.18885 +                                    <point x="3.5031818181818175" y="15.846818181818183" cp1x="8.071309735244107" cp1y="15.840803266669884" cp2x="-0.020213740918331703" cp2y="15.85145748389261"/>
151.18886 +                                 </points>
151.18887 +                              </path>
151.18888 +                           </shapes>
151.18889 +                           <effects/>
151.18890 +                        </layer>
151.18891 +                     </canvas>
151.18892 +                  </state>
151.18893 +                  <state stateKeys="Focused+ArrowShape">
151.18894 +                     <style>
151.18895 +                        <textForeground/>
151.18896 +                        <textBackground/>
151.18897 +                        <background/>
151.18898 +                        <uiproperties/>
151.18899 +                     </style>
151.18900 +                     <canvas>
151.18901 +                        <size width="17" height="17"/>
151.18902 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.18903 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.18904 +                        <layer name="Layer 1">
151.18905 +                           <opacity>1.0</opacity>
151.18906 +                           <fillOpacity>1.0</fillOpacity>
151.18907 +                           <blendingMode>NORMAL</blendingMode>
151.18908 +                           <locked>false</locked>
151.18909 +                           <visible>true</visible>
151.18910 +                           <shapes>
151.18911 +                              <path>
151.18912 +                                 <gradient cycleMethod="NO_CYCLE">
151.18913 +                                    <stop position="0.061290324" midpoint="0.5">
151.18914 +                                       <matte red="248" green="250" blue="251" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.023096085" saturationOffset="-0.62376213" brightnessOffset="0.4352941" alphaOffset="0"/>
151.18915 +                                    </stop>
151.18916 +                                    <stop position="0.14193548" midpoint="0.5">
151.18917 +                                       <matte red="232" green="237" blue="242" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.594392" brightnessOffset="0.39999998" alphaOffset="0"/>
151.18918 +                                    </stop>
151.18919 +                                    <stop position="0.46129033" midpoint="0.5">
151.18920 +                                       <matte red="166" green="187" blue="205" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0017285943" saturationOffset="-0.4454704" brightnessOffset="0.25490195" alphaOffset="0"/>
151.18921 +                                    </stop>
151.18922 +                                    <stop position="0.7354839" midpoint="0.5">
151.18923 +                                       <matte red="191" green="212" blue="231" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4625541" brightnessOffset="0.35686272" alphaOffset="0"/>
151.18924 +                                    </stop>
151.18925 +                                    <stop position="0.8516129" midpoint="0.5">
151.18926 +                                       <matte red="208" green="229" blue="248" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.47442397" brightnessOffset="0.4235294" alphaOffset="0"/>
151.18927 +                                    </stop>
151.18928 +                                 </gradient>
151.18929 +                                 <paintPoints x1="0.4925773044082732" y1="0.08201986267797506" x2="0.4925773044082731" y2="0.9179801373220249"/>
151.18930 +                                 <points>
151.18931 +                                    <point x="4.027803030303029" y="3.004848484848486" cp1x="3.032649021149256" cp1y="4.6674981382317355" cp2x="4.536011975539247" cp2y="2.155760385045938"/>
151.18932 +                                    <point x="13.846363636363638" y="9.291818181818181" cp1x="13.849548242977425" cp1y="8.685129924076254" cp2x="13.842473440242545" cp2y="10.03292582656201"/>
151.18933 +                                    <point x="3.9727272727272753" y="13.966363636363635" cp1x="4.359824654142523" cp1y="15.207145646334764" cp2x="3.5863614419930605" cp2y="12.727926501268922"/>
151.18934 +                                 </points>
151.18935 +                              </path>
151.18936 +                              <path>
151.18937 +                                 <gradient cycleMethod="NO_CYCLE">
151.18938 +                                    <stop position="0.0" midpoint="0.5">
151.18939 +                                       <matte red="104" green="121" blue="135" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0033828616" saturationOffset="-0.40608466" brightnessOffset="-0.019607842" alphaOffset="0"/>
151.18940 +                                    </stop>
151.18941 +                                    <stop position="0.48064515" midpoint="0.5">
151.18942 +                                       <matte red="47" green="68" blue="87" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.17594418" brightnessOffset="-0.20784315" alphaOffset="0"/>
151.18943 +                                    </stop>
151.18944 +                                    <stop position="1.0" midpoint="0.5">
151.18945 +                                       <matte red="32" green="50" blue="67" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0023007393" saturationOffset="-0.11332625" brightnessOffset="-0.28627452" alphaOffset="0"/>
151.18946 +                                    </stop>
151.18947 +                                 </gradient>
151.18948 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.18949 +                                 <points>
151.18950 +                                    <point x="3.077651515151513" y="14.977272727272723" cp1x="2.3276635759026876" cp1y="13.892921695242634" cp2x="3.9874604605873967" cp2y="16.29269690585581"/>
151.18951 +                                    <point x="15.07575757575758" y="9.278409090909093" cp1x="15.090346383854083" cp1y="10.207961161875609" cp2x="15.062102395509116" cp2y="8.408344792618548"/>
151.18952 +                                    <point x="3.046195652173914" y="2.035820158102767" cp1x="4.019189127078684" cp1y="0.6109557613825192" cp2x="2.297674764597527" cp2y="3.1319639559976284"/>
151.18953 +                                 </points>
151.18954 +                              </path>
151.18955 +                              <path>
151.18956 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.18957 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.18958 +                                 <points>
151.18959 +                                    <point x="3.0029761904761894" y="0.5863771645021645" cp1x="1.139450671808557" cp1y="0.9553725999465068" cp2x="4.5673030700867505" cp2y="0.27662585048104366"/>
151.18960 +                                    <point x="15.962727272727284" y="9.281818181818181" cp1x="15.967133116737259" cp1y="8.093702027571416" cp2x="15.955362732066009" cp2y="11.267800824067251"/>
151.18961 +                                    <point x="3.5031818181818175" y="16.34681818181818" cp1x="6.274868164827076" cp1y="16.33784359983059" cp2x="-0.25171732582327255" cp2y="16.358976357747352"/>
151.18962 +                                 </points>
151.18963 +                              </path>
151.18964 +                           </shapes>
151.18965 +                           <effects/>
151.18966 +                        </layer>
151.18967 +                     </canvas>
151.18968 +                  </state>
151.18969 +                  <state stateKeys="Focused+MouseOver+ArrowShape">
151.18970 +                     <style>
151.18971 +                        <textForeground/>
151.18972 +                        <textBackground/>
151.18973 +                        <background/>
151.18974 +                        <uiproperties/>
151.18975 +                     </style>
151.18976 +                     <canvas>
151.18977 +                        <size width="17" height="17"/>
151.18978 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.18979 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.18980 +                        <layer name="Layer 1">
151.18981 +                           <opacity>1.0</opacity>
151.18982 +                           <fillOpacity>1.0</fillOpacity>
151.18983 +                           <blendingMode>NORMAL</blendingMode>
151.18984 +                           <locked>false</locked>
151.18985 +                           <visible>true</visible>
151.18986 +                           <shapes>
151.18987 +                              <path>
151.18988 +                                 <gradient cycleMethod="NO_CYCLE">
151.18989 +                                    <stop position="0.0" midpoint="0.5">
151.18990 +                                       <matte red="251" green="252" blue="253" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.62780917" brightnessOffset="0.44313723" alphaOffset="0"/>
151.18991 +                                    </stop>
151.18992 +                                    <stop position="0.42513368" midpoint="0.5">
151.18993 +                                       <matte red="185" green="205" blue="223" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="-0.4653107" brightnessOffset="0.32549018" alphaOffset="0"/>
151.18994 +                                    </stop>
151.18995 +                                    <stop position="0.69786096" midpoint="0.5">
151.18996 +                                       <matte red="183" green="204" blue="223" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4563421" brightnessOffset="0.32549018" alphaOffset="0"/>
151.18997 +                                    </stop>
151.18998 +                                    <stop position="1.0" midpoint="0.5">
151.18999 +                                       <matte red="201" green="222" blue="240" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0017285943" saturationOffset="-0.4732143" brightnessOffset="0.39215684" alphaOffset="0"/>
151.19000 +                                    </stop>
151.19001 +                                 </gradient>
151.19002 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.19003 +                                 <points>
151.19004 +                                    <point x="4.027803030303029" y="3.004848484848486" cp1x="3.032649021149256" cp1y="4.6674981382317355" cp2x="4.536011975539247" cp2y="2.155760385045938"/>
151.19005 +                                    <point x="13.846363636363638" y="9.291818181818181" cp1x="13.849548242977425" cp1y="8.685129924076254" cp2x="13.842473440242545" cp2y="10.03292582656201"/>
151.19006 +                                    <point x="3.9727272727272753" y="13.966363636363635" cp1x="4.359824654142523" cp1y="15.207145646334764" cp2x="3.5863614419930605" cp2y="12.727926501268922"/>
151.19007 +                                 </points>
151.19008 +                              </path>
151.19009 +                              <path>
151.19010 +                                 <gradient cycleMethod="NO_CYCLE">
151.19011 +                                    <stop position="0.0" midpoint="0.5">
151.19012 +                                       <matte red="53" green="80" blue="102" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0038217902" saturationOffset="-0.15532213" brightnessOffset="-0.14901963" alphaOffset="0"/>
151.19013 +                                    </stop>
151.19014 +                                    <stop position="1.0" midpoint="0.5">
151.19015 +                                       <matte red="1" green="1" blue="1" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54509807" alphaOffset="0"/>
151.19016 +                                    </stop>
151.19017 +                                 </gradient>
151.19018 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.19019 +                                 <points>
151.19020 +                                    <point x="3.077651515151513" y="14.977272727272723" cp1x="2.3276635759026876" cp1y="13.892921695242634" cp2x="3.9874604605873967" cp2y="16.29269690585581"/>
151.19021 +                                    <point x="15.07575757575758" y="9.278409090909093" cp1x="15.090346383854083" cp1y="10.207961161875609" cp2x="15.062102395509116" cp2y="8.408344792618548"/>
151.19022 +                                    <point x="3.046195652173914" y="2.035820158102767" cp1x="4.019189127078684" cp1y="0.6109557613825192" cp2x="2.297674764597527" cp2y="3.1319639559976284"/>
151.19023 +                                 </points>
151.19024 +                              </path>
151.19025 +                              <path>
151.19026 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.19027 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.19028 +                                 <points>
151.19029 +                                    <point x="3.0029761904761894" y="0.5863771645021645" cp1x="1.139450671808557" cp1y="0.9553725999465068" cp2x="4.5673030700867505" cp2y="0.27662585048104366"/>
151.19030 +                                    <point x="15.962727272727284" y="9.281818181818181" cp1x="15.967133116737259" cp1y="8.093702027571416" cp2x="15.955362732066009" cp2y="11.267800824067251"/>
151.19031 +                                    <point x="3.5031818181818175" y="16.34681818181818" cp1x="6.274868164827076" cp1y="16.33784359983059" cp2x="-0.25171732582327255" cp2y="16.358976357747352"/>
151.19032 +                                 </points>
151.19033 +                              </path>
151.19034 +                           </shapes>
151.19035 +                           <effects/>
151.19036 +                        </layer>
151.19037 +                     </canvas>
151.19038 +                  </state>
151.19039 +                  <state stateKeys="Focused+Pressed+ArrowShape">
151.19040 +                     <style>
151.19041 +                        <textForeground/>
151.19042 +                        <textBackground/>
151.19043 +                        <background/>
151.19044 +                        <uiproperties/>
151.19045 +                     </style>
151.19046 +                     <canvas>
151.19047 +                        <size width="17" height="17"/>
151.19048 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.19049 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.19050 +                        <layer name="Layer 1">
151.19051 +                           <opacity>1.0</opacity>
151.19052 +                           <fillOpacity>1.0</fillOpacity>
151.19053 +                           <blendingMode>NORMAL</blendingMode>
151.19054 +                           <locked>false</locked>
151.19055 +                           <visible>true</visible>
151.19056 +                           <shapes>
151.19057 +                              <path>
151.19058 +                                 <gradient cycleMethod="NO_CYCLE">
151.19059 +                                    <stop position="0.0" midpoint="0.5">
151.19060 +                                       <matte red="166" green="186" blue="204" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="-0.44943976" brightnessOffset="0.25098038" alphaOffset="0"/>
151.19061 +                                    </stop>
151.19062 +                                    <stop position="0.47593582" midpoint="0.5">
151.19063 +                                       <matte red="51" green="98" blue="140" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.19064 +                                    </stop>
151.19065 +                                    <stop position="0.5962567" midpoint="0.5">
151.19066 +                                       <matte red="51" green="98" blue="140" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.19067 +                                    </stop>
151.19068 +                                    <stop position="1.0" midpoint="0.5">
151.19069 +                                       <matte red="83" green="129" blue="171" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="8.9377165E-4" saturationOffset="-0.121094406" brightnessOffset="0.12156862" alphaOffset="0"/>
151.19070 +                                    </stop>
151.19071 +                                 </gradient>
151.19072 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.19073 +                                 <points>
151.19074 +                                    <point x="4.027803030303029" y="3.004848484848486" cp1x="3.032649021149256" cp1y="4.6674981382317355" cp2x="4.536011975539247" cp2y="2.155760385045938"/>
151.19075 +                                    <point x="13.846363636363638" y="9.291818181818181" cp1x="13.849548242977425" cp1y="8.685129924076254" cp2x="13.842473440242545" cp2y="10.03292582656201"/>
151.19076 +                                    <point x="3.9727272727272753" y="13.966363636363635" cp1x="4.359824654142523" cp1y="15.207145646334764" cp2x="3.5863614419930605" cp2y="12.727926501268922"/>
151.19077 +                                 </points>
151.19078 +                              </path>
151.19079 +                              <path>
151.19080 +                                 <gradient cycleMethod="NO_CYCLE">
151.19081 +                                    <stop position="0.0" midpoint="0.5">
151.19082 +                                       <matte red="1" green="1" blue="1" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54509807" alphaOffset="0"/>
151.19083 +                                    </stop>
151.19084 +                                    <stop position="1.0" midpoint="0.5">
151.19085 +                                       <matte red="38" green="66" blue="92" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0015952587" saturationOffset="-0.04875779" brightnessOffset="-0.18823531" alphaOffset="0"/>
151.19086 +                                    </stop>
151.19087 +                                 </gradient>
151.19088 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.19089 +                                 <points>
151.19090 +                                    <point x="3.077651515151513" y="14.977272727272723" cp1x="2.3276635759026876" cp1y="13.892921695242634" cp2x="3.9874604605873967" cp2y="16.29269690585581"/>
151.19091 +                                    <point x="15.07575757575758" y="9.278409090909093" cp1x="15.090346383854083" cp1y="10.207961161875609" cp2x="15.062102395509116" cp2y="8.408344792618548"/>
151.19092 +                                    <point x="3.046195652173914" y="2.035820158102767" cp1x="4.019189127078684" cp1y="0.6109557613825192" cp2x="2.297674764597527" cp2y="3.1319639559976284"/>
151.19093 +                                 </points>
151.19094 +                              </path>
151.19095 +                              <path>
151.19096 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.19097 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.19098 +                                 <points>
151.19099 +                                    <point x="3.0029761904761894" y="0.5863771645021645" cp1x="1.139450671808557" cp1y="0.9553725999465068" cp2x="4.5673030700867505" cp2y="0.27662585048104366"/>
151.19100 +                                    <point x="15.962727272727284" y="9.281818181818181" cp1x="15.967133116737259" cp1y="8.093702027571416" cp2x="15.955362732066009" cp2y="11.267800824067251"/>
151.19101 +                                    <point x="3.5031818181818175" y="16.34681818181818" cp1x="6.274868164827076" cp1y="16.33784359983059" cp2x="-0.25171732582327255" cp2y="16.358976357747352"/>
151.19102 +                                 </points>
151.19103 +                              </path>
151.19104 +                           </shapes>
151.19105 +                           <effects/>
151.19106 +                        </layer>
151.19107 +                     </canvas>
151.19108 +                  </state>
151.19109 +               </backgroundStates>
151.19110 +               <foregroundStates/>
151.19111 +               <borderStates/>
151.19112 +               <regions/>
151.19113 +            </region>
151.19114 +            <region name="SliderTrack" subregion="true">
151.19115 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.19116 +               <style>
151.19117 +                  <textForeground/>
151.19118 +                  <textBackground/>
151.19119 +                  <background/>
151.19120 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.19121 +                  <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.19122 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.19123 +                  <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.19124 +                  <uiproperties/>
151.19125 +               </style>
151.19126 +               <backgroundStates>
151.19127 +                  <state stateKeys="Disabled">
151.19128 +                     <style>
151.19129 +                        <textForeground/>
151.19130 +                        <textBackground/>
151.19131 +                        <background/>
151.19132 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.19133 +                        <maxVertCachedImgScaling>2.0</maxVertCachedImgScaling>
151.19134 +                        <uiproperties/>
151.19135 +                     </style>
151.19136 +                     <canvas>
151.19137 +                        <size width="23" height="17"/>
151.19138 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.19139 +                        <stretchingInsets top="6" bottom="6" left="5" right="5"/>
151.19140 +                        <layer name="Layer 1">
151.19141 +                           <opacity>1.0</opacity>
151.19142 +                           <fillOpacity>1.0</fillOpacity>
151.19143 +                           <blendingMode>NORMAL</blendingMode>
151.19144 +                           <locked>false</locked>
151.19145 +                           <visible>true</visible>
151.19146 +                           <shapes>
151.19147 +                              <rectangle x1="1.4705882352941173" x2="21.529411764705873" y1="7.0" y2="11.0" rounding="3.999999999999999">
151.19148 +                                 <gradient cycleMethod="NO_CYCLE">
151.19149 +                                    <stop position="0.0" midpoint="0.5">
151.19150 +                                       <matte red="196" green="200" blue="206" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.01111114" saturationOffset="-0.061982628" brightnessOffset="0.062745094" alphaOffset="0"/>
151.19151 +                                    </stop>
151.19152 +                                    <stop position="0.27540106" midpoint="0.5">
151.19153 +                                       <matte red="201" green="205" blue="212" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.00505054" saturationOffset="-0.058639523" brightnessOffset="0.086274505" alphaOffset="0"/>
151.19154 +                                    </stop>
151.19155 +                                    <stop position="1.0" midpoint="0.5">
151.19156 +                                       <matte red="206" green="209" blue="217" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.01010108" saturationOffset="-0.059835073" brightnessOffset="0.10588235" alphaOffset="0"/>
151.19157 +                                    </stop>
151.19158 +                                 </gradient>
151.19159 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.25" y2="1.0"/>
151.19160 +                              </rectangle>
151.19161 +                              <rectangle x1="0.0" x2="23.0" y1="6.0" y2="11.0" rounding="4.941176470588243">
151.19162 +                                 <gradient cycleMethod="NO_CYCLE">
151.19163 +                                    <stop position="0.0" midpoint="0.5">
151.19164 +                                       <matte red="193" green="196" blue="203" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.061265234" brightnessOffset="0.05098039" alphaOffset="0"/>
151.19165 +                                    </stop>
151.19166 +                                    <stop position="1.0" midpoint="0.5">
151.19167 +                                       <matte red="206" green="209" blue="217" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.01010108" saturationOffset="-0.059835073" brightnessOffset="0.10588235" alphaOffset="0"/>
151.19168 +                                    </stop>
151.19169 +                                 </gradient>
151.19170 +                                 <paintPoints x1="0.25" y1="0.07647058823529412" x2="0.25" y2="0.9117647058823533"/>
151.19171 +                              </rectangle>
151.19172 +                              <rectangle x1="1.0" x2="22.0" y1="9.0" y2="16.0" rounding="8.705882352941174">
151.19173 +                                 <matte red="255" green="255" blue="255" alpha="10" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-245"/>
151.19174 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.19175 +                              </rectangle>
151.19176 +                           </shapes>
151.19177 +                           <effects/>
151.19178 +                        </layer>
151.19179 +                        <templateLayer fileName="1139e90e32c.png">
151.19180 +                           <layer name="Template" type="template">
151.19181 +                              <opacity>1.0</opacity>
151.19182 +                              <fillOpacity>1.0</fillOpacity>
151.19183 +                              <blendingMode>NORMAL</blendingMode>
151.19184 +                              <locked>false</locked>
151.19185 +                              <visible>false</visible>
151.19186 +                              <shapes/>
151.19187 +                              <effects/>
151.19188 +                           </layer>
151.19189 +                        </templateLayer>
151.19190 +                     </canvas>
151.19191 +                  </state>
151.19192 +                  <state stateKeys="Enabled">
151.19193 +                     <style>
151.19194 +                        <textForeground/>
151.19195 +                        <textBackground/>
151.19196 +                        <background/>
151.19197 +                        <cacheSettingsInherited>false</cacheSettingsInherited>
151.19198 +                        <uiproperties/>
151.19199 +                     </style>
151.19200 +                     <canvas>
151.19201 +                        <size width="23" height="17"/>
151.19202 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.19203 +                        <stretchingInsets top="6" bottom="6" left="5" right="5"/>
151.19204 +                        <layer name="Layer 1">
151.19205 +                           <opacity>1.0</opacity>
151.19206 +                           <fillOpacity>1.0</fillOpacity>
151.19207 +                           <blendingMode>NORMAL</blendingMode>
151.19208 +                           <locked>false</locked>
151.19209 +                           <visible>true</visible>
151.19210 +                           <shapes>
151.19211 +                              <rectangle x1="1.441176470588235" x2="21.49999999999999" y1="7.0" y2="11.0" rounding="3.999999999999999">
151.19212 +                                 <gradient cycleMethod="NO_CYCLE">
151.19213 +                                    <stop position="0.0" midpoint="0.5">
151.19214 +                                       <matte red="155" green="160" blue="168" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.008547008" saturationOffset="-0.03314536" brightnessOffset="-0.086274505" alphaOffset="0"/>
151.19215 +                                    </stop>
151.19216 +                                    <stop position="0.27540106" midpoint="0.5">
151.19217 +                                       <matte red="172" green="176" blue="185" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.004273474" saturationOffset="-0.040256046" brightnessOffset="-0.019607842" alphaOffset="0"/>
151.19218 +                                    </stop>
151.19219 +                                    <stop position="0.7058824" midpoint="0.5">
151.19220 +                                       <matte red="187" green="192" blue="202" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.03626889" brightnessOffset="0.04705882" alphaOffset="0"/>
151.19221 +                                    </stop>
151.19222 +                                 </gradient>
151.19223 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.25" y2="1.0"/>
151.19224 +                              </rectangle>
151.19225 +                              <rectangle x1="0.0" x2="23.0" y1="6.0" y2="11.0" rounding="4.941176470588243">
151.19226 +                                 <gradient cycleMethod="NO_CYCLE">
151.19227 +                                    <stop position="0.0" midpoint="0.5">
151.19228 +                                       <matte red="145" green="149" blue="157" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.034093194" brightnessOffset="-0.12941176" alphaOffset="0"/>
151.19229 +                                    </stop>
151.19230 +                                    <stop position="1.0" midpoint="0.5">
151.19231 +                                       <matte red="158" green="162" blue="173" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.01111114" saturationOffset="-0.023821115" brightnessOffset="-0.06666666" alphaOffset="0"/>
151.19232 +                                    </stop>
151.19233 +                                 </gradient>
151.19234 +                                 <paintPoints x1="0.25" y1="0.07647058823529412" x2="0.25" y2="0.9117647058823533"/>
151.19235 +                              </rectangle>
151.19236 +                              <rectangle x1="1.0" x2="22.0" y1="9.0" y2="12.0" rounding="8.705882352941174">
151.19237 +                                 <matte red="255" green="255" blue="255" alpha="144" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-111"/>
151.19238 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.19239 +                              </rectangle>
151.19240 +                           </shapes>
151.19241 +                           <effects/>
151.19242 +                        </layer>
151.19243 +                        <templateLayer fileName="1139e0a2168.png">
151.19244 +                           <layer name="Template" type="template">
151.19245 +                              <opacity>1.0</opacity>
151.19246 +                              <fillOpacity>1.0</fillOpacity>
151.19247 +                              <blendingMode>NORMAL</blendingMode>
151.19248 +                              <locked>false</locked>
151.19249 +                              <visible>false</visible>
151.19250 +                              <shapes/>
151.19251 +                              <effects/>
151.19252 +                           </layer>
151.19253 +                        </templateLayer>
151.19254 +                     </canvas>
151.19255 +                  </state>
151.19256 +               </backgroundStates>
151.19257 +               <foregroundStates/>
151.19258 +               <borderStates/>
151.19259 +               <regions/>
151.19260 +            </region>
151.19261 +         </regions>
151.19262 +      </uiComponent>
151.19263 +      <uiComponent opaque="false" type="javax.swing.JSpinner" name="Spinner" ui="SpinnerUI" subregion="false">
151.19264 +         <stateTypes/>
151.19265 +         <contentMargins top="0" bottom="0" left="0" right="0"/>
151.19266 +         <style>
151.19267 +            <textForeground/>
151.19268 +            <textBackground/>
151.19269 +            <background/>
151.19270 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.19271 +            <cacheMode>NO_CACHING</cacheMode>
151.19272 +            <uiproperties/>
151.19273 +         </style>
151.19274 +         <backgroundStates>
151.19275 +            <state stateKeys="Enabled">
151.19276 +               <style>
151.19277 +                  <textForeground/>
151.19278 +                  <textBackground/>
151.19279 +                  <background/>
151.19280 +                  <uiproperties/>
151.19281 +               </style>
151.19282 +               <canvas>
151.19283 +                  <size width="100" height="30"/>
151.19284 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.19285 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.19286 +                  <layer name="Layer 1">
151.19287 +                     <opacity>1.0</opacity>
151.19288 +                     <fillOpacity>1.0</fillOpacity>
151.19289 +                     <blendingMode>NORMAL</blendingMode>
151.19290 +                     <locked>false</locked>
151.19291 +                     <visible>true</visible>
151.19292 +                     <shapes/>
151.19293 +                     <effects/>
151.19294 +                  </layer>
151.19295 +               </canvas>
151.19296 +            </state>
151.19297 +         </backgroundStates>
151.19298 +         <foregroundStates/>
151.19299 +         <borderStates/>
151.19300 +         <regions>
151.19301 +            <uiComponent opaque="false" componentName="Spinner.editor" type="javax.swing.JPanel" name="Panel" ui="PanelUI" subregion="true">
151.19302 +               <stateTypes/>
151.19303 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.19304 +               <style>
151.19305 +                  <textForeground/>
151.19306 +                  <textBackground/>
151.19307 +                  <background/>
151.19308 +                  <uiproperties/>
151.19309 +               </style>
151.19310 +               <backgroundStates/>
151.19311 +               <foregroundStates/>
151.19312 +               <borderStates/>
151.19313 +               <regions/>
151.19314 +            </uiComponent>
151.19315 +            <uiComponent opaque="false" type="javax.swing.JFormattedTextField" name="FormattedTextField" ui="FormattedTextFieldUI" subregion="true" key="Panel:&quot;Spinner.formattedTextField&quot;">
151.19316 +               <stateTypes/>
151.19317 +               <contentMargins top="6" bottom="5" left="6" right="6"/>
151.19318 +               <style>
151.19319 +                  <textForeground/>
151.19320 +                  <textBackground/>
151.19321 +                  <background/>
151.19322 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.19323 +                  <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.19324 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.19325 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.19326 +                  <uiproperties/>
151.19327 +               </style>
151.19328 +               <backgroundStates>
151.19329 +                  <state stateKeys="Disabled">
151.19330 +                     <style>
151.19331 +                        <textForeground>
151.19332 +                           <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.19333 +                        </textForeground>
151.19334 +                        <textBackground/>
151.19335 +                        <background/>
151.19336 +                        <inherit-textForeground>false</inherit-textForeground>
151.19337 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.19338 +                        <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.19339 +                        <uiproperties/>
151.19340 +                     </style>
151.19341 +                     <canvas>
151.19342 +                        <size width="64" height="24"/>
151.19343 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.19344 +                        <stretchingInsets top="5" bottom="3" left="3" right="1"/>
151.19345 +                        <layer name="Layer 1">
151.19346 +                           <opacity>1.0</opacity>
151.19347 +                           <fillOpacity>1.0</fillOpacity>
151.19348 +                           <blendingMode>NORMAL</blendingMode>
151.19349 +                           <locked>false</locked>
151.19350 +                           <visible>true</visible>
151.19351 +                           <shapes>
151.19352 +                              <rectangle x1="3.0" x2="64.0" y1="5.0" y2="21.0" rounding="0.0">
151.19353 +                                 <matte red="222" green="225" blue="229" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.016586483" saturationOffset="-0.6051466" brightnessOffset="0.3490196" alphaOffset="0"/>
151.19354 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.19355 +                              </rectangle>
151.19356 +                              <rectangle x1="2.0" x2="64.0" y1="5.0" y2="22.0" rounding="0.0">
151.19357 +                                 <matte red="208" green="210" blue="215" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.040395975" saturationOffset="-0.60315615" brightnessOffset="0.29411763" alphaOffset="0"/>
151.19358 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.19359 +                              </rectangle>
151.19360 +                              <rectangle x1="3.0" x2="64.0" y1="3.0" y2="5.0" rounding="0.0">
151.19361 +                                 <gradient cycleMethod="NO_CYCLE">
151.19362 +                                    <stop position="0.0" midpoint="0.5">
151.19363 +                                       <matte red="220" green="222" blue="227" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07968931" brightnessOffset="0.14509803" alphaOffset="0"/>
151.19364 +                                    </stop>
151.19365 +                                    <stop position="1.0" midpoint="0.5">
151.19366 +                                       <matte red="212" green="214" blue="219" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07856284" brightnessOffset="0.11372548" alphaOffset="0"/>
151.19367 +                                    </stop>
151.19368 +                                 </gradient>
151.19369 +                                 <paintPoints x1="0.5" y1="1.0" x2="0.5" y2="0.0"/>
151.19370 +                              </rectangle>
151.19371 +                              <rectangle x1="2.0" x2="64.0" y1="2.0" y2="5.0" rounding="0.0">
151.19372 +                                 <gradient cycleMethod="NO_CYCLE">
151.19373 +                                    <stop position="0.0" midpoint="0.5">
151.19374 +                                       <matte red="199" green="202" blue="207" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.006944418" saturationOffset="-0.07187897" brightnessOffset="0.06666666" alphaOffset="0"/>
151.19375 +                                    </stop>
151.19376 +                                    <stop position="1.0" midpoint="0.5">
151.19377 +                                       <matte red="202" green="204" blue="209" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07703349" brightnessOffset="0.0745098" alphaOffset="0"/>
151.19378 +                                    </stop>
151.19379 +                                 </gradient>
151.19380 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.19381 +                              </rectangle>
151.19382 +                              <rectangle x1="2.0" x2="64.0" y1="22.0" y2="23.0" rounding="0.0">
151.19383 +                                 <matte red="0" green="0" blue="0" alpha="18" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.74509805" alphaOffset="-237"/>
151.19384 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.19385 +                              </rectangle>
151.19386 +                           </shapes>
151.19387 +                           <effects/>
151.19388 +                        </layer>
151.19389 +                     </canvas>
151.19390 +                  </state>
151.19391 +                  <state stateKeys="Enabled">
151.19392 +                     <style>
151.19393 +                        <textForeground/>
151.19394 +                        <textBackground/>
151.19395 +                        <background/>
151.19396 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.19397 +                        <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.19398 +                        <uiproperties/>
151.19399 +                     </style>
151.19400 +                     <canvas>
151.19401 +                        <size width="64" height="24"/>
151.19402 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.19403 +                        <stretchingInsets top="5" bottom="3" left="3" right="1"/>
151.19404 +                        <layer name="Layer 1">
151.19405 +                           <opacity>1.0</opacity>
151.19406 +                           <fillOpacity>1.0</fillOpacity>
151.19407 +                           <blendingMode>NORMAL</blendingMode>
151.19408 +                           <locked>false</locked>
151.19409 +                           <visible>true</visible>
151.19410 +                           <shapes>
151.19411 +                              <rectangle x1="3.0" x2="64.0" y1="5.0" y2="21.0" rounding="0.0">
151.19412 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.19413 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.19414 +                              </rectangle>
151.19415 +                              <rectangle x1="2.0" x2="64.0" y1="5.0" y2="22.0" rounding="0.0">
151.19416 +                                 <matte red="192" green="192" blue="193" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.105344966" brightnessOffset="0.011764705" alphaOffset="0"/>
151.19417 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.19418 +                              </rectangle>
151.19419 +                              <rectangle x1="3.0" x2="64.0" y1="3.0" y2="5.0" rounding="0.0">
151.19420 +                                 <gradient cycleMethod="NO_CYCLE">
151.19421 +                                    <stop position="0.0" midpoint="0.1684492">
151.19422 +                                       <matte red="203" green="203" blue="204" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.105624355" brightnessOffset="0.054901958" alphaOffset="0"/>
151.19423 +                                    </stop>
151.19424 +                                    <stop position="1.0" midpoint="0.5">
151.19425 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.19426 +                                    </stop>
151.19427 +                                 </gradient>
151.19428 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.19429 +                              </rectangle>
151.19430 +                              <rectangle x1="2.0" x2="64.0" y1="2.0" y2="5.0" rounding="0.0">
151.19431 +                                 <gradient cycleMethod="NO_CYCLE">
151.19432 +                                    <stop position="0.0" midpoint="0.5">
151.19433 +                                       <matte red="141" green="142" blue="143" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.0965403" brightnessOffset="-0.18431371" alphaOffset="0"/>
151.19434 +                                    </stop>
151.19435 +                                    <stop position="0.99147725" midpoint="0.5">
151.19436 +                                       <matte red="196" green="196" blue="194" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.1048766" brightnessOffset="-0.08" alphaOffset="0"/>
151.19437 +                                    </stop>
151.19438 +                                 </gradient>
151.19439 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.19440 +                              </rectangle>
151.19441 +                              <rectangle x1="2.0" x2="64.0" y1="22.0" y2="23.0" rounding="0.0">
151.19442 +                                 <matte red="0" green="0" blue="0" alpha="18" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.74509805" alphaOffset="-237"/>
151.19443 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.19444 +                              </rectangle>
151.19445 +                           </shapes>
151.19446 +                           <effects/>
151.19447 +                        </layer>
151.19448 +                     </canvas>
151.19449 +                  </state>
151.19450 +                  <state stateKeys="Focused">
151.19451 +                     <style>
151.19452 +                        <textForeground/>
151.19453 +                        <textBackground/>
151.19454 +                        <background/>
151.19455 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.19456 +                        <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.19457 +                        <uiproperties/>
151.19458 +                     </style>
151.19459 +                     <canvas>
151.19460 +                        <size width="64" height="24"/>
151.19461 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.19462 +                        <stretchingInsets top="5" bottom="3" left="3" right="1"/>
151.19463 +                        <layer name="Layer 1">
151.19464 +                           <opacity>1.0</opacity>
151.19465 +                           <fillOpacity>1.0</fillOpacity>
151.19466 +                           <blendingMode>NORMAL</blendingMode>
151.19467 +                           <locked>false</locked>
151.19468 +                           <visible>true</visible>
151.19469 +                           <shapes>
151.19470 +                              <rectangle x1="3.0" x2="64.0" y1="5.0" y2="21.0" rounding="0.0">
151.19471 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.19472 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.19473 +                              </rectangle>
151.19474 +                              <rectangle x1="2.0" x2="64.0" y1="5.0" y2="22.0" rounding="0.0">
151.19475 +                                 <matte red="192" green="192" blue="193" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.105344966" brightnessOffset="0.011764705" alphaOffset="0"/>
151.19476 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.19477 +                              </rectangle>
151.19478 +                              <rectangle x1="3.0" x2="64.0" y1="3.0" y2="5.0" rounding="0.0">
151.19479 +                                 <gradient cycleMethod="NO_CYCLE">
151.19480 +                                    <stop position="0.0" midpoint="0.1684492">
151.19481 +                                       <matte red="203" green="203" blue="204" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.105624355" brightnessOffset="0.054901958" alphaOffset="0"/>
151.19482 +                                    </stop>
151.19483 +                                    <stop position="1.0" midpoint="0.5">
151.19484 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.19485 +                                    </stop>
151.19486 +                                 </gradient>
151.19487 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.19488 +                              </rectangle>
151.19489 +                              <rectangle x1="2.0" x2="64.0" y1="2.0" y2="5.0" rounding="0.0">
151.19490 +                                 <gradient cycleMethod="NO_CYCLE">
151.19491 +                                    <stop position="0.0" midpoint="0.5">
151.19492 +                                       <matte red="141" green="142" blue="143" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.0965403" brightnessOffset="-0.18431371" alphaOffset="0"/>
151.19493 +                                    </stop>
151.19494 +                                    <stop position="0.99147725" midpoint="0.5">
151.19495 +                                       <matte red="176" green="176" blue="177" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.1048766" brightnessOffset="-0.05098039" alphaOffset="0"/>
151.19496 +                                    </stop>
151.19497 +                                 </gradient>
151.19498 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.19499 +                              </rectangle>
151.19500 +                              <rectangle x1="0.6666666666666666" x2="63.91666666666666" y1="0.6666666666666666" y2="23.249999999999996" rounding="0.0">
151.19501 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.19502 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.19503 +                              </rectangle>
151.19504 +                           </shapes>
151.19505 +                           <effects/>
151.19506 +                        </layer>
151.19507 +                     </canvas>
151.19508 +                  </state>
151.19509 +                  <state stateKeys="Selected">
151.19510 +                     <style>
151.19511 +                        <textForeground>
151.19512 +                           <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusSelectedText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.19513 +                        </textForeground>
151.19514 +                        <textBackground/>
151.19515 +                        <background/>
151.19516 +                        <inherit-textForeground>false</inherit-textForeground>
151.19517 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.19518 +                        <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.19519 +                        <uiproperties/>
151.19520 +                     </style>
151.19521 +                     <canvas>
151.19522 +                        <size width="64" height="24"/>
151.19523 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.19524 +                        <stretchingInsets top="5" bottom="3" left="3" right="1"/>
151.19525 +                        <layer name="Layer 1">
151.19526 +                           <opacity>1.0</opacity>
151.19527 +                           <fillOpacity>1.0</fillOpacity>
151.19528 +                           <blendingMode>NORMAL</blendingMode>
151.19529 +                           <locked>false</locked>
151.19530 +                           <visible>true</visible>
151.19531 +                           <shapes>
151.19532 +                              <rectangle x1="3.0" x2="64.0" y1="5.0" y2="21.0" rounding="0.0">
151.19533 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.19534 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.19535 +                              </rectangle>
151.19536 +                              <rectangle x1="2.0" x2="64.0" y1="5.0" y2="22.0" rounding="0.0">
151.19537 +                                 <matte red="192" green="192" blue="193" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.105344966" brightnessOffset="0.011764705" alphaOffset="0"/>
151.19538 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.19539 +                              </rectangle>
151.19540 +                              <rectangle x1="3.0" x2="64.0" y1="3.0" y2="5.0" rounding="0.0">
151.19541 +                                 <gradient cycleMethod="NO_CYCLE">
151.19542 +                                    <stop position="0.0" midpoint="0.1684492">
151.19543 +                                       <matte red="203" green="203" blue="204" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.105624355" brightnessOffset="0.054901958" alphaOffset="0"/>
151.19544 +                                    </stop>
151.19545 +                                    <stop position="1.0" midpoint="0.5">
151.19546 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.19547 +                                    </stop>
151.19548 +                                 </gradient>
151.19549 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.19550 +                              </rectangle>
151.19551 +                              <rectangle x1="2.0" x2="64.0" y1="2.0" y2="5.0" rounding="0.0">
151.19552 +                                 <gradient cycleMethod="NO_CYCLE">
151.19553 +                                    <stop position="0.0" midpoint="0.5">
151.19554 +                                       <matte red="141" green="142" blue="143" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.0965403" brightnessOffset="-0.18431371" alphaOffset="0"/>
151.19555 +                                    </stop>
151.19556 +                                    <stop position="0.99147725" midpoint="0.5">
151.19557 +                                       <matte red="196" green="196" blue="194" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.1048766" brightnessOffset="-0.08" alphaOffset="0"/>
151.19558 +                                    </stop>
151.19559 +                                 </gradient>
151.19560 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.19561 +                              </rectangle>
151.19562 +                              <rectangle x1="2.0" x2="64.0" y1="22.0" y2="23.0" rounding="0.0">
151.19563 +                                 <matte red="0" green="0" blue="0" alpha="18" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.74509805" alphaOffset="-237"/>
151.19564 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.19565 +                              </rectangle>
151.19566 +                           </shapes>
151.19567 +                           <effects/>
151.19568 +                        </layer>
151.19569 +                     </canvas>
151.19570 +                  </state>
151.19571 +                  <state stateKeys="Selected+Focused">
151.19572 +                     <style>
151.19573 +                        <textForeground>
151.19574 +                           <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusSelectedText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.19575 +                        </textForeground>
151.19576 +                        <textBackground/>
151.19577 +                        <background/>
151.19578 +                        <inherit-textForeground>false</inherit-textForeground>
151.19579 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.19580 +                        <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.19581 +                        <uiproperties/>
151.19582 +                     </style>
151.19583 +                     <canvas>
151.19584 +                        <size width="64" height="24"/>
151.19585 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.19586 +                        <stretchingInsets top="5" bottom="3" left="3" right="1"/>
151.19587 +                        <layer name="Layer 1">
151.19588 +                           <opacity>1.0</opacity>
151.19589 +                           <fillOpacity>1.0</fillOpacity>
151.19590 +                           <blendingMode>NORMAL</blendingMode>
151.19591 +                           <locked>false</locked>
151.19592 +                           <visible>true</visible>
151.19593 +                           <shapes>
151.19594 +                              <rectangle x1="3.0" x2="64.0" y1="5.0" y2="21.0" rounding="0.0">
151.19595 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.19596 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.19597 +                              </rectangle>
151.19598 +                              <rectangle x1="2.0" x2="64.0" y1="5.0" y2="22.0" rounding="0.0">
151.19599 +                                 <matte red="192" green="192" blue="193" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.105344966" brightnessOffset="0.011764705" alphaOffset="0"/>
151.19600 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.19601 +                              </rectangle>
151.19602 +                              <rectangle x1="3.0" x2="64.0" y1="3.0" y2="5.0" rounding="0.0">
151.19603 +                                 <gradient cycleMethod="NO_CYCLE">
151.19604 +                                    <stop position="0.0" midpoint="0.1684492">
151.19605 +                                       <matte red="203" green="203" blue="204" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.105624355" brightnessOffset="0.054901958" alphaOffset="0"/>
151.19606 +                                    </stop>
151.19607 +                                    <stop position="1.0" midpoint="0.5">
151.19608 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.19609 +                                    </stop>
151.19610 +                                 </gradient>
151.19611 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.19612 +                              </rectangle>
151.19613 +                              <rectangle x1="2.0" x2="64.0" y1="2.0" y2="5.0" rounding="0.0">
151.19614 +                                 <gradient cycleMethod="NO_CYCLE">
151.19615 +                                    <stop position="0.0" midpoint="0.5">
151.19616 +                                       <matte red="141" green="142" blue="143" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.0965403" brightnessOffset="-0.18431371" alphaOffset="0"/>
151.19617 +                                    </stop>
151.19618 +                                    <stop position="0.99147725" midpoint="0.5">
151.19619 +                                       <matte red="176" green="176" blue="177" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.1048766" brightnessOffset="-0.05098039" alphaOffset="0"/>
151.19620 +                                    </stop>
151.19621 +                                 </gradient>
151.19622 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.19623 +                              </rectangle>
151.19624 +                              <rectangle x1="0.6666666666666666" x2="63.91666666666666" y1="0.6666666666666666" y2="23.249999999999996" rounding="0.0">
151.19625 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.19626 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.19627 +                              </rectangle>
151.19628 +                           </shapes>
151.19629 +                           <effects/>
151.19630 +                        </layer>
151.19631 +                     </canvas>
151.19632 +                  </state>
151.19633 +               </backgroundStates>
151.19634 +               <foregroundStates/>
151.19635 +               <borderStates/>
151.19636 +               <regions/>
151.19637 +            </uiComponent>
151.19638 +            <uiComponent opaque="false" componentName="Spinner.previousButton" type="javax.swing.plaf.synth.SynthArrowButton" name="ArrowButton" ui="SynthArrowButtonUI" subregion="true">
151.19639 +               <stateTypes/>
151.19640 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.19641 +               <style>
151.19642 +                  <textForeground/>
151.19643 +                  <textBackground/>
151.19644 +                  <background/>
151.19645 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.19646 +                  <uiproperties>
151.19647 +                     <uiProperty name="size" type="INT" value="20"/>
151.19648 +                  </uiproperties>
151.19649 +               </style>
151.19650 +               <backgroundStates>
151.19651 +                  <state stateKeys="Disabled">
151.19652 +                     <style>
151.19653 +                        <textForeground/>
151.19654 +                        <textBackground/>
151.19655 +                        <background/>
151.19656 +                        <uiproperties/>
151.19657 +                     </style>
151.19658 +                     <canvas>
151.19659 +                        <size width="20" height="12"/>
151.19660 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.19661 +                        <stretchingInsets top="0" bottom="6" left="1" right="7"/>
151.19662 +                        <layer name="Layer 1">
151.19663 +                           <opacity>1.0</opacity>
151.19664 +                           <fillOpacity>1.0</fillOpacity>
151.19665 +                           <blendingMode>NORMAL</blendingMode>
151.19666 +                           <locked>false</locked>
151.19667 +                           <visible>true</visible>
151.19668 +                           <shapes>
151.19669 +                              <path>
151.19670 +                                 <gradient cycleMethod="NO_CYCLE">
151.19671 +                                    <stop position="0.0" midpoint="0.5">
151.19672 +                                       <matte red="212" green="217" blue="224" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.018570602" saturationOffset="-0.5821429" brightnessOffset="0.32941175" alphaOffset="0"/>
151.19673 +                                    </stop>
151.19674 +                                    <stop position="0.11497326" midpoint="0.5">
151.19675 +                                       <matte red="204" green="210" blue="219" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.56722116" brightnessOffset="0.3098039" alphaOffset="0"/>
151.19676 +                                    </stop>
151.19677 +                                    <stop position="1.0" midpoint="0.5">
151.19678 +                                       <matte red="206" green="212" blue="221" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.567841" brightnessOffset="0.31764704" alphaOffset="0"/>
151.19679 +                                    </stop>
151.19680 +                                 </gradient>
151.19681 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.19682 +                                 <points>
151.19683 +                                    <point x="1.0" y="0.0" cp1x="1.0" cp1y="0.0" cp2x="1.0" cp2y="0.0"/>
151.19684 +                                    <point x="1.0" y="9.0" cp1x="1.0" cp1y="9.0" cp2x="1.0" cp2y="9.0"/>
151.19685 +                                    <point x="14.0" y="9.0" cp1x="14.0" cp1y="9.0" cp2x="16.0" cp2y="9.0"/>
151.19686 +                                    <point x="17.0" y="6.0" cp1x="17.0" cp1y="7.0" cp2x="17.0" cp2y="6.0"/>
151.19687 +                                    <point x="17.0" y="0.0" cp1x="17.0" cp1y="0.0" cp2x="17.0" cp2y="0.0"/>
151.19688 +                                 </points>
151.19689 +                              </path>
151.19690 +                              <path>
151.19691 +                                 <gradient cycleMethod="NO_CYCLE">
151.19692 +                                    <stop position="0.0" midpoint="0.5">
151.19693 +                                       <matte red="184" green="191" blue="200" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.015098333" saturationOffset="-0.5557143" brightnessOffset="0.2352941" alphaOffset="0"/>
151.19694 +                                    </stop>
151.19695 +                                    <stop position="1.0" midpoint="0.5">
151.19696 +                                       <matte red="178" green="185" blue="193" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.010237217" saturationOffset="-0.55799407" brightnessOffset="0.20784312" alphaOffset="0"/>
151.19697 +                                    </stop>
151.19698 +                                 </gradient>
151.19699 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.19700 +                                 <points>
151.19701 +                                    <point x="0.0" y="0.0" cp1x="0.0" cp1y="0.0" cp2x="0.0" cp2y="0.0"/>
151.19702 +                                    <point x="0.0" y="10.0" cp1x="0.0" cp1y="10.0" cp2x="0.0" cp2y="10.0"/>
151.19703 +                                    <point x="14.0" y="10.0" cp1x="14.0" cp1y="10.0" cp2x="17.0" cp2y="10.0"/>
151.19704 +                                    <point x="18.0" y="6.0" cp1x="18.0" cp1y="8.0" cp2x="18.0" cp2y="6.0"/>
151.19705 +                                    <point x="18.0" y="0.0" cp1x="18.0" cp1y="0.0" cp2x="18.0" cp2y="0.0"/>
151.19706 +                                 </points>
151.19707 +                              </path>
151.19708 +                           </shapes>
151.19709 +                           <effects/>
151.19710 +                        </layer>
151.19711 +                        <templateLayer fileName="113a3d47f23.png">
151.19712 +                           <layer name="Template" type="template">
151.19713 +                              <opacity>1.0</opacity>
151.19714 +                              <fillOpacity>1.0</fillOpacity>
151.19715 +                              <blendingMode>NORMAL</blendingMode>
151.19716 +                              <locked>false</locked>
151.19717 +                              <visible>false</visible>
151.19718 +                              <shapes/>
151.19719 +                              <effects/>
151.19720 +                           </layer>
151.19721 +                        </templateLayer>
151.19722 +                     </canvas>
151.19723 +                  </state>
151.19724 +                  <state stateKeys="Enabled">
151.19725 +                     <style>
151.19726 +                        <textForeground/>
151.19727 +                        <textBackground/>
151.19728 +                        <background/>
151.19729 +                        <uiproperties/>
151.19730 +                     </style>
151.19731 +                     <canvas>
151.19732 +                        <size width="20" height="12"/>
151.19733 +                        <nextLayerNameIndex>4</nextLayerNameIndex>
151.19734 +                        <stretchingInsets top="0" bottom="6" left="1" right="7"/>
151.19735 +                        <layer name="Layer 1">
151.19736 +                           <opacity>1.0</opacity>
151.19737 +                           <fillOpacity>1.0</fillOpacity>
151.19738 +                           <blendingMode>NORMAL</blendingMode>
151.19739 +                           <locked>false</locked>
151.19740 +                           <visible>true</visible>
151.19741 +                           <shapes>
151.19742 +                              <path>
151.19743 +                                 <gradient cycleMethod="NO_CYCLE">
151.19744 +                                    <stop position="0.0" midpoint="0.5">
151.19745 +                                       <matte red="204" green="215" blue="226" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.5383692" brightnessOffset="0.33725488" alphaOffset="0"/>
151.19746 +                                    </stop>
151.19747 +                                    <stop position="0.11497326" midpoint="0.5">
151.19748 +                                       <matte red="165" green="186" blue="204" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0017285943" saturationOffset="-0.44453782" brightnessOffset="0.25098038" alphaOffset="0"/>
151.19749 +                                    </stop>
151.19750 +                                    <stop position="0.36898395" midpoint="0.5">
151.19751 +                                       <matte red="163" green="184" blue="203" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.43866998" brightnessOffset="0.24705881" alphaOffset="0"/>
151.19752 +                                    </stop>
151.19753 +                                    <stop position="1.0" midpoint="0.5">
151.19754 +                                       <matte red="191" green="212" blue="231" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4625541" brightnessOffset="0.35686272" alphaOffset="0"/>
151.19755 +                                    </stop>
151.19756 +                                 </gradient>
151.19757 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.19758 +                                 <points>
151.19759 +                                    <point x="1.0" y="0.0" cp1x="1.0" cp1y="0.0" cp2x="1.0" cp2y="0.0"/>
151.19760 +                                    <point x="1.0" y="9.0" cp1x="1.0" cp1y="9.0" cp2x="1.0" cp2y="9.0"/>
151.19761 +                                    <point x="14.0" y="9.0" cp1x="14.0" cp1y="9.0" cp2x="16.0" cp2y="9.0"/>
151.19762 +                                    <point x="17.0" y="6.0" cp1x="17.0" cp1y="7.0" cp2x="17.0" cp2y="6.0"/>
151.19763 +                                    <point x="17.0" y="0.0" cp1x="17.0" cp1y="0.0" cp2x="17.0" cp2y="0.0"/>
151.19764 +                                 </points>
151.19765 +                              </path>
151.19766 +                              <path>
151.19767 +                                 <gradient cycleMethod="NO_CYCLE">
151.19768 +                                    <stop position="0.0" midpoint="0.5">
151.19769 +                                       <matte red="66" green="87" blue="106" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.2583558" brightnessOffset="-0.13333336" alphaOffset="0"/>
151.19770 +                                    </stop>
151.19771 +                                    <stop position="1.0" midpoint="0.5">
151.19772 +                                       <matte red="34" green="55" blue="74" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.095173776" brightnessOffset="-0.25882354" alphaOffset="0"/>
151.19773 +                                    </stop>
151.19774 +                                 </gradient>
151.19775 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.19776 +                                 <points>
151.19777 +                                    <point x="0.0" y="0.0" cp1x="0.0" cp1y="0.0" cp2x="0.0" cp2y="0.0"/>
151.19778 +                                    <point x="0.0" y="10.0" cp1x="0.0" cp1y="10.0" cp2x="0.0" cp2y="10.0"/>
151.19779 +                                    <point x="14.0" y="10.0" cp1x="14.0" cp1y="10.0" cp2x="17.0" cp2y="10.0"/>
151.19780 +                                    <point x="18.0" y="6.0" cp1x="18.0" cp1y="8.0" cp2x="18.0" cp2y="6.0"/>
151.19781 +                                    <point x="18.0" y="0.0" cp1x="18.0" cp1y="0.0" cp2x="18.0" cp2y="0.0"/>
151.19782 +                                 </points>
151.19783 +                              </path>
151.19784 +                              <path>
151.19785 +                                 <matte red="100" green="104" blue="112" alpha="107" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.0033834577" brightnessOffset="-0.30588236" alphaOffset="-148"/>
151.19786 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.19787 +                                 <points>
151.19788 +                                    <point x="0.0" y="10.0" cp1x="0.0" cp1y="10.0" cp2x="0.0" cp2y="10.0"/>
151.19789 +                                    <point x="0.0" y="11.0" cp1x="0.0" cp1y="11.0" cp2x="0.0" cp2y="11.0"/>
151.19790 +                                    <point x="13.227272727272727" y="11.0" cp1x="13.227272727272727" cp1y="11.0" cp2x="15.340909090909106" cp2y="11.0"/>
151.19791 +                                    <point x="18.0" y="6.0" cp1x="18.0" cp1y="9.0" cp2x="18.0" cp2y="6.0"/>
151.19792 +                                 </points>
151.19793 +                              </path>
151.19794 +                           </shapes>
151.19795 +                           <effects/>
151.19796 +                        </layer>
151.19797 +                        <templateLayer fileName="113a3b7c40b.png">
151.19798 +                           <layer name="Template" type="template">
151.19799 +                              <opacity>1.0</opacity>
151.19800 +                              <fillOpacity>1.0</fillOpacity>
151.19801 +                              <blendingMode>NORMAL</blendingMode>
151.19802 +                              <locked>false</locked>
151.19803 +                              <visible>false</visible>
151.19804 +                              <shapes/>
151.19805 +                              <effects/>
151.19806 +                           </layer>
151.19807 +                        </templateLayer>
151.19808 +                     </canvas>
151.19809 +                  </state>
151.19810 +                  <state stateKeys="Focused">
151.19811 +                     <style>
151.19812 +                        <textForeground/>
151.19813 +                        <textBackground/>
151.19814 +                        <background/>
151.19815 +                        <uiproperties/>
151.19816 +                     </style>
151.19817 +                     <canvas>
151.19818 +                        <size width="20" height="12"/>
151.19819 +                        <nextLayerNameIndex>4</nextLayerNameIndex>
151.19820 +                        <stretchingInsets top="0" bottom="6" left="1" right="7"/>
151.19821 +                        <layer name="Layer 1">
151.19822 +                           <opacity>1.0</opacity>
151.19823 +                           <fillOpacity>1.0</fillOpacity>
151.19824 +                           <blendingMode>NORMAL</blendingMode>
151.19825 +                           <locked>false</locked>
151.19826 +                           <visible>true</visible>
151.19827 +                           <shapes>
151.19828 +                              <path>
151.19829 +                                 <gradient cycleMethod="NO_CYCLE">
151.19830 +                                    <stop position="0.0" midpoint="0.5">
151.19831 +                                       <matte red="204" green="215" blue="226" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.5383692" brightnessOffset="0.33725488" alphaOffset="0"/>
151.19832 +                                    </stop>
151.19833 +                                    <stop position="0.11497326" midpoint="0.5">
151.19834 +                                       <matte red="165" green="186" blue="204" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0017285943" saturationOffset="-0.44453782" brightnessOffset="0.25098038" alphaOffset="0"/>
151.19835 +                                    </stop>
151.19836 +                                    <stop position="0.36898395" midpoint="0.5">
151.19837 +                                       <matte red="163" green="184" blue="203" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.43866998" brightnessOffset="0.24705881" alphaOffset="0"/>
151.19838 +                                    </stop>
151.19839 +                                    <stop position="1.0" midpoint="0.5">
151.19840 +                                       <matte red="191" green="212" blue="231" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4625541" brightnessOffset="0.35686272" alphaOffset="0"/>
151.19841 +                                    </stop>
151.19842 +                                 </gradient>
151.19843 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.19844 +                                 <points>
151.19845 +                                    <point x="1.0" y="0.0" cp1x="1.0" cp1y="0.0" cp2x="1.0" cp2y="0.0"/>
151.19846 +                                    <point x="1.0" y="9.0" cp1x="1.0" cp1y="9.0" cp2x="1.0" cp2y="9.0"/>
151.19847 +                                    <point x="14.0" y="9.0" cp1x="14.0" cp1y="9.0" cp2x="16.0" cp2y="9.0"/>
151.19848 +                                    <point x="17.0" y="6.0" cp1x="17.0" cp1y="7.0" cp2x="17.0" cp2y="6.0"/>
151.19849 +                                    <point x="17.0" y="0.0" cp1x="17.0" cp1y="0.0" cp2x="17.0" cp2y="0.0"/>
151.19850 +                                 </points>
151.19851 +                              </path>
151.19852 +                              <path>
151.19853 +                                 <gradient cycleMethod="NO_CYCLE">
151.19854 +                                    <stop position="0.0" midpoint="0.5">
151.19855 +                                       <matte red="66" green="87" blue="106" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.2583558" brightnessOffset="-0.13333336" alphaOffset="0"/>
151.19856 +                                    </stop>
151.19857 +                                    <stop position="1.0" midpoint="0.5">
151.19858 +                                       <matte red="34" green="55" blue="74" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.095173776" brightnessOffset="-0.25882354" alphaOffset="0"/>
151.19859 +                                    </stop>
151.19860 +                                 </gradient>
151.19861 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.19862 +                                 <points>
151.19863 +                                    <point x="0.0" y="0.0" cp1x="0.0" cp1y="0.0" cp2x="0.0" cp2y="0.0"/>
151.19864 +                                    <point x="0.0" y="10.0" cp1x="0.0" cp1y="10.0" cp2x="0.0" cp2y="10.0"/>
151.19865 +                                    <point x="14.0" y="10.0" cp1x="14.0" cp1y="10.0" cp2x="17.0" cp2y="10.0"/>
151.19866 +                                    <point x="18.0" y="6.0" cp1x="18.0" cp1y="8.0" cp2x="18.0" cp2y="6.0"/>
151.19867 +                                    <point x="18.0" y="0.0" cp1x="18.0" cp1y="0.0" cp2x="18.0" cp2y="0.0"/>
151.19868 +                                 </points>
151.19869 +                              </path>
151.19870 +                              <path>
151.19871 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.19872 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.19873 +                                 <points>
151.19874 +                                    <point x="0.0" y="0.0" cp1x="0.0" cp1y="0.0" cp2x="0.0" cp2y="0.0"/>
151.19875 +                                    <point x="0.0" y="11.4" cp1x="0.0" cp1y="11.4" cp2x="0.0" cp2y="11.4"/>
151.19876 +                                    <point x="14.4" y="11.4" cp1x="14.4" cp1y="11.4" cp2x="17.4" cp2y="11.4"/>
151.19877 +                                    <point x="19.4" y="7.4" cp1x="19.4" cp1y="10.4" cp2x="19.4" cp2y="7.4"/>
151.19878 +                                    <point x="19.4" y="0.0" cp1x="19.4" cp1y="0.0" cp2x="19.4" cp2y="0.0"/>
151.19879 +                                 </points>
151.19880 +                              </path>
151.19881 +                           </shapes>
151.19882 +                           <effects/>
151.19883 +                        </layer>
151.19884 +                     </canvas>
151.19885 +                  </state>
151.19886 +                  <state stateKeys="MouseOver+Focused">
151.19887 +                     <style>
151.19888 +                        <textForeground/>
151.19889 +                        <textBackground/>
151.19890 +                        <background/>
151.19891 +                        <uiproperties/>
151.19892 +                     </style>
151.19893 +                     <canvas>
151.19894 +                        <size width="20" height="12"/>
151.19895 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.19896 +                        <stretchingInsets top="3" bottom="6" left="1" right="7"/>
151.19897 +                        <layer name="Layer 1">
151.19898 +                           <opacity>1.0</opacity>
151.19899 +                           <fillOpacity>1.0</fillOpacity>
151.19900 +                           <blendingMode>NORMAL</blendingMode>
151.19901 +                           <locked>false</locked>
151.19902 +                           <visible>true</visible>
151.19903 +                           <shapes>
151.19904 +                              <path>
151.19905 +                                 <gradient cycleMethod="NO_CYCLE">
151.19906 +                                    <stop position="0.0" midpoint="0.5">
151.19907 +                                       <matte red="221" green="233" blue="244" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0010585189" saturationOffset="-0.541452" brightnessOffset="0.4078431" alphaOffset="0"/>
151.19908 +                                    </stop>
151.19909 +                                    <stop position="0.11497326" midpoint="0.5">
151.19910 +                                       <matte red="184" green="204" blue="223" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.00254488" saturationOffset="-0.4608264" brightnessOffset="0.32549018" alphaOffset="0"/>
151.19911 +                                    </stop>
151.19912 +                                    <stop position="0.36898395" midpoint="0.5">
151.19913 +                                       <matte red="182" green="203" blue="222" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4555341" brightnessOffset="0.3215686" alphaOffset="0"/>
151.19914 +                                    </stop>
151.19915 +                                    <stop position="1.0" midpoint="0.5">
151.19916 +                                       <matte red="210" green="231" blue="250" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4757143" brightnessOffset="0.43137252" alphaOffset="0"/>
151.19917 +                                    </stop>
151.19918 +                                 </gradient>
151.19919 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.19920 +                                 <points>
151.19921 +                                    <point x="1.0" y="0.0" cp1x="1.0" cp1y="0.0" cp2x="1.0" cp2y="0.0"/>
151.19922 +                                    <point x="1.0" y="9.0" cp1x="1.0" cp1y="9.0" cp2x="1.0" cp2y="9.0"/>
151.19923 +                                    <point x="14.0" y="9.0" cp1x="14.0" cp1y="9.0" cp2x="16.0" cp2y="9.0"/>
151.19924 +                                    <point x="17.0" y="6.0" cp1x="17.0" cp1y="7.0" cp2x="17.0" cp2y="6.0"/>
151.19925 +                                    <point x="17.0" y="0.0" cp1x="17.0" cp1y="0.0" cp2x="17.0" cp2y="0.0"/>
151.19926 +                                 </points>
151.19927 +                              </path>
151.19928 +                              <path>
151.19929 +                                 <gradient cycleMethod="NO_CYCLE">
151.19930 +                                    <stop position="0.0" midpoint="0.5">
151.19931 +                                       <matte red="19" green="45" blue="69" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0013483167" saturationOffset="0.088923395" brightnessOffset="-0.2784314" alphaOffset="0"/>
151.19932 +                                    </stop>
151.19933 +                                    <stop position="1.0" midpoint="0.5">
151.19934 +                                       <matte red="0" green="5" blue="29" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.059279382" saturationOffset="0.3642857" brightnessOffset="-0.43529415" alphaOffset="0"/>
151.19935 +                                    </stop>
151.19936 +                                 </gradient>
151.19937 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.19938 +                                 <points>
151.19939 +                                    <point x="0.0" y="0.0" cp1x="0.0" cp1y="0.0" cp2x="0.0" cp2y="0.0"/>
151.19940 +                                    <point x="0.0" y="10.0" cp1x="0.0" cp1y="10.0" cp2x="0.0" cp2y="10.0"/>
151.19941 +                                    <point x="14.0" y="10.0" cp1x="14.0" cp1y="10.0" cp2x="17.0" cp2y="10.0"/>
151.19942 +                                    <point x="18.0" y="6.0" cp1x="18.0" cp1y="8.0" cp2x="18.0" cp2y="6.0"/>
151.19943 +                                    <point x="18.0" y="0.0" cp1x="18.0" cp1y="0.0" cp2x="18.0" cp2y="0.0"/>
151.19944 +                                 </points>
151.19945 +                              </path>
151.19946 +                              <path>
151.19947 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.19948 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.19949 +                                 <points>
151.19950 +                                    <point x="0.0" y="0.0" cp1x="0.0" cp1y="0.0" cp2x="0.0" cp2y="0.0"/>
151.19951 +                                    <point x="0.0" y="11.4" cp1x="0.0" cp1y="11.4" cp2x="0.0" cp2y="11.4"/>
151.19952 +                                    <point x="14.4" y="11.4" cp1x="14.4" cp1y="11.4" cp2x="17.4" cp2y="11.4"/>
151.19953 +                                    <point x="19.4" y="7.4" cp1x="19.4" cp1y="10.4" cp2x="19.4" cp2y="7.4"/>
151.19954 +                                    <point x="19.4" y="0.0" cp1x="19.4" cp1y="0.0" cp2x="19.4" cp2y="0.0"/>
151.19955 +                                 </points>
151.19956 +                              </path>
151.19957 +                           </shapes>
151.19958 +                           <effects/>
151.19959 +                        </layer>
151.19960 +                     </canvas>
151.19961 +                  </state>
151.19962 +                  <state stateKeys="Pressed+Focused">
151.19963 +                     <style>
151.19964 +                        <textForeground/>
151.19965 +                        <textBackground/>
151.19966 +                        <background/>
151.19967 +                        <uiproperties/>
151.19968 +                     </style>
151.19969 +                     <canvas>
151.19970 +                        <size width="20" height="12"/>
151.19971 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.19972 +                        <stretchingInsets top="0" bottom="6" left="1" right="7"/>
151.19973 +                        <layer name="Layer 1">
151.19974 +                           <opacity>1.0</opacity>
151.19975 +                           <fillOpacity>1.0</fillOpacity>
151.19976 +                           <blendingMode>NORMAL</blendingMode>
151.19977 +                           <locked>false</locked>
151.19978 +                           <visible>true</visible>
151.19979 +                           <shapes>
151.19980 +                              <path>
151.19981 +                                 <gradient cycleMethod="NO_CYCLE">
151.19982 +                                    <stop position="0.0" midpoint="0.5">
151.19983 +                                       <matte red="107" green="141" blue="172" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="8.354783E-4" saturationOffset="-0.2578073" brightnessOffset="0.12549019" alphaOffset="0"/>
151.19984 +                                    </stop>
151.19985 +                                    <stop position="0.11497326" midpoint="0.5">
151.19986 +                                       <matte red="54" green="100" blue="142" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="8.9377165E-4" saturationOffset="-0.01599598" brightnessOffset="0.007843137" alphaOffset="0"/>
151.19987 +                                    </stop>
151.19988 +                                    <stop position="0.36898395" midpoint="0.5">
151.19989 +                                       <matte red="53" green="100" blue="142" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.00895375" brightnessOffset="0.007843137" alphaOffset="0"/>
151.19990 +                                    </stop>
151.19991 +                                    <stop position="1.0" midpoint="0.5">
151.19992 +                                       <matte red="89" green="135" blue="177" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="8.9377165E-4" saturationOffset="-0.13853917" brightnessOffset="0.14509803" alphaOffset="0"/>
151.19993 +                                    </stop>
151.19994 +                                 </gradient>
151.19995 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.19996 +                                 <points>
151.19997 +                                    <point x="1.0" y="0.0" cp1x="1.0" cp1y="0.0" cp2x="1.0" cp2y="0.0"/>
151.19998 +                                    <point x="1.0" y="9.0" cp1x="1.0" cp1y="9.0" cp2x="1.0" cp2y="9.0"/>
151.19999 +                                    <point x="14.0" y="9.0" cp1x="14.0" cp1y="9.0" cp2x="16.0" cp2y="9.0"/>
151.20000 +                                    <point x="17.0" y="6.0" cp1x="17.0" cp1y="7.0" cp2x="17.0" cp2y="6.0"/>
151.20001 +                                    <point x="17.0" y="0.0" cp1x="17.0" cp1y="0.0" cp2x="17.0" cp2y="0.0"/>
151.20002 +                                 </points>
151.20003 +                              </path>
151.20004 +                              <path>
151.20005 +                                 <gradient cycleMethod="NO_CYCLE">
151.20006 +                                    <stop position="0.0" midpoint="0.5">
151.20007 +                                       <matte red="0" green="5" blue="31" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.061133325" saturationOffset="0.3642857" brightnessOffset="-0.427451" alphaOffset="0"/>
151.20008 +                                    </stop>
151.20009 +                                    <stop position="1.0" midpoint="0.5">
151.20010 +                                       <matte red="28" green="56" blue="81" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-3.528595E-5" saturationOffset="0.018606722" brightnessOffset="-0.23137257" alphaOffset="0"/>
151.20011 +                                    </stop>
151.20012 +                                 </gradient>
151.20013 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.20014 +                                 <points>
151.20015 +                                    <point x="0.0" y="0.0" cp1x="0.0" cp1y="0.0" cp2x="0.0" cp2y="0.0"/>
151.20016 +                                    <point x="0.0" y="10.0" cp1x="0.0" cp1y="10.0" cp2x="0.0" cp2y="10.0"/>
151.20017 +                                    <point x="14.0" y="10.0" cp1x="14.0" cp1y="10.0" cp2x="17.0" cp2y="10.0"/>
151.20018 +                                    <point x="18.0" y="6.0" cp1x="18.0" cp1y="8.0" cp2x="18.0" cp2y="6.0"/>
151.20019 +                                    <point x="18.0" y="0.0" cp1x="18.0" cp1y="0.0" cp2x="18.0" cp2y="0.0"/>
151.20020 +                                 </points>
151.20021 +                              </path>
151.20022 +                              <path>
151.20023 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.20024 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.20025 +                                 <points>
151.20026 +                                    <point x="0.0" y="0.0" cp1x="0.0" cp1y="0.0" cp2x="0.0" cp2y="0.0"/>
151.20027 +                                    <point x="0.0" y="11.4" cp1x="0.0" cp1y="11.4" cp2x="0.0" cp2y="11.4"/>
151.20028 +                                    <point x="14.4" y="11.4" cp1x="14.4" cp1y="11.4" cp2x="17.4" cp2y="11.4"/>
151.20029 +                                    <point x="19.4" y="7.4" cp1x="19.4" cp1y="10.4" cp2x="19.4" cp2y="7.4"/>
151.20030 +                                    <point x="19.4" y="0.0" cp1x="19.4" cp1y="0.0" cp2x="19.4" cp2y="0.0"/>
151.20031 +                                 </points>
151.20032 +                              </path>
151.20033 +                           </shapes>
151.20034 +                           <effects/>
151.20035 +                        </layer>
151.20036 +                     </canvas>
151.20037 +                  </state>
151.20038 +                  <state stateKeys="MouseOver">
151.20039 +                     <style>
151.20040 +                        <textForeground/>
151.20041 +                        <textBackground/>
151.20042 +                        <background/>
151.20043 +                        <uiproperties/>
151.20044 +                     </style>
151.20045 +                     <canvas>
151.20046 +                        <size width="20" height="12"/>
151.20047 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.20048 +                        <stretchingInsets top="0" bottom="6" left="1" right="7"/>
151.20049 +                        <layer name="Layer 1">
151.20050 +                           <opacity>1.0</opacity>
151.20051 +                           <fillOpacity>1.0</fillOpacity>
151.20052 +                           <blendingMode>NORMAL</blendingMode>
151.20053 +                           <locked>false</locked>
151.20054 +                           <visible>true</visible>
151.20055 +                           <shapes>
151.20056 +                              <path>
151.20057 +                                 <gradient cycleMethod="NO_CYCLE">
151.20058 +                                    <stop position="0.0" midpoint="0.5">
151.20059 +                                       <matte red="221" green="233" blue="244" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0010585189" saturationOffset="-0.541452" brightnessOffset="0.4078431" alphaOffset="0"/>
151.20060 +                                    </stop>
151.20061 +                                    <stop position="0.11497326" midpoint="0.5">
151.20062 +                                       <matte red="184" green="204" blue="223" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.00254488" saturationOffset="-0.4608264" brightnessOffset="0.32549018" alphaOffset="0"/>
151.20063 +                                    </stop>
151.20064 +                                    <stop position="0.36898395" midpoint="0.5">
151.20065 +                                       <matte red="182" green="203" blue="222" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4555341" brightnessOffset="0.3215686" alphaOffset="0"/>
151.20066 +                                    </stop>
151.20067 +                                    <stop position="1.0" midpoint="0.5">
151.20068 +                                       <matte red="210" green="231" blue="250" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4757143" brightnessOffset="0.43137252" alphaOffset="0"/>
151.20069 +                                    </stop>
151.20070 +                                 </gradient>
151.20071 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.20072 +                                 <points>
151.20073 +                                    <point x="1.0" y="0.0" cp1x="1.0" cp1y="0.0" cp2x="1.0" cp2y="0.0"/>
151.20074 +                                    <point x="1.0" y="9.0" cp1x="1.0" cp1y="9.0" cp2x="1.0" cp2y="9.0"/>
151.20075 +                                    <point x="14.0" y="9.0" cp1x="14.0" cp1y="9.0" cp2x="16.0" cp2y="9.0"/>
151.20076 +                                    <point x="17.0" y="6.0" cp1x="17.0" cp1y="7.0" cp2x="17.0" cp2y="6.0"/>
151.20077 +                                    <point x="17.0" y="0.0" cp1x="17.0" cp1y="0.0" cp2x="17.0" cp2y="0.0"/>
151.20078 +                                 </points>
151.20079 +                              </path>
151.20080 +                              <path>
151.20081 +                                 <gradient cycleMethod="NO_CYCLE">
151.20082 +                                    <stop position="0.0" midpoint="0.5">
151.20083 +                                       <matte red="19" green="45" blue="69" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0013483167" saturationOffset="0.088923395" brightnessOffset="-0.2784314" alphaOffset="0"/>
151.20084 +                                    </stop>
151.20085 +                                    <stop position="1.0" midpoint="0.5">
151.20086 +                                       <matte red="0" green="5" blue="29" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.059279382" saturationOffset="0.3642857" brightnessOffset="-0.43529415" alphaOffset="0"/>
151.20087 +                                    </stop>
151.20088 +                                 </gradient>
151.20089 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.20090 +                                 <points>
151.20091 +                                    <point x="0.0" y="0.0" cp1x="0.0" cp1y="0.0" cp2x="0.0" cp2y="0.0"/>
151.20092 +                                    <point x="0.0" y="10.0" cp1x="0.0" cp1y="10.0" cp2x="0.0" cp2y="10.0"/>
151.20093 +                                    <point x="14.0" y="10.0" cp1x="14.0" cp1y="10.0" cp2x="17.0" cp2y="10.0"/>
151.20094 +                                    <point x="18.0" y="6.0" cp1x="18.0" cp1y="8.0" cp2x="18.0" cp2y="6.0"/>
151.20095 +                                    <point x="18.0" y="0.0" cp1x="18.0" cp1y="0.0" cp2x="18.0" cp2y="0.0"/>
151.20096 +                                 </points>
151.20097 +                              </path>
151.20098 +                              <path>
151.20099 +                                 <matte red="28" green="28" blue="28" alpha="76" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.63529414" alphaOffset="-179"/>
151.20100 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.20101 +                                 <points>
151.20102 +                                    <point x="0.0" y="10.0" cp1x="0.0" cp1y="10.0" cp2x="0.0" cp2y="10.0"/>
151.20103 +                                    <point x="0.0" y="11.0" cp1x="0.0" cp1y="11.0" cp2x="0.0" cp2y="11.0"/>
151.20104 +                                    <point x="13.227272727272727" y="11.0" cp1x="13.227272727272727" cp1y="11.0" cp2x="15.340909090909106" cp2y="11.0"/>
151.20105 +                                    <point x="18.0" y="6.0" cp1x="18.0" cp1y="9.0" cp2x="18.0" cp2y="6.0"/>
151.20106 +                                 </points>
151.20107 +                              </path>
151.20108 +                           </shapes>
151.20109 +                           <effects/>
151.20110 +                        </layer>
151.20111 +                        <templateLayer fileName="113a3d6c675.png">
151.20112 +                           <layer name="Template" type="template">
151.20113 +                              <opacity>1.0</opacity>
151.20114 +                              <fillOpacity>1.0</fillOpacity>
151.20115 +                              <blendingMode>NORMAL</blendingMode>
151.20116 +                              <locked>false</locked>
151.20117 +                              <visible>false</visible>
151.20118 +                              <shapes/>
151.20119 +                              <effects/>
151.20120 +                           </layer>
151.20121 +                        </templateLayer>
151.20122 +                     </canvas>
151.20123 +                  </state>
151.20124 +                  <state stateKeys="Pressed">
151.20125 +                     <style>
151.20126 +                        <textForeground/>
151.20127 +                        <textBackground/>
151.20128 +                        <background/>
151.20129 +                        <uiproperties/>
151.20130 +                     </style>
151.20131 +                     <canvas>
151.20132 +                        <size width="20" height="12"/>
151.20133 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.20134 +                        <stretchingInsets top="0" bottom="6" left="1" right="7"/>
151.20135 +                        <layer name="Layer 1">
151.20136 +                           <opacity>1.0</opacity>
151.20137 +                           <fillOpacity>1.0</fillOpacity>
151.20138 +                           <blendingMode>NORMAL</blendingMode>
151.20139 +                           <locked>false</locked>
151.20140 +                           <visible>true</visible>
151.20141 +                           <shapes>
151.20142 +                              <path>
151.20143 +                                 <gradient cycleMethod="NO_CYCLE">
151.20144 +                                    <stop position="0.0" midpoint="0.5">
151.20145 +                                       <matte red="107" green="141" blue="172" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="8.354783E-4" saturationOffset="-0.2578073" brightnessOffset="0.12549019" alphaOffset="0"/>
151.20146 +                                    </stop>
151.20147 +                                    <stop position="0.11497326" midpoint="0.5">
151.20148 +                                       <matte red="54" green="100" blue="142" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="8.9377165E-4" saturationOffset="-0.01599598" brightnessOffset="0.007843137" alphaOffset="0"/>
151.20149 +                                    </stop>
151.20150 +                                    <stop position="0.36898395" midpoint="0.5">
151.20151 +                                       <matte red="53" green="100" blue="142" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.00895375" brightnessOffset="0.007843137" alphaOffset="0"/>
151.20152 +                                    </stop>
151.20153 +                                    <stop position="1.0" midpoint="0.5">
151.20154 +                                       <matte red="89" green="135" blue="177" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="8.9377165E-4" saturationOffset="-0.13853917" brightnessOffset="0.14509803" alphaOffset="0"/>
151.20155 +                                    </stop>
151.20156 +                                 </gradient>
151.20157 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.20158 +                                 <points>
151.20159 +                                    <point x="1.0" y="0.0" cp1x="1.0" cp1y="0.0" cp2x="1.0" cp2y="0.0"/>
151.20160 +                                    <point x="1.0" y="9.0" cp1x="1.0" cp1y="9.0" cp2x="1.0" cp2y="9.0"/>
151.20161 +                                    <point x="14.0" y="9.0" cp1x="14.0" cp1y="9.0" cp2x="16.0" cp2y="9.0"/>
151.20162 +                                    <point x="17.0" y="6.0" cp1x="17.0" cp1y="7.0" cp2x="17.0" cp2y="6.0"/>
151.20163 +                                    <point x="17.0" y="0.0" cp1x="17.0" cp1y="0.0" cp2x="17.0" cp2y="0.0"/>
151.20164 +                                 </points>
151.20165 +                              </path>
151.20166 +                              <path>
151.20167 +                                 <gradient cycleMethod="NO_CYCLE">
151.20168 +                                    <stop position="0.0" midpoint="0.5">
151.20169 +                                       <matte red="0" green="5" blue="31" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.061133325" saturationOffset="0.3642857" brightnessOffset="-0.427451" alphaOffset="0"/>
151.20170 +                                    </stop>
151.20171 +                                    <stop position="1.0" midpoint="0.5">
151.20172 +                                       <matte red="28" green="56" blue="81" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-3.528595E-5" saturationOffset="0.018606722" brightnessOffset="-0.23137257" alphaOffset="0"/>
151.20173 +                                    </stop>
151.20174 +                                 </gradient>
151.20175 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.20176 +                                 <points>
151.20177 +                                    <point x="0.0" y="0.0" cp1x="0.0" cp1y="0.0" cp2x="0.0" cp2y="0.0"/>
151.20178 +                                    <point x="0.0" y="10.0" cp1x="0.0" cp1y="10.0" cp2x="0.0" cp2y="10.0"/>
151.20179 +                                    <point x="14.0" y="10.0" cp1x="14.0" cp1y="10.0" cp2x="17.0" cp2y="10.0"/>
151.20180 +                                    <point x="18.0" y="6.0" cp1x="18.0" cp1y="8.0" cp2x="18.0" cp2y="6.0"/>
151.20181 +                                    <point x="18.0" y="0.0" cp1x="18.0" cp1y="0.0" cp2x="18.0" cp2y="0.0"/>
151.20182 +                                 </points>
151.20183 +                              </path>
151.20184 +                              <path>
151.20185 +                                 <matte red="255" green="255" blue="255" alpha="69" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-186"/>
151.20186 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.20187 +                                 <points>
151.20188 +                                    <point x="0.0" y="10.0" cp1x="0.0" cp1y="10.0" cp2x="0.0" cp2y="10.0"/>
151.20189 +                                    <point x="0.0" y="11.0" cp1x="0.0" cp1y="11.0" cp2x="0.0" cp2y="11.0"/>
151.20190 +                                    <point x="13.227272727272727" y="11.0" cp1x="11.113636363636347" cp1y="11.0" cp2x="15.340909090909106" cp2y="11.0"/>
151.20191 +                                    <point x="18.0" y="6.0" cp1x="18.0" cp1y="9.0" cp2x="18.0" cp2y="6.0"/>
151.20192 +                                 </points>
151.20193 +                              </path>
151.20194 +                           </shapes>
151.20195 +                           <effects/>
151.20196 +                        </layer>
151.20197 +                        <templateLayer fileName="113a3d7e1c5.png">
151.20198 +                           <layer name="Template" type="template">
151.20199 +                              <opacity>1.0</opacity>
151.20200 +                              <fillOpacity>1.0</fillOpacity>
151.20201 +                              <blendingMode>NORMAL</blendingMode>
151.20202 +                              <locked>false</locked>
151.20203 +                              <visible>false</visible>
151.20204 +                              <shapes/>
151.20205 +                              <effects/>
151.20206 +                           </layer>
151.20207 +                        </templateLayer>
151.20208 +                     </canvas>
151.20209 +                  </state>
151.20210 +               </backgroundStates>
151.20211 +               <foregroundStates>
151.20212 +                  <state stateKeys="Disabled" inverted="true">
151.20213 +                     <style>
151.20214 +                        <textForeground/>
151.20215 +                        <textBackground/>
151.20216 +                        <background/>
151.20217 +                        <uiproperties/>
151.20218 +                     </style>
151.20219 +                     <canvas>
151.20220 +                        <size width="20" height="12"/>
151.20221 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.20222 +                        <stretchingInsets top="3" bottom="5" left="6" right="9"/>
151.20223 +                        <layer name="Layer 1">
151.20224 +                           <opacity>1.0</opacity>
151.20225 +                           <fillOpacity>1.0</fillOpacity>
151.20226 +                           <blendingMode>NORMAL</blendingMode>
151.20227 +                           <locked>false</locked>
151.20228 +                           <visible>true</visible>
151.20229 +                           <shapes>
151.20230 +                              <path>
151.20231 +                                 <matte red="163" green="168" blue="175" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.018570602" saturationOffset="-0.56714284" brightnessOffset="0.1372549" alphaOffset="0"/>
151.20232 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.20233 +                                 <points>
151.20234 +                                    <point x="6.0" y="3.0" cp1x="6.0" cp1y="3.0" cp2x="6.0" cp2y="3.0"/>
151.20235 +                                    <point x="8.522727272727263" y="6.9772727272727275" cp1x="8.522727272727263" cp1y="6.9772727272727275" cp2x="8.522727272727263" cp2y="6.9772727272727275"/>
151.20236 +                                    <point x="11.0" y="3.0" cp1x="11.0" cp1y="3.0" cp2x="11.0" cp2y="3.0"/>
151.20237 +                                 </points>
151.20238 +                              </path>
151.20239 +                           </shapes>
151.20240 +                           <effects/>
151.20241 +                        </layer>
151.20242 +                     </canvas>
151.20243 +                  </state>
151.20244 +                  <state stateKeys="Enabled" inverted="true">
151.20245 +                     <style>
151.20246 +                        <textForeground/>
151.20247 +                        <textBackground/>
151.20248 +                        <background/>
151.20249 +                        <uiproperties/>
151.20250 +                     </style>
151.20251 +                     <canvas>
151.20252 +                        <size width="20" height="12"/>
151.20253 +                        <nextLayerNameIndex>4</nextLayerNameIndex>
151.20254 +                        <stretchingInsets top="3" bottom="5" left="6" right="9"/>
151.20255 +                        <layer name="Layer 1">
151.20256 +                           <opacity>1.0</opacity>
151.20257 +                           <fillOpacity>1.0</fillOpacity>
151.20258 +                           <blendingMode>NORMAL</blendingMode>
151.20259 +                           <locked>false</locked>
151.20260 +                           <visible>true</visible>
151.20261 +                           <shapes>
151.20262 +                              <path>
151.20263 +                                 <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.20264 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.20265 +                                 <points>
151.20266 +                                    <point x="6.0" y="3.0" cp1x="6.0" cp1y="3.0" cp2x="6.0" cp2y="3.0"/>
151.20267 +                                    <point x="8.522727272727263" y="6.9772727272727275" cp1x="8.522727272727263" cp1y="6.9772727272727275" cp2x="8.522727272727263" cp2y="6.9772727272727275"/>
151.20268 +                                    <point x="11.0" y="3.0" cp1x="11.0" cp1y="3.0" cp2x="11.0" cp2y="3.0"/>
151.20269 +                                 </points>
151.20270 +                              </path>
151.20271 +                           </shapes>
151.20272 +                           <effects/>
151.20273 +                        </layer>
151.20274 +                     </canvas>
151.20275 +                  </state>
151.20276 +                  <state stateKeys="Focused" inverted="true">
151.20277 +                     <style>
151.20278 +                        <textForeground/>
151.20279 +                        <textBackground/>
151.20280 +                        <background/>
151.20281 +                        <uiproperties/>
151.20282 +                     </style>
151.20283 +                     <canvas>
151.20284 +                        <size width="20" height="12"/>
151.20285 +                        <nextLayerNameIndex>4</nextLayerNameIndex>
151.20286 +                        <stretchingInsets top="3" bottom="5" left="6" right="9"/>
151.20287 +                        <layer name="Layer 1">
151.20288 +                           <opacity>1.0</opacity>
151.20289 +                           <fillOpacity>1.0</fillOpacity>
151.20290 +                           <blendingMode>NORMAL</blendingMode>
151.20291 +                           <locked>false</locked>
151.20292 +                           <visible>true</visible>
151.20293 +                           <shapes>
151.20294 +                              <path>
151.20295 +                                 <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.20296 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.20297 +                                 <points>
151.20298 +                                    <point x="6.0" y="3.0" cp1x="6.0" cp1y="3.0" cp2x="6.0" cp2y="3.0"/>
151.20299 +                                    <point x="8.522727272727263" y="6.9772727272727275" cp1x="8.522727272727263" cp1y="6.9772727272727275" cp2x="8.522727272727263" cp2y="6.9772727272727275"/>
151.20300 +                                    <point x="11.0" y="3.0" cp1x="11.0" cp1y="3.0" cp2x="11.0" cp2y="3.0"/>
151.20301 +                                 </points>
151.20302 +                              </path>
151.20303 +                           </shapes>
151.20304 +                           <effects/>
151.20305 +                        </layer>
151.20306 +                     </canvas>
151.20307 +                  </state>
151.20308 +                  <state stateKeys="MouseOver+Focused" inverted="true">
151.20309 +                     <style>
151.20310 +                        <textForeground/>
151.20311 +                        <textBackground/>
151.20312 +                        <background/>
151.20313 +                        <uiproperties/>
151.20314 +                     </style>
151.20315 +                     <canvas>
151.20316 +                        <size width="20" height="12"/>
151.20317 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.20318 +                        <stretchingInsets top="3" bottom="5" left="6" right="9"/>
151.20319 +                        <layer name="Layer 1">
151.20320 +                           <opacity>1.0</opacity>
151.20321 +                           <fillOpacity>1.0</fillOpacity>
151.20322 +                           <blendingMode>NORMAL</blendingMode>
151.20323 +                           <locked>false</locked>
151.20324 +                           <visible>true</visible>
151.20325 +                           <shapes>
151.20326 +                              <path>
151.20327 +                                 <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.20328 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.20329 +                                 <points>
151.20330 +                                    <point x="6.0" y="3.0" cp1x="6.0" cp1y="3.0" cp2x="6.0" cp2y="3.0"/>
151.20331 +                                    <point x="8.522727272727263" y="6.9772727272727275" cp1x="8.522727272727263" cp1y="6.9772727272727275" cp2x="8.522727272727263" cp2y="6.9772727272727275"/>
151.20332 +                                    <point x="11.0" y="3.0" cp1x="11.0" cp1y="3.0" cp2x="11.0" cp2y="3.0"/>
151.20333 +                                 </points>
151.20334 +                              </path>
151.20335 +                           </shapes>
151.20336 +                           <effects/>
151.20337 +                        </layer>
151.20338 +                     </canvas>
151.20339 +                  </state>
151.20340 +                  <state stateKeys="Pressed+Focused" inverted="true">
151.20341 +                     <style>
151.20342 +                        <textForeground/>
151.20343 +                        <textBackground/>
151.20344 +                        <background/>
151.20345 +                        <uiproperties/>
151.20346 +                     </style>
151.20347 +                     <canvas>
151.20348 +                        <size width="20" height="12"/>
151.20349 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.20350 +                        <stretchingInsets top="3" bottom="5" left="6" right="9"/>
151.20351 +                        <layer name="Layer 1">
151.20352 +                           <opacity>1.0</opacity>
151.20353 +                           <fillOpacity>1.0</fillOpacity>
151.20354 +                           <blendingMode>NORMAL</blendingMode>
151.20355 +                           <locked>false</locked>
151.20356 +                           <visible>true</visible>
151.20357 +                           <shapes>
151.20358 +                              <path>
151.20359 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="0"/>
151.20360 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.20361 +                                 <points>
151.20362 +                                    <point x="6.0" y="3.0" cp1x="6.0" cp1y="3.0" cp2x="6.0" cp2y="3.0"/>
151.20363 +                                    <point x="8.522727272727263" y="6.9772727272727275" cp1x="8.522727272727263" cp1y="6.9772727272727275" cp2x="8.522727272727263" cp2y="6.9772727272727275"/>
151.20364 +                                    <point x="11.0" y="3.0" cp1x="11.0" cp1y="3.0" cp2x="11.0" cp2y="3.0"/>
151.20365 +                                 </points>
151.20366 +                              </path>
151.20367 +                           </shapes>
151.20368 +                           <effects/>
151.20369 +                        </layer>
151.20370 +                     </canvas>
151.20371 +                  </state>
151.20372 +                  <state stateKeys="MouseOver" inverted="true">
151.20373 +                     <style>
151.20374 +                        <textForeground/>
151.20375 +                        <textBackground/>
151.20376 +                        <background/>
151.20377 +                        <uiproperties/>
151.20378 +                     </style>
151.20379 +                     <canvas>
151.20380 +                        <size width="20" height="12"/>
151.20381 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.20382 +                        <stretchingInsets top="3" bottom="5" left="6" right="9"/>
151.20383 +                        <layer name="Layer 1">
151.20384 +                           <opacity>1.0</opacity>
151.20385 +                           <fillOpacity>1.0</fillOpacity>
151.20386 +                           <blendingMode>NORMAL</blendingMode>
151.20387 +                           <locked>false</locked>
151.20388 +                           <visible>true</visible>
151.20389 +                           <shapes>
151.20390 +                              <path>
151.20391 +                                 <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.20392 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.20393 +                                 <points>
151.20394 +                                    <point x="6.0" y="3.0" cp1x="6.0" cp1y="3.0" cp2x="6.0" cp2y="3.0"/>
151.20395 +                                    <point x="8.522727272727263" y="6.9772727272727275" cp1x="8.522727272727263" cp1y="6.9772727272727275" cp2x="8.522727272727263" cp2y="6.9772727272727275"/>
151.20396 +                                    <point x="11.0" y="3.0" cp1x="11.0" cp1y="3.0" cp2x="11.0" cp2y="3.0"/>
151.20397 +                                 </points>
151.20398 +                              </path>
151.20399 +                           </shapes>
151.20400 +                           <effects/>
151.20401 +                        </layer>
151.20402 +                     </canvas>
151.20403 +                  </state>
151.20404 +                  <state stateKeys="Pressed" inverted="true">
151.20405 +                     <style>
151.20406 +                        <textForeground/>
151.20407 +                        <textBackground/>
151.20408 +                        <background/>
151.20409 +                        <uiproperties/>
151.20410 +                     </style>
151.20411 +                     <canvas>
151.20412 +                        <size width="20" height="12"/>
151.20413 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.20414 +                        <stretchingInsets top="3" bottom="5" left="6" right="9"/>
151.20415 +                        <layer name="Layer 1">
151.20416 +                           <opacity>1.0</opacity>
151.20417 +                           <fillOpacity>1.0</fillOpacity>
151.20418 +                           <blendingMode>NORMAL</blendingMode>
151.20419 +                           <locked>false</locked>
151.20420 +                           <visible>true</visible>
151.20421 +                           <shapes>
151.20422 +                              <path>
151.20423 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="0"/>
151.20424 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.20425 +                                 <points>
151.20426 +                                    <point x="6.0" y="3.0" cp1x="6.0" cp1y="3.0" cp2x="6.0" cp2y="3.0"/>
151.20427 +                                    <point x="8.522727272727263" y="6.9772727272727275" cp1x="8.522727272727263" cp1y="6.9772727272727275" cp2x="8.522727272727263" cp2y="6.9772727272727275"/>
151.20428 +                                    <point x="11.0" y="3.0" cp1x="11.0" cp1y="3.0" cp2x="11.0" cp2y="3.0"/>
151.20429 +                                 </points>
151.20430 +                              </path>
151.20431 +                           </shapes>
151.20432 +                           <effects/>
151.20433 +                        </layer>
151.20434 +                     </canvas>
151.20435 +                  </state>
151.20436 +               </foregroundStates>
151.20437 +               <borderStates/>
151.20438 +               <regions/>
151.20439 +            </uiComponent>
151.20440 +            <uiComponent opaque="false" componentName="Spinner.nextButton" type="javax.swing.plaf.synth.SynthArrowButton" name="ArrowButton" ui="SynthArrowButtonUI" subregion="true">
151.20441 +               <stateTypes/>
151.20442 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.20443 +               <style>
151.20444 +                  <textForeground/>
151.20445 +                  <textBackground/>
151.20446 +                  <background/>
151.20447 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.20448 +                  <uiproperties>
151.20449 +                     <uiProperty name="size" type="INT" value="20"/>
151.20450 +                  </uiproperties>
151.20451 +               </style>
151.20452 +               <backgroundStates>
151.20453 +                  <state stateKeys="Disabled">
151.20454 +                     <style>
151.20455 +                        <textForeground/>
151.20456 +                        <textBackground/>
151.20457 +                        <background/>
151.20458 +                        <uiproperties/>
151.20459 +                     </style>
151.20460 +                     <canvas>
151.20461 +                        <size width="20" height="12"/>
151.20462 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.20463 +                        <stretchingInsets top="7" bottom="1" left="1" right="7"/>
151.20464 +                        <layer name="Layer 1">
151.20465 +                           <opacity>1.0</opacity>
151.20466 +                           <fillOpacity>1.0</fillOpacity>
151.20467 +                           <blendingMode>NORMAL</blendingMode>
151.20468 +                           <locked>false</locked>
151.20469 +                           <visible>true</visible>
151.20470 +                           <shapes>
151.20471 +                              <rectangle x1="1.0" x2="17.0" y1="11.0" y2="12.0" rounding="0.0">
151.20472 +                                 <matte red="188" green="194" blue="203" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.56182265" brightnessOffset="0.24705881" alphaOffset="0"/>
151.20473 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.20474 +                              </rectangle>
151.20475 +                              <path>
151.20476 +                                 <gradient cycleMethod="NO_CYCLE">
151.20477 +                                    <stop position="0.0" midpoint="0.5">
151.20478 +                                       <matte red="220" green="224" blue="230" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.59223604" brightnessOffset="0.35294116" alphaOffset="0"/>
151.20479 +                                    </stop>
151.20480 +                                    <stop position="1.0" midpoint="0.033333335">
151.20481 +                                       <matte red="207" green="213" blue="221" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.016586483" saturationOffset="-0.5723659" brightnessOffset="0.31764704" alphaOffset="0"/>
151.20482 +                                    </stop>
151.20483 +                                 </gradient>
151.20484 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.20485 +                                 <points>
151.20486 +                                    <point x="1.0" y="11.0" cp1x="1.0" cp1y="11.0" cp2x="1.0" cp2y="11.0"/>
151.20487 +                                    <point x="1.0" y="3.0" cp1x="1.0" cp1y="3.0" cp2x="1.0" cp2y="3.0"/>
151.20488 +                                    <point x="13.0" y="3.0" cp1x="10.0" cp1y="3.0" cp2x="16.0" cp2y="3.0"/>
151.20489 +                                    <point x="17.0" y="7.0" cp1x="17.0" cp1y="5.0" cp2x="17.0" cp2y="9.0"/>
151.20490 +                                    <point x="17.0" y="11.0" cp1x="17.0" cp1y="11.0" cp2x="17.0" cp2y="11.0"/>
151.20491 +                                 </points>
151.20492 +                              </path>
151.20493 +                              <path>
151.20494 +                                 <gradient cycleMethod="NO_CYCLE">
151.20495 +                                    <stop position="0.0" midpoint="0.5">
151.20496 +                                       <matte red="191" green="197" blue="206" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.56289876" brightnessOffset="0.2588235" alphaOffset="0"/>
151.20497 +                                    </stop>
151.20498 +                                    <stop position="1.0" midpoint="0.5">
151.20499 +                                       <matte red="185" green="192" blue="200" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.010237217" saturationOffset="-0.5607143" brightnessOffset="0.2352941" alphaOffset="0"/>
151.20500 +                                    </stop>
151.20501 +                                 </gradient>
151.20502 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.20503 +                                 <points>
151.20504 +                                    <point x="0.0" y="12.0" cp1x="0.0" cp1y="12.0" cp2x="0.0" cp2y="12.0"/>
151.20505 +                                    <point x="0.0" y="2.0" cp1x="0.0" cp1y="2.0" cp2x="0.0" cp2y="2.0"/>
151.20506 +                                    <point x="13.0" y="2.0" cp1x="9.36363636363636" cp1y="2.0" cp2x="16.63636363636364" cp2y="2.0"/>
151.20507 +                                    <point x="18.0" y="7.0" cp1x="17.977272727272727" cp1y="3.250000000000001" cp2x="18.022727272727273" cp2y="10.75"/>
151.20508 +                                    <point x="18.0" y="12.0" cp1x="18.0" cp1y="12.0" cp2x="18.0" cp2y="12.0"/>
151.20509 +                                 </points>
151.20510 +                              </path>
151.20511 +                           </shapes>
151.20512 +                           <effects/>
151.20513 +                        </layer>
151.20514 +                        <templateLayer fileName="113a3cf2041.png">
151.20515 +                           <layer name="Template" type="template">
151.20516 +                              <opacity>1.0</opacity>
151.20517 +                              <fillOpacity>1.0</fillOpacity>
151.20518 +                              <blendingMode>NORMAL</blendingMode>
151.20519 +                              <locked>false</locked>
151.20520 +                              <visible>false</visible>
151.20521 +                              <shapes/>
151.20522 +                              <effects/>
151.20523 +                           </layer>
151.20524 +                        </templateLayer>
151.20525 +                     </canvas>
151.20526 +                  </state>
151.20527 +                  <state stateKeys="Enabled">
151.20528 +                     <style>
151.20529 +                        <textForeground/>
151.20530 +                        <textBackground/>
151.20531 +                        <background/>
151.20532 +                        <uiproperties/>
151.20533 +                     </style>
151.20534 +                     <canvas>
151.20535 +                        <size width="20" height="12"/>
151.20536 +                        <nextLayerNameIndex>4</nextLayerNameIndex>
151.20537 +                        <stretchingInsets top="7" bottom="1" left="1" right="7"/>
151.20538 +                        <layer name="Layer 1">
151.20539 +                           <opacity>1.0</opacity>
151.20540 +                           <fillOpacity>1.0</fillOpacity>
151.20541 +                           <blendingMode>NORMAL</blendingMode>
151.20542 +                           <locked>false</locked>
151.20543 +                           <visible>true</visible>
151.20544 +                           <shapes>
151.20545 +                              <rectangle x1="1.0" x2="17.0" y1="11.0" y2="12.0" rounding="0.0">
151.20546 +                                 <matte red="93" green="111" blue="128" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0023007393" saturationOffset="-0.3622768" brightnessOffset="-0.04705882" alphaOffset="0"/>
151.20547 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.20548 +                              </rectangle>
151.20549 +                              <path>
151.20550 +                                 <gradient cycleMethod="NO_CYCLE">
151.20551 +                                    <stop position="0.0" midpoint="0.5">
151.20552 +                                       <matte red="246" green="248" blue="250" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6197143" brightnessOffset="0.43137252" alphaOffset="0"/>
151.20553 +                                    </stop>
151.20554 +                                    <stop position="0.72994655" midpoint="0.5">
151.20555 +                                       <matte red="191" green="206" blue="219" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0012707114" saturationOffset="-0.5078604" brightnessOffset="0.3098039" alphaOffset="0"/>
151.20556 +                                    </stop>
151.20557 +                                    <stop position="1.0" midpoint="0.033333335">
151.20558 +                                       <matte red="179" green="197" blue="212" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0028941035" saturationOffset="-0.4800539" brightnessOffset="0.28235292" alphaOffset="0"/>
151.20559 +                                    </stop>
151.20560 +                                 </gradient>
151.20561 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.20562 +                                 <points>
151.20563 +                                    <point x="1.0" y="11.0" cp1x="1.0" cp1y="11.0" cp2x="1.0" cp2y="11.0"/>
151.20564 +                                    <point x="1.0" y="3.0" cp1x="1.0" cp1y="3.0" cp2x="1.0" cp2y="3.0"/>
151.20565 +                                    <point x="13.0" y="3.0" cp1x="13.0" cp1y="3.0" cp2x="16.0" cp2y="3.0"/>
151.20566 +                                    <point x="17.0" y="7.0" cp1x="17.0" cp1y="5.0" cp2x="17.0" cp2y="7.0"/>
151.20567 +                                    <point x="17.0" y="11.0" cp1x="17.0" cp1y="11.0" cp2x="17.0" cp2y="11.0"/>
151.20568 +                                 </points>
151.20569 +                              </path>
151.20570 +                              <path>
151.20571 +                                 <gradient cycleMethod="NO_CYCLE">
151.20572 +                                    <stop position="0.0" midpoint="0.5">
151.20573 +                                       <matte red="98" green="119" blue="138" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.34585923" brightnessOffset="-0.007843137" alphaOffset="0"/>
151.20574 +                                    </stop>
151.20575 +                                    <stop position="1.0" midpoint="0.5">
151.20576 +                                       <matte red="70" green="91" blue="110" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.27207792" brightnessOffset="-0.11764708" alphaOffset="0"/>
151.20577 +                                    </stop>
151.20578 +                                 </gradient>
151.20579 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.20580 +                                 <points>
151.20581 +                                    <point x="0.0" y="12.0" cp1x="0.0" cp1y="12.0" cp2x="0.0" cp2y="12.0"/>
151.20582 +                                    <point x="0.0" y="2.0" cp1x="0.0" cp1y="2.0" cp2x="0.0" cp2y="2.0"/>
151.20583 +                                    <point x="13.0" y="2.0" cp1x="13.0" cp1y="2.0" cp2x="16.63636363636364" cp2y="2.0"/>
151.20584 +                                    <point x="18.0" y="7.0" cp1x="17.977272727272727" cp1y="3.250000000000001" cp2x="18.0" cp2y="7.0"/>
151.20585 +                                    <point x="18.0" y="12.0" cp1x="18.0" cp1y="12.0" cp2x="18.0" cp2y="12.0"/>
151.20586 +                                 </points>
151.20587 +                              </path>
151.20588 +                           </shapes>
151.20589 +                           <effects/>
151.20590 +                        </layer>
151.20591 +                        <templateLayer fileName="113a3c06513.png">
151.20592 +                           <layer name="Template" type="template">
151.20593 +                              <opacity>1.0</opacity>
151.20594 +                              <fillOpacity>1.0</fillOpacity>
151.20595 +                              <blendingMode>NORMAL</blendingMode>
151.20596 +                              <locked>false</locked>
151.20597 +                              <visible>false</visible>
151.20598 +                              <shapes/>
151.20599 +                              <effects/>
151.20600 +                           </layer>
151.20601 +                        </templateLayer>
151.20602 +                     </canvas>
151.20603 +                  </state>
151.20604 +                  <state stateKeys="Focused">
151.20605 +                     <style>
151.20606 +                        <textForeground/>
151.20607 +                        <textBackground/>
151.20608 +                        <background/>
151.20609 +                        <uiproperties/>
151.20610 +                     </style>
151.20611 +                     <canvas>
151.20612 +                        <size width="20" height="12"/>
151.20613 +                        <nextLayerNameIndex>4</nextLayerNameIndex>
151.20614 +                        <stretchingInsets top="7" bottom="1" left="1" right="7"/>
151.20615 +                        <layer name="Layer 1">
151.20616 +                           <opacity>1.0</opacity>
151.20617 +                           <fillOpacity>1.0</fillOpacity>
151.20618 +                           <blendingMode>NORMAL</blendingMode>
151.20619 +                           <locked>false</locked>
151.20620 +                           <visible>true</visible>
151.20621 +                           <shapes>
151.20622 +                              <rectangle x1="1.0" x2="17.0" y1="11.0" y2="12.0" rounding="0.0">
151.20623 +                                 <matte red="93" green="111" blue="128" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0023007393" saturationOffset="-0.3622768" brightnessOffset="-0.04705882" alphaOffset="0"/>
151.20624 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.20625 +                              </rectangle>
151.20626 +                              <path>
151.20627 +                                 <gradient cycleMethod="NO_CYCLE">
151.20628 +                                    <stop position="0.0" midpoint="0.5">
151.20629 +                                       <matte red="246" green="248" blue="250" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6197143" brightnessOffset="0.43137252" alphaOffset="0"/>
151.20630 +                                    </stop>
151.20631 +                                    <stop position="0.7513369" midpoint="0.5">
151.20632 +                                       <matte red="191" green="206" blue="219" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0012707114" saturationOffset="-0.5078604" brightnessOffset="0.3098039" alphaOffset="0"/>
151.20633 +                                    </stop>
151.20634 +                                    <stop position="1.0" midpoint="0.033333335">
151.20635 +                                       <matte red="179" green="197" blue="212" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0028941035" saturationOffset="-0.4800539" brightnessOffset="0.28235292" alphaOffset="0"/>
151.20636 +                                    </stop>
151.20637 +                                 </gradient>
151.20638 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.20639 +                                 <points>
151.20640 +                                    <point x="1.0" y="11.0" cp1x="1.0" cp1y="11.0" cp2x="1.0" cp2y="11.0"/>
151.20641 +                                    <point x="1.0" y="3.0" cp1x="1.0" cp1y="3.0" cp2x="1.0" cp2y="3.0"/>
151.20642 +                                    <point x="13.0" y="3.0" cp1x="13.0" cp1y="3.0" cp2x="16.0" cp2y="3.0"/>
151.20643 +                                    <point x="17.0" y="7.0" cp1x="17.0" cp1y="5.0" cp2x="17.0" cp2y="7.0"/>
151.20644 +                                    <point x="17.0" y="11.0" cp1x="17.0" cp1y="11.0" cp2x="17.0" cp2y="11.0"/>
151.20645 +                                 </points>
151.20646 +                              </path>
151.20647 +                              <path>
151.20648 +                                 <gradient cycleMethod="NO_CYCLE">
151.20649 +                                    <stop position="0.0" midpoint="0.5">
151.20650 +                                       <matte red="98" green="119" blue="138" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.34585923" brightnessOffset="-0.007843137" alphaOffset="0"/>
151.20651 +                                    </stop>
151.20652 +                                    <stop position="1.0" midpoint="0.5">
151.20653 +                                       <matte red="70" green="91" blue="110" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.27207792" brightnessOffset="-0.11764708" alphaOffset="0"/>
151.20654 +                                    </stop>
151.20655 +                                 </gradient>
151.20656 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.20657 +                                 <points>
151.20658 +                                    <point x="0.0" y="12.0" cp1x="0.0" cp1y="12.0" cp2x="0.0" cp2y="12.0"/>
151.20659 +                                    <point x="0.0" y="2.0" cp1x="0.0" cp1y="2.0" cp2x="0.0" cp2y="2.0"/>
151.20660 +                                    <point x="13.0" y="2.0" cp1x="13.0" cp1y="2.0" cp2x="16.63636363636364" cp2y="2.0"/>
151.20661 +                                    <point x="18.0" y="7.0" cp1x="17.977272727272727" cp1y="3.250000000000001" cp2x="18.0" cp2y="7.0"/>
151.20662 +                                    <point x="18.0" y="12.0" cp1x="18.0" cp1y="12.0" cp2x="18.0" cp2y="12.0"/>
151.20663 +                                 </points>
151.20664 +                              </path>
151.20665 +                              <path>
151.20666 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.20667 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.20668 +                                 <points>
151.20669 +                                    <point x="0.0" y="12.0" cp1x="0.0" cp1y="12.0" cp2x="0.0" cp2y="12.0"/>
151.20670 +                                    <point x="0.0" y="0.6" cp1x="0.0" cp1y="0.6" cp2x="0.0" cp2y="0.6"/>
151.20671 +                                    <point x="14.0" y="0.6" cp1x="14.0" cp1y="0.6" cp2x="17.4" cp2y="0.6"/>
151.20672 +                                    <point x="19.4" y="7.0" cp1x="19.4" cp1y="3.6" cp2x="19.4" cp2y="7.0"/>
151.20673 +                                    <point x="19.4" y="12.0" cp1x="19.4" cp1y="12.0" cp2x="19.4" cp2y="12.0"/>
151.20674 +                                 </points>
151.20675 +                              </path>
151.20676 +                           </shapes>
151.20677 +                           <effects/>
151.20678 +                        </layer>
151.20679 +                     </canvas>
151.20680 +                  </state>
151.20681 +                  <state stateKeys="MouseOver+Focused">
151.20682 +                     <style>
151.20683 +                        <textForeground/>
151.20684 +                        <textBackground/>
151.20685 +                        <background/>
151.20686 +                        <uiproperties/>
151.20687 +                     </style>
151.20688 +                     <canvas>
151.20689 +                        <size width="20" height="12"/>
151.20690 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.20691 +                        <stretchingInsets top="7" bottom="1" left="1" right="7"/>
151.20692 +                        <layer name="Layer 1">
151.20693 +                           <opacity>1.0</opacity>
151.20694 +                           <fillOpacity>1.0</fillOpacity>
151.20695 +                           <blendingMode>NORMAL</blendingMode>
151.20696 +                           <locked>false</locked>
151.20697 +                           <visible>true</visible>
151.20698 +                           <shapes>
151.20699 +                              <rectangle x1="1.0" x2="17.0" y1="11.0" y2="12.0" rounding="0.0">
151.20700 +                                 <matte red="109" green="128" blue="145" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.2034855E-5" saturationOffset="-0.38743842" brightnessOffset="0.019607842" alphaOffset="0"/>
151.20701 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.20702 +                              </rectangle>
151.20703 +                              <path>
151.20704 +                                 <gradient cycleMethod="NO_CYCLE">
151.20705 +                                    <stop position="0.0" midpoint="0.5">
151.20706 +                                       <matte red="248" green="250" blue="252" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6198413" brightnessOffset="0.43921566" alphaOffset="0"/>
151.20707 +                                    </stop>
151.20708 +                                    <stop position="0.7593583" midpoint="0.5">
151.20709 +                                       <matte red="204" green="219" blue="232" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0012707114" saturationOffset="-0.51502466" brightnessOffset="0.3607843" alphaOffset="0"/>
151.20710 +                                    </stop>
151.20711 +                                    <stop position="1.0" midpoint="0.033333335">
151.20712 +                                       <matte red="195" green="212" blue="228" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0021564364" saturationOffset="-0.49097747" brightnessOffset="0.34509802" alphaOffset="0"/>
151.20713 +                                    </stop>
151.20714 +                                 </gradient>
151.20715 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.20716 +                                 <points>
151.20717 +                                    <point x="1.0" y="11.0" cp1x="1.0" cp1y="11.0" cp2x="1.0" cp2y="11.0"/>
151.20718 +                                    <point x="1.0" y="3.0" cp1x="1.0" cp1y="3.0" cp2x="1.0" cp2y="3.0"/>
151.20719 +                                    <point x="13.0" y="3.0" cp1x="13.0" cp1y="3.0" cp2x="16.0" cp2y="3.0"/>
151.20720 +                                    <point x="17.0" y="7.0" cp1x="17.0" cp1y="5.0" cp2x="17.0" cp2y="7.0"/>
151.20721 +                                    <point x="17.0" y="11.0" cp1x="17.0" cp1y="11.0" cp2x="17.0" cp2y="11.0"/>
151.20722 +                                 </points>
151.20723 +                              </path>
151.20724 +                              <path>
151.20725 +                                 <gradient cycleMethod="NO_CYCLE">
151.20726 +                                    <stop position="0.0" midpoint="0.5">
151.20727 +                                       <matte red="59" green="85" blue="109" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0013483167" saturationOffset="-0.1769987" brightnessOffset="-0.12156865" alphaOffset="0"/>
151.20728 +                                    </stop>
151.20729 +                                    <stop position="1.0" midpoint="0.5">
151.20730 +                                       <matte red="24" green="50" blue="74" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0013483167" saturationOffset="0.039961398" brightnessOffset="-0.25882354" alphaOffset="0"/>
151.20731 +                                    </stop>
151.20732 +                                 </gradient>
151.20733 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.20734 +                                 <points>
151.20735 +                                    <point x="0.0" y="12.0" cp1x="0.0" cp1y="12.0" cp2x="0.0" cp2y="12.0"/>
151.20736 +                                    <point x="0.0" y="2.0" cp1x="0.0" cp1y="2.0" cp2x="0.0" cp2y="2.0"/>
151.20737 +                                    <point x="13.0" y="2.0" cp1x="13.0" cp1y="2.0" cp2x="16.63636363636364" cp2y="2.0"/>
151.20738 +                                    <point x="18.0" y="7.0" cp1x="17.977272727272727" cp1y="3.250000000000001" cp2x="18.0" cp2y="7.0"/>
151.20739 +                                    <point x="18.0" y="12.0" cp1x="18.0" cp1y="12.0" cp2x="18.0" cp2y="12.0"/>
151.20740 +                                 </points>
151.20741 +                              </path>
151.20742 +                              <path>
151.20743 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.20744 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.20745 +                                 <points>
151.20746 +                                    <point x="0.0" y="12.0" cp1x="0.0" cp1y="12.0" cp2x="0.0" cp2y="12.0"/>
151.20747 +                                    <point x="0.0" y="0.6" cp1x="0.0" cp1y="0.6" cp2x="0.0" cp2y="0.6"/>
151.20748 +                                    <point x="14.0" y="0.6" cp1x="14.0" cp1y="0.6" cp2x="17.4" cp2y="0.6"/>
151.20749 +                                    <point x="19.4" y="7.0" cp1x="19.4" cp1y="3.6" cp2x="19.4" cp2y="7.0"/>
151.20750 +                                    <point x="19.4" y="12.0" cp1x="19.4" cp1y="12.0" cp2x="19.4" cp2y="12.0"/>
151.20751 +                                 </points>
151.20752 +                              </path>
151.20753 +                           </shapes>
151.20754 +                           <effects/>
151.20755 +                        </layer>
151.20756 +                     </canvas>
151.20757 +                  </state>
151.20758 +                  <state stateKeys="Pressed+Focused">
151.20759 +                     <style>
151.20760 +                        <textForeground/>
151.20761 +                        <textBackground/>
151.20762 +                        <background/>
151.20763 +                        <uiproperties/>
151.20764 +                     </style>
151.20765 +                     <canvas>
151.20766 +                        <size width="20" height="12"/>
151.20767 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.20768 +                        <stretchingInsets top="7" bottom="1" left="1" right="7"/>
151.20769 +                        <layer name="Layer 1">
151.20770 +                           <opacity>1.0</opacity>
151.20771 +                           <fillOpacity>1.0</fillOpacity>
151.20772 +                           <blendingMode>NORMAL</blendingMode>
151.20773 +                           <locked>false</locked>
151.20774 +                           <visible>true</visible>
151.20775 +                           <shapes>
151.20776 +                              <rectangle x1="1.0" x2="17.0" y1="11.0" y2="12.0" rounding="0.0">
151.20777 +                                 <matte red="15" green="43" blue="82" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.018363237" saturationOffset="0.18135887" brightnessOffset="-0.227451" alphaOffset="0"/>
151.20778 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.20779 +                              </rectangle>
151.20780 +                              <path>
151.20781 +                                 <gradient cycleMethod="NO_CYCLE">
151.20782 +                                    <stop position="0.0" midpoint="0.5">
151.20783 +                                       <matte red="143" green="169" blue="192" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-4.2033195E-4" saturationOffset="-0.38050595" brightnessOffset="0.20392156" alphaOffset="0"/>
151.20784 +                                    </stop>
151.20785 +                                    <stop position="0.7433155" midpoint="0.5">
151.20786 +                                       <matte red="82" green="122" blue="158" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="-0.15470162" brightnessOffset="0.07058823" alphaOffset="0"/>
151.20787 +                                    </stop>
151.20788 +                                    <stop position="1.0" midpoint="0.033333335">
151.20789 +                                       <matte red="69" green="112" blue="150" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-4.6235323E-4" saturationOffset="-0.09571427" brightnessOffset="0.039215684" alphaOffset="0"/>
151.20790 +                                    </stop>
151.20791 +                                 </gradient>
151.20792 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.20793 +                                 <points>
151.20794 +                                    <point x="1.0" y="11.0" cp1x="1.0" cp1y="11.0" cp2x="1.0" cp2y="11.0"/>
151.20795 +                                    <point x="1.0" y="3.0" cp1x="1.0" cp1y="3.0" cp2x="1.0" cp2y="3.0"/>
151.20796 +                                    <point x="13.0" y="3.0" cp1x="13.0" cp1y="3.0" cp2x="16.0" cp2y="3.0"/>
151.20797 +                                    <point x="17.0" y="7.0" cp1x="17.0" cp1y="5.0" cp2x="17.0" cp2y="7.0"/>
151.20798 +                                    <point x="17.0" y="11.0" cp1x="17.0" cp1y="11.0" cp2x="17.0" cp2y="11.0"/>
151.20799 +                                 </points>
151.20800 +                              </path>
151.20801 +                              <path>
151.20802 +                                 <gradient cycleMethod="NO_CYCLE">
151.20803 +                                    <stop position="0.0" midpoint="0.5">
151.20804 +                                       <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.20805 +                                    </stop>
151.20806 +                                    <stop position="1.0" midpoint="0.5">
151.20807 +                                       <matte red="0" green="0" blue="24" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="0.3642857" brightnessOffset="-0.454902" alphaOffset="0"/>
151.20808 +                                    </stop>
151.20809 +                                 </gradient>
151.20810 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.20811 +                                 <points>
151.20812 +                                    <point x="0.0" y="12.0" cp1x="0.0" cp1y="12.0" cp2x="0.0" cp2y="12.0"/>
151.20813 +                                    <point x="0.0" y="2.0" cp1x="0.0" cp1y="2.0" cp2x="0.0" cp2y="2.0"/>
151.20814 +                                    <point x="13.0" y="2.0" cp1x="13.0" cp1y="2.0" cp2x="16.454545454545453" cp2y="2.0"/>
151.20815 +                                    <point x="18.0" y="7.0" cp1x="17.977272727272727" cp1y="3.5227272727272734" cp2x="18.0" cp2y="7.0"/>
151.20816 +                                    <point x="18.0" y="12.0" cp1x="18.0" cp1y="12.0" cp2x="18.0" cp2y="12.0"/>
151.20817 +                                 </points>
151.20818 +                              </path>
151.20819 +                              <path>
151.20820 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.20821 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.20822 +                                 <points>
151.20823 +                                    <point x="0.0" y="12.0" cp1x="0.0" cp1y="12.0" cp2x="0.0" cp2y="12.0"/>
151.20824 +                                    <point x="0.0" y="0.6" cp1x="0.0" cp1y="0.6" cp2x="0.0" cp2y="0.6"/>
151.20825 +                                    <point x="14.0" y="0.6" cp1x="14.0" cp1y="0.6" cp2x="17.4" cp2y="0.6"/>
151.20826 +                                    <point x="19.4" y="7.0" cp1x="19.4" cp1y="3.6" cp2x="19.4" cp2y="7.0"/>
151.20827 +                                    <point x="19.4" y="12.0" cp1x="19.4" cp1y="12.0" cp2x="19.4" cp2y="12.0"/>
151.20828 +                                 </points>
151.20829 +                              </path>
151.20830 +                           </shapes>
151.20831 +                           <effects/>
151.20832 +                        </layer>
151.20833 +                     </canvas>
151.20834 +                  </state>
151.20835 +                  <state stateKeys="MouseOver">
151.20836 +                     <style>
151.20837 +                        <textForeground/>
151.20838 +                        <textBackground/>
151.20839 +                        <background/>
151.20840 +                        <uiproperties/>
151.20841 +                     </style>
151.20842 +                     <canvas>
151.20843 +                        <size width="20" height="12"/>
151.20844 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.20845 +                        <stretchingInsets top="7" bottom="1" left="1" right="7"/>
151.20846 +                        <layer name="Layer 1">
151.20847 +                           <opacity>1.0</opacity>
151.20848 +                           <fillOpacity>1.0</fillOpacity>
151.20849 +                           <blendingMode>NORMAL</blendingMode>
151.20850 +                           <locked>false</locked>
151.20851 +                           <visible>true</visible>
151.20852 +                           <shapes>
151.20853 +                              <rectangle x1="1.0" x2="17.0" y1="11.0" y2="12.0" rounding="0.0">
151.20854 +                                 <matte red="109" green="128" blue="145" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.2034855E-5" saturationOffset="-0.38743842" brightnessOffset="0.019607842" alphaOffset="0"/>
151.20855 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.20856 +                              </rectangle>
151.20857 +                              <path>
151.20858 +                                 <gradient cycleMethod="NO_CYCLE">
151.20859 +                                    <stop position="0.0" midpoint="0.5">
151.20860 +                                       <matte red="248" green="250" blue="252" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6198413" brightnessOffset="0.43921566" alphaOffset="0"/>
151.20861 +                                    </stop>
151.20862 +                                    <stop position="0.7941176" midpoint="0.5">
151.20863 +                                       <matte red="204" green="219" blue="232" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0012707114" saturationOffset="-0.51502466" brightnessOffset="0.3607843" alphaOffset="0"/>
151.20864 +                                    </stop>
151.20865 +                                    <stop position="1.0" midpoint="0.033333335">
151.20866 +                                       <matte red="195" green="212" blue="228" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0021564364" saturationOffset="-0.49097747" brightnessOffset="0.34509802" alphaOffset="0"/>
151.20867 +                                    </stop>
151.20868 +                                 </gradient>
151.20869 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.20870 +                                 <points>
151.20871 +                                    <point x="1.0" y="11.0" cp1x="1.0" cp1y="11.0" cp2x="1.0" cp2y="11.0"/>
151.20872 +                                    <point x="1.0" y="3.0" cp1x="1.0" cp1y="3.0" cp2x="1.0" cp2y="3.0"/>
151.20873 +                                    <point x="13.0" y="3.0" cp1x="13.0" cp1y="3.0" cp2x="16.0" cp2y="3.0"/>
151.20874 +                                    <point x="17.0" y="7.0" cp1x="17.0" cp1y="5.0" cp2x="17.0" cp2y="7.0"/>
151.20875 +                                    <point x="17.0" y="11.0" cp1x="17.0" cp1y="11.0" cp2x="17.0" cp2y="11.0"/>
151.20876 +                                 </points>
151.20877 +                              </path>
151.20878 +                              <path>
151.20879 +                                 <gradient cycleMethod="NO_CYCLE">
151.20880 +                                    <stop position="0.0" midpoint="0.5">
151.20881 +                                       <matte red="59" green="85" blue="109" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0013483167" saturationOffset="-0.1769987" brightnessOffset="-0.12156865" alphaOffset="0"/>
151.20882 +                                    </stop>
151.20883 +                                    <stop position="1.0" midpoint="0.5">
151.20884 +                                       <matte red="24" green="50" blue="74" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0013483167" saturationOffset="0.039961398" brightnessOffset="-0.25882354" alphaOffset="0"/>
151.20885 +                                    </stop>
151.20886 +                                 </gradient>
151.20887 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.20888 +                                 <points>
151.20889 +                                    <point x="0.0" y="12.0" cp1x="0.0" cp1y="12.0" cp2x="0.0" cp2y="12.0"/>
151.20890 +                                    <point x="0.0" y="2.0" cp1x="0.0" cp1y="2.0" cp2x="0.0" cp2y="2.0"/>
151.20891 +                                    <point x="13.0" y="2.0" cp1x="13.0" cp1y="2.0" cp2x="16.63636363636364" cp2y="2.0"/>
151.20892 +                                    <point x="18.0" y="7.0" cp1x="17.977272727272727" cp1y="3.250000000000001" cp2x="18.0" cp2y="7.0"/>
151.20893 +                                    <point x="18.0" y="12.0" cp1x="18.0" cp1y="12.0" cp2x="18.0" cp2y="12.0"/>
151.20894 +                                 </points>
151.20895 +                              </path>
151.20896 +                           </shapes>
151.20897 +                           <effects/>
151.20898 +                        </layer>
151.20899 +                        <templateLayer fileName="113a3d0fda8.png">
151.20900 +                           <layer name="Template" type="template">
151.20901 +                              <opacity>1.0</opacity>
151.20902 +                              <fillOpacity>1.0</fillOpacity>
151.20903 +                              <blendingMode>NORMAL</blendingMode>
151.20904 +                              <locked>false</locked>
151.20905 +                              <visible>false</visible>
151.20906 +                              <shapes/>
151.20907 +                              <effects/>
151.20908 +                           </layer>
151.20909 +                        </templateLayer>
151.20910 +                     </canvas>
151.20911 +                  </state>
151.20912 +                  <state stateKeys="Pressed">
151.20913 +                     <style>
151.20914 +                        <textForeground/>
151.20915 +                        <textBackground/>
151.20916 +                        <background/>
151.20917 +                        <uiproperties/>
151.20918 +                     </style>
151.20919 +                     <canvas>
151.20920 +                        <size width="20" height="12"/>
151.20921 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.20922 +                        <stretchingInsets top="7" bottom="1" left="1" right="7"/>
151.20923 +                        <layer name="Layer 1">
151.20924 +                           <opacity>1.0</opacity>
151.20925 +                           <fillOpacity>1.0</fillOpacity>
151.20926 +                           <blendingMode>NORMAL</blendingMode>
151.20927 +                           <locked>false</locked>
151.20928 +                           <visible>true</visible>
151.20929 +                           <shapes>
151.20930 +                              <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.20931 +                                 <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.20932 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.20933 +                              </rectangle>
151.20934 +                              <rectangle x1="1.0" x2="17.0" y1="11.0" y2="12.0" rounding="0.0">
151.20935 +                                 <matte red="15" green="43" blue="82" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.018363237" saturationOffset="0.18135887" brightnessOffset="-0.227451" alphaOffset="0"/>
151.20936 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.20937 +                              </rectangle>
151.20938 +                              <path>
151.20939 +                                 <gradient cycleMethod="NO_CYCLE">
151.20940 +                                    <stop position="0.0" midpoint="0.5">
151.20941 +                                       <matte red="143" green="169" blue="192" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-4.2033195E-4" saturationOffset="-0.38050595" brightnessOffset="0.20392156" alphaOffset="0"/>
151.20942 +                                    </stop>
151.20943 +                                    <stop position="0.8636364" midpoint="0.5">
151.20944 +                                       <matte red="82" green="122" blue="158" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="-0.15470162" brightnessOffset="0.07058823" alphaOffset="0"/>
151.20945 +                                    </stop>
151.20946 +                                    <stop position="1.0" midpoint="0.033333335">
151.20947 +                                       <matte red="69" green="112" blue="150" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-4.6235323E-4" saturationOffset="-0.09571427" brightnessOffset="0.039215684" alphaOffset="0"/>
151.20948 +                                    </stop>
151.20949 +                                 </gradient>
151.20950 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.20951 +                                 <points>
151.20952 +                                    <point x="1.0" y="11.0" cp1x="1.0" cp1y="11.0" cp2x="1.0" cp2y="11.0"/>
151.20953 +                                    <point x="1.0" y="3.0" cp1x="1.0" cp1y="3.0" cp2x="1.0" cp2y="3.0"/>
151.20954 +                                    <point x="13.0" y="3.0" cp1x="13.0" cp1y="3.0" cp2x="16.0" cp2y="3.0"/>
151.20955 +                                    <point x="17.0" y="7.0" cp1x="17.0" cp1y="5.0" cp2x="17.0" cp2y="7.0"/>
151.20956 +                                    <point x="17.0" y="11.0" cp1x="17.0" cp1y="11.0" cp2x="17.0" cp2y="11.0"/>
151.20957 +                                 </points>
151.20958 +                              </path>
151.20959 +                              <path>
151.20960 +                                 <gradient cycleMethod="NO_CYCLE">
151.20961 +                                    <stop position="0.0" midpoint="0.5">
151.20962 +                                       <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.20963 +                                    </stop>
151.20964 +                                    <stop position="1.0" midpoint="0.5">
151.20965 +                                       <matte red="0" green="0" blue="24" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="0.3642857" brightnessOffset="-0.454902" alphaOffset="0"/>
151.20966 +                                    </stop>
151.20967 +                                 </gradient>
151.20968 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.20969 +                                 <points>
151.20970 +                                    <point x="0.0" y="12.0" cp1x="0.0" cp1y="12.0" cp2x="0.0" cp2y="12.0"/>
151.20971 +                                    <point x="0.0" y="2.0" cp1x="0.0" cp1y="2.0" cp2x="0.0" cp2y="2.0"/>
151.20972 +                                    <point x="13.0" y="2.0" cp1x="13.0" cp1y="2.0" cp2x="16.454545454545453" cp2y="2.0"/>
151.20973 +                                    <point x="18.0" y="7.0" cp1x="17.977272727272727" cp1y="3.5227272727272734" cp2x="18.0" cp2y="7.0"/>
151.20974 +                                    <point x="18.0" y="12.0" cp1x="18.0" cp1y="12.0" cp2x="18.0" cp2y="12.0"/>
151.20975 +                                 </points>
151.20976 +                              </path>
151.20977 +                           </shapes>
151.20978 +                           <effects/>
151.20979 +                        </layer>
151.20980 +                        <templateLayer fileName="113a3d22070.png">
151.20981 +                           <layer name="Template" type="template">
151.20982 +                              <opacity>1.0</opacity>
151.20983 +                              <fillOpacity>1.0</fillOpacity>
151.20984 +                              <blendingMode>NORMAL</blendingMode>
151.20985 +                              <locked>false</locked>
151.20986 +                              <visible>false</visible>
151.20987 +                              <shapes/>
151.20988 +                              <effects/>
151.20989 +                           </layer>
151.20990 +                        </templateLayer>
151.20991 +                     </canvas>
151.20992 +                  </state>
151.20993 +               </backgroundStates>
151.20994 +               <foregroundStates>
151.20995 +                  <state stateKeys="Disabled" inverted="true">
151.20996 +                     <style>
151.20997 +                        <textForeground/>
151.20998 +                        <textBackground/>
151.20999 +                        <background/>
151.21000 +                        <uiproperties/>
151.21001 +                     </style>
151.21002 +                     <canvas>
151.21003 +                        <size width="20" height="12"/>
151.21004 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.21005 +                        <stretchingInsets top="5" bottom="3" left="6" right="9"/>
151.21006 +                        <layer name="Layer 1">
151.21007 +                           <opacity>1.0</opacity>
151.21008 +                           <fillOpacity>1.0</fillOpacity>
151.21009 +                           <blendingMode>NORMAL</blendingMode>
151.21010 +                           <locked>false</locked>
151.21011 +                           <visible>true</visible>
151.21012 +                           <shapes>
151.21013 +                              <path>
151.21014 +                                 <matte red="173" green="177" blue="183" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.58106947" brightnessOffset="0.16862744" alphaOffset="0"/>
151.21015 +                                 <paintPoints x1="0.4863636363636362" y1="0.011695906106605689" x2="0.4909090909090911" y2="0.888888891987246"/>
151.21016 +                                 <points>
151.21017 +                                    <point x="6.0" y="9.0" cp1x="6.0" cp1y="9.0" cp2x="6.0" cp2y="9.0"/>
151.21018 +                                    <point x="8.454545454545453" y="5.1136363636363615" cp1x="8.454545454545453" cp1y="5.1136363636363615" cp2x="8.454545454545453" cp2y="5.1136363636363615"/>
151.21019 +                                    <point x="11.0" y="9.0" cp1x="11.0" cp1y="9.0" cp2x="11.0" cp2y="9.0"/>
151.21020 +                                 </points>
151.21021 +                              </path>
151.21022 +                           </shapes>
151.21023 +                           <effects/>
151.21024 +                        </layer>
151.21025 +                     </canvas>
151.21026 +                  </state>
151.21027 +                  <state stateKeys="Enabled" inverted="true">
151.21028 +                     <style>
151.21029 +                        <textForeground/>
151.21030 +                        <textBackground/>
151.21031 +                        <background/>
151.21032 +                        <uiproperties/>
151.21033 +                     </style>
151.21034 +                     <canvas>
151.21035 +                        <size width="20" height="12"/>
151.21036 +                        <nextLayerNameIndex>4</nextLayerNameIndex>
151.21037 +                        <stretchingInsets top="5" bottom="3" left="6" right="9"/>
151.21038 +                        <layer name="Layer 1">
151.21039 +                           <opacity>1.0</opacity>
151.21040 +                           <fillOpacity>1.0</fillOpacity>
151.21041 +                           <blendingMode>NORMAL</blendingMode>
151.21042 +                           <locked>false</locked>
151.21043 +                           <visible>true</visible>
151.21044 +                           <shapes>
151.21045 +                              <path>
151.21046 +                                 <gradient cycleMethod="NO_CYCLE">
151.21047 +                                    <stop position="0.0" midpoint="0.5">
151.21048 +                                       <matte red="129" green="129" blue="129" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.043137252" alphaOffset="0"/>
151.21049 +                                    </stop>
151.21050 +                                    <stop position="1.0" midpoint="0.5">
151.21051 +                                       <matte red="78" green="78" blue="78" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.24313727" alphaOffset="0"/>
151.21052 +                                    </stop>
151.21053 +                                 </gradient>
151.21054 +                                 <paintPoints x1="0.4863636363636362" y1="0.011695906106605689" x2="0.4909090909090911" y2="0.888888891987246"/>
151.21055 +                                 <points>
151.21056 +                                    <point x="6.0" y="9.0" cp1x="6.0" cp1y="9.0" cp2x="6.0" cp2y="9.0"/>
151.21057 +                                    <point x="8.454545454545453" y="5.1136363636363615" cp1x="8.454545454545453" cp1y="5.1136363636363615" cp2x="8.454545454545453" cp2y="5.1136363636363615"/>
151.21058 +                                    <point x="11.0" y="9.0" cp1x="11.0" cp1y="9.0" cp2x="11.0" cp2y="9.0"/>
151.21059 +                                 </points>
151.21060 +                              </path>
151.21061 +                           </shapes>
151.21062 +                           <effects/>
151.21063 +                        </layer>
151.21064 +                     </canvas>
151.21065 +                  </state>
151.21066 +                  <state stateKeys="Focused" inverted="true">
151.21067 +                     <style>
151.21068 +                        <textForeground/>
151.21069 +                        <textBackground/>
151.21070 +                        <background/>
151.21071 +                        <uiproperties/>
151.21072 +                     </style>
151.21073 +                     <canvas>
151.21074 +                        <size width="20" height="12"/>
151.21075 +                        <nextLayerNameIndex>4</nextLayerNameIndex>
151.21076 +                        <stretchingInsets top="3" bottom="3" left="6" right="9"/>
151.21077 +                        <layer name="Layer 1">
151.21078 +                           <opacity>1.0</opacity>
151.21079 +                           <fillOpacity>1.0</fillOpacity>
151.21080 +                           <blendingMode>NORMAL</blendingMode>
151.21081 +                           <locked>false</locked>
151.21082 +                           <visible>true</visible>
151.21083 +                           <shapes>
151.21084 +                              <path>
151.21085 +                                 <gradient cycleMethod="NO_CYCLE">
151.21086 +                                    <stop position="0.0" midpoint="0.5">
151.21087 +                                       <matte red="129" green="129" blue="129" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.043137252" alphaOffset="0"/>
151.21088 +                                    </stop>
151.21089 +                                    <stop position="1.0" midpoint="0.5">
151.21090 +                                       <matte red="78" green="78" blue="78" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.24313727" alphaOffset="0"/>
151.21091 +                                    </stop>
151.21092 +                                 </gradient>
151.21093 +                                 <paintPoints x1="0.4863636363636362" y1="0.011695906106605689" x2="0.4909090909090911" y2="0.888888891987246"/>
151.21094 +                                 <points>
151.21095 +                                    <point x="6.0" y="9.0" cp1x="6.0" cp1y="9.0" cp2x="6.0" cp2y="9.0"/>
151.21096 +                                    <point x="8.454545454545453" y="5.1136363636363615" cp1x="8.454545454545453" cp1y="5.1136363636363615" cp2x="8.454545454545453" cp2y="5.1136363636363615"/>
151.21097 +                                    <point x="11.0" y="9.0" cp1x="11.0" cp1y="9.0" cp2x="11.0" cp2y="9.0"/>
151.21098 +                                 </points>
151.21099 +                              </path>
151.21100 +                           </shapes>
151.21101 +                           <effects/>
151.21102 +                        </layer>
151.21103 +                     </canvas>
151.21104 +                  </state>
151.21105 +                  <state stateKeys="MouseOver+Focused" inverted="true">
151.21106 +                     <style>
151.21107 +                        <textForeground/>
151.21108 +                        <textBackground/>
151.21109 +                        <background/>
151.21110 +                        <uiproperties/>
151.21111 +                     </style>
151.21112 +                     <canvas>
151.21113 +                        <size width="20" height="12"/>
151.21114 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.21115 +                        <stretchingInsets top="3" bottom="3" left="6" right="9"/>
151.21116 +                        <layer name="Layer 1">
151.21117 +                           <opacity>1.0</opacity>
151.21118 +                           <fillOpacity>1.0</fillOpacity>
151.21119 +                           <blendingMode>NORMAL</blendingMode>
151.21120 +                           <locked>false</locked>
151.21121 +                           <visible>true</visible>
151.21122 +                           <shapes>
151.21123 +                              <path>
151.21124 +                                 <gradient cycleMethod="NO_CYCLE">
151.21125 +                                    <stop position="0.0" midpoint="0.5">
151.21126 +                                       <matte red="129" green="129" blue="129" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.043137252" alphaOffset="0"/>
151.21127 +                                    </stop>
151.21128 +                                    <stop position="1.0" midpoint="0.5">
151.21129 +                                       <matte red="78" green="78" blue="78" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.24313727" alphaOffset="0"/>
151.21130 +                                    </stop>
151.21131 +                                 </gradient>
151.21132 +                                 <paintPoints x1="0.4863636363636362" y1="0.011695906106605689" x2="0.4909090909090911" y2="0.888888891987246"/>
151.21133 +                                 <points>
151.21134 +                                    <point x="6.0" y="9.0" cp1x="6.0" cp1y="9.0" cp2x="6.0" cp2y="9.0"/>
151.21135 +                                    <point x="8.454545454545453" y="5.1136363636363615" cp1x="8.454545454545453" cp1y="5.1136363636363615" cp2x="8.454545454545453" cp2y="5.1136363636363615"/>
151.21136 +                                    <point x="11.0" y="9.0" cp1x="11.0" cp1y="9.0" cp2x="11.0" cp2y="9.0"/>
151.21137 +                                 </points>
151.21138 +                              </path>
151.21139 +                           </shapes>
151.21140 +                           <effects/>
151.21141 +                        </layer>
151.21142 +                     </canvas>
151.21143 +                  </state>
151.21144 +                  <state stateKeys="Pressed+Focused" inverted="true">
151.21145 +                     <style>
151.21146 +                        <textForeground/>
151.21147 +                        <textBackground/>
151.21148 +                        <background/>
151.21149 +                        <uiproperties/>
151.21150 +                     </style>
151.21151 +                     <canvas>
151.21152 +                        <size width="20" height="12"/>
151.21153 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.21154 +                        <stretchingInsets top="5" bottom="3" left="6" right="9"/>
151.21155 +                        <layer name="Layer 1">
151.21156 +                           <opacity>1.0</opacity>
151.21157 +                           <fillOpacity>1.0</fillOpacity>
151.21158 +                           <blendingMode>NORMAL</blendingMode>
151.21159 +                           <locked>false</locked>
151.21160 +                           <visible>true</visible>
151.21161 +                           <shapes>
151.21162 +                              <path>
151.21163 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="0"/>
151.21164 +                                 <paintPoints x1="0.4863636363636362" y1="0.011695906106605689" x2="0.4909090909090911" y2="0.888888891987246"/>
151.21165 +                                 <points>
151.21166 +                                    <point x="6.0" y="9.0" cp1x="6.0" cp1y="9.0" cp2x="6.0" cp2y="9.0"/>
151.21167 +                                    <point x="8.522727272727273" y="5.318181818181818" cp1x="8.522727272727273" cp1y="5.318181818181818" cp2x="8.522727272727273" cp2y="5.318181818181818"/>
151.21168 +                                    <point x="11.0" y="9.0" cp1x="11.0" cp1y="9.0" cp2x="11.0" cp2y="9.0"/>
151.21169 +                                 </points>
151.21170 +                              </path>
151.21171 +                           </shapes>
151.21172 +                           <effects/>
151.21173 +                        </layer>
151.21174 +                     </canvas>
151.21175 +                  </state>
151.21176 +                  <state stateKeys="MouseOver" inverted="true">
151.21177 +                     <style>
151.21178 +                        <textForeground/>
151.21179 +                        <textBackground/>
151.21180 +                        <background/>
151.21181 +                        <uiproperties/>
151.21182 +                     </style>
151.21183 +                     <canvas>
151.21184 +                        <size width="20" height="12"/>
151.21185 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.21186 +                        <stretchingInsets top="5" bottom="3" left="6" right="9"/>
151.21187 +                        <layer name="Layer 1">
151.21188 +                           <opacity>1.0</opacity>
151.21189 +                           <fillOpacity>1.0</fillOpacity>
151.21190 +                           <blendingMode>NORMAL</blendingMode>
151.21191 +                           <locked>false</locked>
151.21192 +                           <visible>true</visible>
151.21193 +                           <shapes>
151.21194 +                              <path>
151.21195 +                                 <gradient cycleMethod="NO_CYCLE">
151.21196 +                                    <stop position="0.0" midpoint="0.5">
151.21197 +                                       <matte red="129" green="129" blue="129" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.043137252" alphaOffset="0"/>
151.21198 +                                    </stop>
151.21199 +                                    <stop position="1.0" midpoint="0.5">
151.21200 +                                       <matte red="78" green="78" blue="78" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.24313727" alphaOffset="0"/>
151.21201 +                                    </stop>
151.21202 +                                 </gradient>
151.21203 +                                 <paintPoints x1="0.4863636363636362" y1="0.011695906106605689" x2="0.4909090909090911" y2="0.888888891987246"/>
151.21204 +                                 <points>
151.21205 +                                    <point x="6.0" y="9.0" cp1x="6.0" cp1y="9.0" cp2x="6.0" cp2y="9.0"/>
151.21206 +                                    <point x="8.454545454545453" y="5.1136363636363615" cp1x="8.454545454545453" cp1y="5.1136363636363615" cp2x="8.454545454545453" cp2y="5.1136363636363615"/>
151.21207 +                                    <point x="11.0" y="9.0" cp1x="11.0" cp1y="9.0" cp2x="11.0" cp2y="9.0"/>
151.21208 +                                 </points>
151.21209 +                              </path>
151.21210 +                           </shapes>
151.21211 +                           <effects/>
151.21212 +                        </layer>
151.21213 +                     </canvas>
151.21214 +                  </state>
151.21215 +                  <state stateKeys="Pressed" inverted="true">
151.21216 +                     <style>
151.21217 +                        <textForeground/>
151.21218 +                        <textBackground/>
151.21219 +                        <background/>
151.21220 +                        <uiproperties/>
151.21221 +                     </style>
151.21222 +                     <canvas>
151.21223 +                        <size width="20" height="12"/>
151.21224 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.21225 +                        <stretchingInsets top="5" bottom="3" left="6" right="9"/>
151.21226 +                        <layer name="Layer 1">
151.21227 +                           <opacity>1.0</opacity>
151.21228 +                           <fillOpacity>1.0</fillOpacity>
151.21229 +                           <blendingMode>NORMAL</blendingMode>
151.21230 +                           <locked>false</locked>
151.21231 +                           <visible>true</visible>
151.21232 +                           <shapes>
151.21233 +                              <path>
151.21234 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="0"/>
151.21235 +                                 <paintPoints x1="0.4863636363636362" y1="0.011695906106605689" x2="0.4909090909090911" y2="0.888888891987246"/>
151.21236 +                                 <points>
151.21237 +                                    <point x="6.0" y="9.0" cp1x="6.0" cp1y="9.0" cp2x="6.0" cp2y="9.0"/>
151.21238 +                                    <point x="8.522727272727273" y="5.318181818181818" cp1x="8.522727272727273" cp1y="5.318181818181818" cp2x="8.522727272727273" cp2y="5.318181818181818"/>
151.21239 +                                    <point x="11.0" y="9.0" cp1x="11.0" cp1y="9.0" cp2x="11.0" cp2y="9.0"/>
151.21240 +                                 </points>
151.21241 +                              </path>
151.21242 +                           </shapes>
151.21243 +                           <effects/>
151.21244 +                        </layer>
151.21245 +                     </canvas>
151.21246 +                  </state>
151.21247 +               </foregroundStates>
151.21248 +               <borderStates/>
151.21249 +               <regions/>
151.21250 +            </uiComponent>
151.21251 +         </regions>
151.21252 +      </uiComponent>
151.21253 +      <uiComponent opaque="false" type="javax.swing.JSplitPane" name="SplitPane" ui="SplitPaneUI" subregion="false">
151.21254 +         <stateTypes>
151.21255 +            <stateType key="Enabled"/>
151.21256 +            <stateType key="MouseOver"/>
151.21257 +            <stateType key="Pressed"/>
151.21258 +            <stateType key="Disabled"/>
151.21259 +            <stateType key="Focused"/>
151.21260 +            <stateType key="Selected"/>
151.21261 +            <stateType key="Vertical">
151.21262 +               <codeSnippet><![CDATA[
151.21263 +                        return c instanceof JSplitPane && (((JSplitPane)c).getOrientation() == 1);]]></codeSnippet>
151.21264 +            </stateType>
151.21265 +         </stateTypes>
151.21266 +         <contentMargins top="1" bottom="1" left="1" right="1"/>
151.21267 +         <style>
151.21268 +            <textForeground/>
151.21269 +            <textBackground/>
151.21270 +            <background/>
151.21271 +            <uiproperties>
151.21272 +               <uiProperty name="size" type="INT" value="10"/>
151.21273 +	       <uiProperty name="dividerSize" type="INT" value="10"/>
151.21274 +               <uiProperty name="centerOneTouchButtons" type="BOOLEAN" value="true"/>
151.21275 +               <uiProperty name="oneTouchButtonOffset" type="INT" value="30"/>
151.21276 +               <uiProperty name="oneTouchExpandable" type="BOOLEAN" value="false"/>
151.21277 +               <uiProperty name="continuousLayout" type="BOOLEAN" value="true"/>
151.21278 +            </uiproperties>
151.21279 +         </style>
151.21280 +         <backgroundStates>
151.21281 +            <state stateKeys="Enabled">
151.21282 +               <style>
151.21283 +                  <textForeground/>
151.21284 +                  <textBackground/>
151.21285 +                  <background/>
151.21286 +                  <uiproperties/>
151.21287 +               </style>
151.21288 +               <canvas>
151.21289 +                  <size width="18" height="15"/>
151.21290 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.21291 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.21292 +                  <layer name="Layer 1">
151.21293 +                     <opacity>1.0</opacity>
151.21294 +                     <fillOpacity>1.0</fillOpacity>
151.21295 +                     <blendingMode>NORMAL</blendingMode>
151.21296 +                     <locked>false</locked>
151.21297 +                     <visible>true</visible>
151.21298 +                     <shapes/>
151.21299 +                     <effects/>
151.21300 +                  </layer>
151.21301 +               </canvas>
151.21302 +            </state>
151.21303 +         </backgroundStates>
151.21304 +         <foregroundStates/>
151.21305 +         <borderStates/>
151.21306 +         <regions>
151.21307 +            <region name="SplitPaneDivider" subregion="true">
151.21308 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.21309 +               <style>
151.21310 +                  <textForeground/>
151.21311 +                  <textBackground/>
151.21312 +                  <background/>
151.21313 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.21314 +                  <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.21315 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.21316 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.21317 +                  <uiproperties/>
151.21318 +               </style>
151.21319 +               <backgroundStates>
151.21320 +                  <state stateKeys="Enabled">
151.21321 +                     <style>
151.21322 +                        <textForeground/>
151.21323 +                        <textBackground/>
151.21324 +                        <background/>
151.21325 +                        <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.21326 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.21327 +                        <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.21328 +                        <uiproperties/>
151.21329 +                     </style>
151.21330 +                     <canvas>
151.21331 +                        <size width="68" height="10"/>
151.21332 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.21333 +                        <stretchingInsets top="3" bottom="3" left="0" right="0"/>
151.21334 +                        <layer name="Layer 1">
151.21335 +                           <opacity>1.0</opacity>
151.21336 +                           <fillOpacity>1.0</fillOpacity>
151.21337 +                           <blendingMode>NORMAL</blendingMode>
151.21338 +                           <locked>false</locked>
151.21339 +                           <visible>true</visible>
151.21340 +                           <shapes>
151.21341 +                              <rectangle x1="0.0" x2="68.0" y1="0.0" y2="10.0" rounding="0.0">
151.21342 +                                 <gradient cycleMethod="NO_CYCLE">
151.21343 +                                    <stop position="0.058064517" midpoint="0.5">
151.21344 +                                       <matte red="146" green="151" blue="161" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.017358616" brightnessOffset="-0.11372548" alphaOffset="0"/>
151.21345 +                                    </stop>
151.21346 +                                    <stop position="0.103225805" midpoint="0.5">
151.21347 +                                       <matte red="244" green="244" blue="246" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.102396235" brightnessOffset="0.21960783" alphaOffset="0"/>
151.21348 +                                    </stop>
151.21349 +                                    <stop position="0.12903225" midpoint="0.5">
151.21350 +                                       <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
151.21351 +                                    </stop>
151.21352 +                                    <stop position="0.7387097" midpoint="0.5">
151.21353 +                                       <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
151.21354 +                                    </stop>
151.21355 +                                    <stop position="0.81935483" midpoint="0.5">
151.21356 +                                       <matte red="244" green="244" blue="246" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.102396235" brightnessOffset="0.21960783" alphaOffset="0"/>
151.21357 +                                    </stop>
151.21358 +                                    <stop position="0.8967742" midpoint="0.5">
151.21359 +                                       <matte red="146" green="151" blue="161" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.017358616" brightnessOffset="-0.11372548" alphaOffset="0"/>
151.21360 +                                    </stop>
151.21361 +                                 </gradient>
151.21362 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.21363 +                              </rectangle>
151.21364 +                           </shapes>
151.21365 +                           <effects/>
151.21366 +                        </layer>
151.21367 +                        <templateLayer fileName="1140562314d.png">
151.21368 +                           <layer name="Template" type="template">
151.21369 +                              <opacity>1.0</opacity>
151.21370 +                              <fillOpacity>1.0</fillOpacity>
151.21371 +                              <blendingMode>NORMAL</blendingMode>
151.21372 +                              <locked>false</locked>
151.21373 +                              <visible>true</visible>
151.21374 +                              <shapes/>
151.21375 +                              <effects/>
151.21376 +                           </layer>
151.21377 +                        </templateLayer>
151.21378 +                     </canvas>
151.21379 +                  </state>
151.21380 +                  <state stateKeys="Focused">
151.21381 +                     <style>
151.21382 +                        <textForeground/>
151.21383 +                        <textBackground/>
151.21384 +                        <background/>
151.21385 +                        <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.21386 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.21387 +                        <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.21388 +                        <uiproperties/>
151.21389 +                     </style>
151.21390 +                     <canvas>
151.21391 +                        <size width="68" height="10"/>
151.21392 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.21393 +                        <stretchingInsets top="3" bottom="3" left="0" right="0"/>
151.21394 +                        <layer name="Layer 1">
151.21395 +                           <opacity>1.0</opacity>
151.21396 +                           <fillOpacity>1.0</fillOpacity>
151.21397 +                           <blendingMode>NORMAL</blendingMode>
151.21398 +                           <locked>false</locked>
151.21399 +                           <visible>true</visible>
151.21400 +                           <shapes>
151.21401 +                              <rectangle x1="0.0" x2="68.0" y1="0.0" y2="10.0" rounding="0.0">
151.21402 +                                 <gradient cycleMethod="NO_CYCLE">
151.21403 +                                    <stop position="0.058064517" midpoint="0.5">
151.21404 +                                       <matte red="146" green="151" blue="161" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.017358616" brightnessOffset="-0.11372548" alphaOffset="0"/>
151.21405 +                                    </stop>
151.21406 +                                    <stop position="0.103225805" midpoint="0.5">
151.21407 +                                       <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.21408 +                                    </stop>
151.21409 +                                    <stop position="0.13" midpoint="0.5">
151.21410 +                                       <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
151.21411 +                                    </stop>
151.21412 +                                    <stop position="0.73" midpoint="0.5">
151.21413 +                                       <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
151.21414 +                                    </stop>
151.21415 +                                    <stop position="0.81935483" midpoint="0.5">
151.21416 +                                       <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.21417 +                                    </stop>
151.21418 +                                    <stop position="0.8967742" midpoint="0.5">
151.21419 +                                       <matte red="146" green="151" blue="161" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.017358616" brightnessOffset="-0.11372548" alphaOffset="0"/>
151.21420 +                                    </stop>
151.21421 +                                 </gradient>
151.21422 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.21423 +                              </rectangle>
151.21424 +                           </shapes>
151.21425 +                           <effects/>
151.21426 +                        </layer>
151.21427 +                        <templateLayer fileName="1140562314d.png">
151.21428 +                           <layer name="Template" type="template">
151.21429 +                              <opacity>1.0</opacity>
151.21430 +                              <fillOpacity>1.0</fillOpacity>
151.21431 +                              <blendingMode>NORMAL</blendingMode>
151.21432 +                              <locked>false</locked>
151.21433 +                              <visible>true</visible>
151.21434 +                              <shapes/>
151.21435 +                              <effects/>
151.21436 +                           </layer>
151.21437 +                        </templateLayer>
151.21438 +                     </canvas>
151.21439 +                  </state>
151.21440 +               </backgroundStates>
151.21441 +               <foregroundStates>
151.21442 +                  <state stateKeys="Enabled" inverted="true">
151.21443 +                     <style>
151.21444 +                        <textForeground/>
151.21445 +                        <textBackground/>
151.21446 +                        <background/>
151.21447 +                        <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.21448 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.21449 +                        <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.21450 +                        <uiproperties/>
151.21451 +                     </style>
151.21452 +                     <canvas>
151.21453 +                        <size width="68" height="10"/>
151.21454 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.21455 +                        <stretchingInsets top="0" bottom="0" left="24" right="24"/>
151.21456 +                        <layer name="Layer 1">
151.21457 +                           <opacity>1.0</opacity>
151.21458 +                           <fillOpacity>1.0</fillOpacity>
151.21459 +                           <blendingMode>NORMAL</blendingMode>
151.21460 +                           <locked>false</locked>
151.21461 +                           <visible>true</visible>
151.21462 +                           <shapes>
151.21463 +                              <rectangle x1="26.0" x2="42.0" y1="4.0" y2="7.0" rounding="4.0">
151.21464 +                                 <gradient cycleMethod="NO_CYCLE">
151.21465 +                                    <stop position="0.090322584" midpoint="0.5">
151.21466 +                                       <matte red="180" green="184" blue="192" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.048026316" brightnessOffset="0.007843137" alphaOffset="0"/>
151.21467 +                                    </stop>
151.21468 +                                    <stop position="0.5" midpoint="0.5">
151.21469 +                                       <matte red="235" green="238" blue="245" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.06970999" brightnessOffset="0.21568626" alphaOffset="0"/>
151.21470 +                                    </stop>
151.21471 +                                    <stop position="0.66451615" midpoint="0.5">
151.21472 +                                       <matte red="198" green="201" blue="207" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06704806" brightnessOffset="0.06666666" alphaOffset="0"/>
151.21473 +                                    </stop>
151.21474 +                                 </gradient>
151.21475 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.21476 +                              </rectangle>
151.21477 +                              <rectangle x1="25.0" x2="43.0" y1="3.0" y2="8.0" rounding="3.6666666666666927">
151.21478 +                                 <gradient cycleMethod="NO_CYCLE">
151.21479 +                                    <stop position="0.20645161" midpoint="0.5">
151.21480 +                                       <matte red="146" green="151" blue="161" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.017358616" brightnessOffset="-0.11372548" alphaOffset="0"/>
151.21481 +                                    </stop>
151.21482 +                                    <stop position="0.7935484" midpoint="0.5">
151.21483 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.21484 +                                    </stop>
151.21485 +                                 </gradient>
151.21486 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.21487 +                              </rectangle>
151.21488 +                           </shapes>
151.21489 +                           <effects/>
151.21490 +                        </layer>
151.21491 +                        <templateLayer fileName="1140562314d.png">
151.21492 +                           <layer name="Template" type="template">
151.21493 +                              <opacity>1.0</opacity>
151.21494 +                              <fillOpacity>1.0</fillOpacity>
151.21495 +                              <blendingMode>NORMAL</blendingMode>
151.21496 +                              <locked>false</locked>
151.21497 +                              <visible>true</visible>
151.21498 +                              <shapes/>
151.21499 +                              <effects/>
151.21500 +                           </layer>
151.21501 +                        </templateLayer>
151.21502 +                     </canvas>
151.21503 +                  </state>
151.21504 +                  <state stateKeys="Enabled+Vertical" inverted="true">
151.21505 +                     <style>
151.21506 +                        <textForeground/>
151.21507 +                        <textBackground/>
151.21508 +                        <background/>
151.21509 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.21510 +                        <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.21511 +                        <uiproperties/>
151.21512 +                     </style>
151.21513 +                     <canvas>
151.21514 +                        <size width="10" height="38"/>
151.21515 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.21516 +                        <stretchingInsets top="5" bottom="5" left="0" right="0"/>
151.21517 +                        <layer name="Layer 1">
151.21518 +                           <opacity>1.0</opacity>
151.21519 +                           <fillOpacity>1.0</fillOpacity>
151.21520 +                           <blendingMode>NORMAL</blendingMode>
151.21521 +                           <locked>false</locked>
151.21522 +                           <visible>true</visible>
151.21523 +                           <shapes>
151.21524 +                              <!--<rectangle x1="3.9545454545454546" x2="6.0" y1="26.49999999999998" y2="10.772727272727275" rounding="2.000000000000001">-->
151.21525 +                                 
151.21526 +                              <rectangle x1="4" x2="6.0" y1="10" y2="26.5" rounding="2">
151.21527 +                                 <gradient cycleMethod="NO_CYCLE">
151.21528 +                                    <stop position="0.0" midpoint="0.5">
151.21529 +                                       <matte red="184" green="188" blue="196" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.049301825" brightnessOffset="0.02352941" alphaOffset="0"/>
151.21530 +                                    </stop>
151.21531 +                                    <stop position="0.16129032" midpoint="0.5">
151.21532 +                                       <matte red="211" green="214" blue="219" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.006944418" saturationOffset="-0.07399663" brightnessOffset="0.11372548" alphaOffset="0"/>
151.21533 +                                    </stop>
151.21534 +                                    <stop position="0.86451614" midpoint="0.5">
151.21535 +                                       <matte red="213" green="217" blue="222" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.018518567" saturationOffset="-0.06998578" brightnessOffset="0.12549019" alphaOffset="0"/>
151.21536 +                                    </stop>
151.21537 +                                    <stop position="0.90645164" midpoint="0.5">
151.21538 +                                       <matte red="188" green="192" blue="200" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.050526317" brightnessOffset="0.039215684" alphaOffset="0"/>
151.21539 +                                    </stop>
151.21540 +                                 </gradient>
151.21541 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.21542 +                              </rectangle>
151.21543 +                              <rectangle x1="3.0" x2="7.0" y1="9.0" y2="28.0" rounding="4.0">
151.21544 +                                 <gradient cycleMethod="NO_CYCLE">
151.21545 +                                    <stop position="0.0" midpoint="0.5">
151.21546 +                                       <matte red="150" green="155" blue="165" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.019617222" brightnessOffset="-0.09803921" alphaOffset="0"/>
151.21547 +                                    </stop>
151.21548 +                                    <stop position="0.84193546" midpoint="0.5">
151.21549 +                                       <matte red="166" green="170" blue="179" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.004273474" saturationOffset="-0.03790062" brightnessOffset="-0.043137252" alphaOffset="0"/>
151.21550 +                                    </stop>
151.21551 +                                    <stop position="0.9483871" midpoint="0.5">
151.21552 +                                       <matte red="252" green="253" blue="253" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.111111104" saturationOffset="-0.106573746" brightnessOffset="0.24705881" alphaOffset="0"/>
151.21553 +                                    </stop>
151.21554 +                                 </gradient>
151.21555 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.21556 +                              </rectangle>
151.21557 +                           </shapes>
151.21558 +                           <effects/>
151.21559 +                        </layer>
151.21560 +                        <templateLayer fileName="114056ef58e.png">
151.21561 +                           <layer name="Template" type="template">
151.21562 +                              <opacity>1.0</opacity>
151.21563 +                              <fillOpacity>1.0</fillOpacity>
151.21564 +                              <blendingMode>NORMAL</blendingMode>
151.21565 +                              <locked>false</locked>
151.21566 +                              <visible>true</visible>
151.21567 +                              <shapes/>
151.21568 +                              <effects/>
151.21569 +                           </layer>
151.21570 +                        </templateLayer>
151.21571 +                     </canvas>
151.21572 +                  </state>
151.21573 +               </foregroundStates>
151.21574 +               <borderStates/>
151.21575 +               <regions/>
151.21576 +            </region>
151.21577 +         </regions>
151.21578 +      </uiComponent>
151.21579 +      <uiComponent opaque="false" type="javax.swing.JTabbedPane" name="TabbedPane" ui="TabbedPaneUI" subregion="false">
151.21580 +         <stateTypes/>
151.21581 +         <contentMargins top="0" bottom="0" left="0" right="0"/>
151.21582 +         <style>
151.21583 +            <textForeground/>
151.21584 +            <textBackground/>
151.21585 +            <background/>
151.21586 +            <uiproperties>
151.21587 +               <uiProperty name="tabAreaStatesMatchSelectedTab" type="BOOLEAN" value="true"/>
151.21588 +               <uiProperty name="nudgeSelectedLabel" type="BOOLEAN" value="false"/>
151.21589 +               <uiProperty name="tabRunOverlay" type="INT" value="2"/>
151.21590 +               <uiProperty name="tabOverlap" type="INT" value="-1"/>
151.21591 +               <uiProperty name="extendTabsToBase" type="BOOLEAN" value="true"/>
151.21592 +               <uiProperty name="useBasicArrows" type="BOOLEAN" value="true"/>
151.21593 +               <uiProperty name="shadow" type="COLOR">
151.21594 +                  <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.21595 +               </uiProperty>
151.21596 +               <uiProperty name="darkShadow" type="COLOR">
151.21597 +                  <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="text" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.21598 +               </uiProperty>
151.21599 +               <uiProperty name="highlight" type="COLOR">
151.21600 +                  <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.21601 +               </uiProperty>
151.21602 +            </uiproperties>
151.21603 +         </style>
151.21604 +         <backgroundStates>
151.21605 +            <state stateKeys="Disabled">
151.21606 +               <style>
151.21607 +                  <textForeground/>
151.21608 +                  <textBackground/>
151.21609 +                  <background/>
151.21610 +                  <uiproperties/>
151.21611 +               </style>
151.21612 +               <canvas>
151.21613 +                  <size width="100" height="30"/>
151.21614 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.21615 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.21616 +                  <layer name="Layer 1">
151.21617 +                     <opacity>1.0</opacity>
151.21618 +                     <fillOpacity>1.0</fillOpacity>
151.21619 +                     <blendingMode>NORMAL</blendingMode>
151.21620 +                     <locked>false</locked>
151.21621 +                     <visible>true</visible>
151.21622 +                     <shapes/>
151.21623 +                     <effects/>
151.21624 +                  </layer>
151.21625 +               </canvas>
151.21626 +            </state>
151.21627 +            <state stateKeys="Enabled">
151.21628 +               <style>
151.21629 +                  <textForeground/>
151.21630 +                  <textBackground/>
151.21631 +                  <background/>
151.21632 +                  <uiproperties/>
151.21633 +               </style>
151.21634 +               <canvas>
151.21635 +                  <size width="100" height="30"/>
151.21636 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.21637 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.21638 +                  <layer name="Layer 1">
151.21639 +                     <opacity>1.0</opacity>
151.21640 +                     <fillOpacity>1.0</fillOpacity>
151.21641 +                     <blendingMode>NORMAL</blendingMode>
151.21642 +                     <locked>false</locked>
151.21643 +                     <visible>true</visible>
151.21644 +                     <shapes/>
151.21645 +                     <effects/>
151.21646 +                  </layer>
151.21647 +               </canvas>
151.21648 +            </state>
151.21649 +            <state stateKeys="Focused">
151.21650 +               <style>
151.21651 +                  <textForeground/>
151.21652 +                  <textBackground/>
151.21653 +                  <background/>
151.21654 +                  <uiproperties/>
151.21655 +               </style>
151.21656 +               <canvas>
151.21657 +                  <size width="100" height="30"/>
151.21658 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.21659 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.21660 +                  <layer name="Layer 1">
151.21661 +                     <opacity>1.0</opacity>
151.21662 +                     <fillOpacity>1.0</fillOpacity>
151.21663 +                     <blendingMode>NORMAL</blendingMode>
151.21664 +                     <locked>false</locked>
151.21665 +                     <visible>true</visible>
151.21666 +                     <shapes/>
151.21667 +                     <effects/>
151.21668 +                  </layer>
151.21669 +               </canvas>
151.21670 +            </state>
151.21671 +            <state stateKeys="MouseOver">
151.21672 +               <style>
151.21673 +                  <textForeground/>
151.21674 +                  <textBackground/>
151.21675 +                  <background/>
151.21676 +                  <uiproperties/>
151.21677 +               </style>
151.21678 +               <canvas>
151.21679 +                  <size width="100" height="30"/>
151.21680 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.21681 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.21682 +                  <layer name="Layer 1">
151.21683 +                     <opacity>1.0</opacity>
151.21684 +                     <fillOpacity>1.0</fillOpacity>
151.21685 +                     <blendingMode>NORMAL</blendingMode>
151.21686 +                     <locked>false</locked>
151.21687 +                     <visible>true</visible>
151.21688 +                     <shapes/>
151.21689 +                     <effects/>
151.21690 +                  </layer>
151.21691 +               </canvas>
151.21692 +            </state>
151.21693 +            <state stateKeys="Pressed">
151.21694 +               <style>
151.21695 +                  <textForeground/>
151.21696 +                  <textBackground/>
151.21697 +                  <background/>
151.21698 +                  <uiproperties/>
151.21699 +               </style>
151.21700 +               <canvas>
151.21701 +                  <size width="100" height="30"/>
151.21702 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.21703 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.21704 +                  <layer name="Layer 1">
151.21705 +                     <opacity>1.0</opacity>
151.21706 +                     <fillOpacity>1.0</fillOpacity>
151.21707 +                     <blendingMode>NORMAL</blendingMode>
151.21708 +                     <locked>false</locked>
151.21709 +                     <visible>true</visible>
151.21710 +                     <shapes/>
151.21711 +                     <effects/>
151.21712 +                  </layer>
151.21713 +               </canvas>
151.21714 +            </state>
151.21715 +         </backgroundStates>
151.21716 +         <foregroundStates/>
151.21717 +         <borderStates/>
151.21718 +         <regions>
151.21719 +            <region name="TabbedPaneTab" subregion="true">
151.21720 +               <contentMargins top="2" bottom="3" left="8" right="8"/>
151.21721 +               <style>
151.21722 +                  <textForeground/>
151.21723 +                  <textBackground/>
151.21724 +                  <background/>
151.21725 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.21726 +                  <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.21727 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.21728 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.21729 +                  <uiproperties/>
151.21730 +               </style>
151.21731 +               <backgroundStates>
151.21732 +                  <state stateKeys="Enabled">
151.21733 +                     <style>
151.21734 +                        <textForeground/>
151.21735 +                        <textBackground/>
151.21736 +                        <background/>
151.21737 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.21738 +                        <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.21739 +                        <uiproperties/>
151.21740 +                     </style>
151.21741 +                     <canvas>
151.21742 +                        <size width="44" height="20"/>
151.21743 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.21744 +                        <stretchingInsets top="7" bottom="1" left="7" right="7"/>
151.21745 +                        <layer name="Layer 1">
151.21746 +                           <opacity>1.0</opacity>
151.21747 +                           <fillOpacity>1.0</fillOpacity>
151.21748 +                           <blendingMode>NORMAL</blendingMode>
151.21749 +                           <locked>false</locked>
151.21750 +                           <visible>true</visible>
151.21751 +                           <shapes>
151.21752 +                              <path>
151.21753 +                                 <gradient cycleMethod="NO_CYCLE">
151.21754 +                                    <stop position="0.0" midpoint="0.5">
151.21755 +                                       <matte red="251" green="251" blue="252" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="-0.63174605" brightnessOffset="0.43921566" alphaOffset="0"/>
151.21756 +                                    </stop>
151.21757 +                                    <stop position="0.2" midpoint="0.5">
151.21758 +                                       <matte red="231" green="232" blue="236" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.05468172" saturationOffset="-0.6145278" brightnessOffset="0.37647057" alphaOffset="0"/>
151.21759 +                                    </stop>
151.21760 +                                    <stop position="1.0" midpoint="0.5">
151.21761 +                                       <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5953556" brightnessOffset="0.32549018" alphaOffset="0"/>
151.21762 +                                    </stop>
151.21763 +                                 </gradient>
151.21764 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.21765 +                                 <points>
151.21766 +                                    <point x="1.0" y="19.0" cp1x="1.0" cp1y="19.0" cp2x="1.0" cp2y="19.0"/>
151.21767 +                                    <point x="1.0" y="6.0" cp1x="1.0" cp1y="9.555555555555554" cp2x="1.0" cp2y="2.4444444444444464"/>
151.21768 +                                    <point x="6.0" y="1.0" cp1x="2.555555555555557" cp1y="1.0" cp2x="9.444444444444443" cp2y="1.0"/>
151.21769 +                                    <point x="38.0" y="1.0" cp1x="34.66666666666666" cp1y="1.0" cp2x="41.33333333333334" cp2y="1.0"/>
151.21770 +                                    <point x="43.0" y="6.0" cp1x="43.0" cp1y="2.722222222222223" cp2x="43.0" cp2y="9.277777777777777"/>
151.21771 +                                    <point x="43.0" y="19.0" cp1x="43.0" cp1y="19.0" cp2x="43.0" cp2y="19.0"/>
151.21772 +                                 </points>
151.21773 +                              </path>
151.21774 +                              <path>
151.21775 +                                 <gradient cycleMethod="NO_CYCLE">
151.21776 +                                    <stop position="0.0" midpoint="0.5">
151.21777 +                                       <matte red="103" green="106" blue="112" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.55535716" brightnessOffset="-0.109803945" alphaOffset="0"/>
151.21778 +                                    </stop>
151.21779 +                                    <stop position="1.0" midpoint="0.5">
151.21780 +                                       <matte red="0" green="0" blue="18" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="0.3642857" brightnessOffset="-0.4784314" alphaOffset="0"/>
151.21781 +                                    </stop>
151.21782 +                                 </gradient>
151.21783 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.21784 +                                 <points>
151.21785 +                                    <point x="0.0" y="5.0" cp1x="0.0" cp1y="8.0" cp2x="0.0" cp2y="2.0"/>
151.21786 +                                    <point x="5.0" y="0.0" cp1x="2.0" cp1y="0.0" cp2x="8.0" cp2y="0.0"/>
151.21787 +                                    <point x="39.0" y="0.0" cp1x="36.0" cp1y="0.0" cp2x="42.0" cp2y="0.0"/>
151.21788 +                                    <point x="44.0" y="5.0" cp1x="44.0" cp1y="2.0" cp2x="44.0" cp2y="8.0"/>
151.21789 +                                    <point x="44.0" y="20.0" cp1x="44.0" cp1y="20.0" cp2x="44.0" cp2y="20.0"/>
151.21790 +                                    <point x="0.0" y="20.0" cp1x="0.0" cp1y="20.0" cp2x="0.0" cp2y="20.0"/>
151.21791 +                                 </points>
151.21792 +                              </path>
151.21793 +                           </shapes>
151.21794 +                           <effects/>
151.21795 +                        </layer>
151.21796 +                        <templateLayer fileName="11404048a3e.png">
151.21797 +                           <layer name="Template" type="template">
151.21798 +                              <opacity>1.0</opacity>
151.21799 +                              <fillOpacity>1.0</fillOpacity>
151.21800 +                              <blendingMode>NORMAL</blendingMode>
151.21801 +                              <locked>false</locked>
151.21802 +                              <visible>false</visible>
151.21803 +                              <shapes/>
151.21804 +                              <effects/>
151.21805 +                           </layer>
151.21806 +                        </templateLayer>
151.21807 +                     </canvas>
151.21808 +                  </state>
151.21809 +                  <state stateKeys="Enabled+MouseOver">
151.21810 +                     <style>
151.21811 +                        <textForeground/>
151.21812 +                        <textBackground/>
151.21813 +                        <background/>
151.21814 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.21815 +                        <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.21816 +                        <uiproperties/>
151.21817 +                     </style>
151.21818 +                     <canvas>
151.21819 +                        <size width="44" height="20"/>
151.21820 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.21821 +                        <stretchingInsets top="7" bottom="1" left="7" right="7"/>
151.21822 +                        <layer name="Layer 1">
151.21823 +                           <opacity>1.0</opacity>
151.21824 +                           <fillOpacity>1.0</fillOpacity>
151.21825 +                           <blendingMode>NORMAL</blendingMode>
151.21826 +                           <locked>false</locked>
151.21827 +                           <visible>true</visible>
151.21828 +                           <shapes>
151.21829 +                              <path>
151.21830 +                                 <gradient cycleMethod="NO_CYCLE">
151.21831 +                                    <stop position="0.0" midpoint="0.5">
151.21832 +                                       <matte red="253" green="253" blue="254" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="-0.6317773" brightnessOffset="0.4470588" alphaOffset="0"/>
151.21833 +                                    </stop>
151.21834 +                                    <stop position="0.2" midpoint="0.5">
151.21835 +                                       <matte red="242" green="244" blue="247" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.021348298" saturationOffset="-0.61547136" brightnessOffset="0.41960782" alphaOffset="0"/>
151.21836 +                                    </stop>
151.21837 +                                    <stop position="1.0" midpoint="0.5">
151.21838 +                                       <matte red="233" green="236" blue="242" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5985242" brightnessOffset="0.39999998" alphaOffset="0"/>
151.21839 +                                    </stop>
151.21840 +                                 </gradient>
151.21841 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.21842 +                                 <points>
151.21843 +                                    <point x="1.0" y="19.0" cp1x="1.0" cp1y="19.0" cp2x="1.0" cp2y="19.0"/>
151.21844 +                                    <point x="1.0" y="6.0" cp1x="1.0" cp1y="9.555555555555554" cp2x="1.0" cp2y="2.4444444444444464"/>
151.21845 +                                    <point x="6.0" y="1.0" cp1x="2.555555555555557" cp1y="1.0" cp2x="9.444444444444443" cp2y="1.0"/>
151.21846 +                                    <point x="38.0" y="1.0" cp1x="34.66666666666666" cp1y="1.0" cp2x="41.33333333333334" cp2y="1.0"/>
151.21847 +                                    <point x="43.0" y="6.0" cp1x="43.0" cp1y="2.722222222222223" cp2x="43.0" cp2y="9.277777777777777"/>
151.21848 +                                    <point x="43.0" y="19.0" cp1x="43.0" cp1y="19.0" cp2x="43.0" cp2y="19.0"/>
151.21849 +                                 </points>
151.21850 +                              </path>
151.21851 +                              <path>
151.21852 +                                 <gradient cycleMethod="NO_CYCLE">
151.21853 +                                    <stop position="0.0" midpoint="0.5">
151.21854 +                                       <matte red="122" green="126" blue="134" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.54616207" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.21855 +                                    </stop>
151.21856 +                                    <stop position="1.0" midpoint="0.5">
151.21857 +                                       <matte red="0" green="0" blue="18" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="0.3642857" brightnessOffset="-0.4784314" alphaOffset="0"/>
151.21858 +                                    </stop>
151.21859 +                                 </gradient>
151.21860 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.21861 +                                 <points>
151.21862 +                                    <point x="0.0" y="5.0" cp1x="0.0" cp1y="8.0" cp2x="0.0" cp2y="2.0"/>
151.21863 +                                    <point x="5.0" y="0.0" cp1x="2.0" cp1y="0.0" cp2x="8.0" cp2y="0.0"/>
151.21864 +                                    <point x="39.0" y="0.0" cp1x="36.0" cp1y="0.0" cp2x="42.0" cp2y="0.0"/>
151.21865 +                                    <point x="44.0" y="5.0" cp1x="44.0" cp1y="2.0" cp2x="44.0" cp2y="8.0"/>
151.21866 +                                    <point x="44.0" y="20.0" cp1x="44.0" cp1y="20.0" cp2x="44.0" cp2y="20.0"/>
151.21867 +                                    <point x="0.0" y="20.0" cp1x="0.0" cp1y="20.0" cp2x="0.0" cp2y="20.0"/>
151.21868 +                                 </points>
151.21869 +                              </path>
151.21870 +                           </shapes>
151.21871 +                           <effects/>
151.21872 +                        </layer>
151.21873 +                        <templateLayer fileName="114041a814c.png">
151.21874 +                           <layer name="Template" type="template">
151.21875 +                              <opacity>1.0</opacity>
151.21876 +                              <fillOpacity>1.0</fillOpacity>
151.21877 +                              <blendingMode>NORMAL</blendingMode>
151.21878 +                              <locked>false</locked>
151.21879 +                              <visible>true</visible>
151.21880 +                              <shapes/>
151.21881 +                              <effects/>
151.21882 +                           </layer>
151.21883 +                        </templateLayer>
151.21884 +                     </canvas>
151.21885 +                  </state>
151.21886 +                  <state stateKeys="Enabled+Pressed">
151.21887 +                     <style>
151.21888 +                        <textForeground/>
151.21889 +                        <textBackground/>
151.21890 +                        <background/>
151.21891 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.21892 +                        <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.21893 +                        <uiproperties/>
151.21894 +                     </style>
151.21895 +                     <canvas>
151.21896 +                        <size width="44" height="20"/>
151.21897 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.21898 +                        <stretchingInsets top="7" bottom="1" left="6" right="7"/>
151.21899 +                        <layer name="Layer 1">
151.21900 +                           <opacity>1.0</opacity>
151.21901 +                           <fillOpacity>1.0</fillOpacity>
151.21902 +                           <blendingMode>NORMAL</blendingMode>
151.21903 +                           <locked>false</locked>
151.21904 +                           <visible>true</visible>
151.21905 +                           <shapes>
151.21906 +                              <path>
151.21907 +                                 <gradient cycleMethod="NO_CYCLE">
151.21908 +                                    <stop position="0.0" midpoint="0.5">
151.21909 +                                       <matte red="205" green="209" blue="216" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.027408898" saturationOffset="-0.5847884" brightnessOffset="0.2980392" alphaOffset="0"/>
151.21910 +                                    </stop>
151.21911 +                                    <stop position="0.2" midpoint="0.5">
151.21912 +                                       <matte red="183" green="188" blue="199" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.035931647" saturationOffset="-0.5553123" brightnessOffset="0.23137254" alphaOffset="0"/>
151.21913 +                                    </stop>
151.21914 +                                    <stop position="0.64193547" midpoint="0.5">
151.21915 +                                       <matte red="166" green="173" blue="186" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.029681683" saturationOffset="-0.5281874" brightnessOffset="0.18039215" alphaOffset="0"/>
151.21916 +                                    </stop>
151.21917 +                                    <stop position="1.0" midpoint="0.5">
151.21918 +                                       <matte red="202" green="208" blue="222" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.03801495" saturationOffset="-0.5456242" brightnessOffset="0.3215686" alphaOffset="0"/>
151.21919 +                                    </stop>
151.21920 +                                 </gradient>
151.21921 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.21922 +                                 <points>
151.21923 +                                    <point x="1.0" y="19.0" cp1x="1.0" cp1y="19.0" cp2x="1.0" cp2y="19.0"/>
151.21924 +                                    <point x="1.0" y="6.0" cp1x="1.0" cp1y="9.666666666666664" cp2x="1.0" cp2y="2.3333333333333357"/>
151.21925 +                                    <point x="6.0" y="1.0" cp1x="2.4444444444444464" cp1y="1.0" cp2x="9.555555555555554" cp2y="1.0"/>
151.21926 +                                    <point x="38.0" y="1.0" cp1x="34.499999999999986" cp1y="1.0555555555555556" cp2x="41.500000000000014" cp2y="0.9444444444444444"/>
151.21927 +                                    <point x="43.0" y="6.0" cp1x="43.05555555555556" cp1y="2.3333333333333357" cp2x="42.94444444444444" cp2y="9.666666666666664"/>
151.21928 +                                    <point x="43.0" y="19.0" cp1x="43.0" cp1y="19.0" cp2x="43.0" cp2y="19.0"/>
151.21929 +                                 </points>
151.21930 +                              </path>
151.21931 +                              <path>
151.21932 +                                 <gradient cycleMethod="NO_CYCLE">
151.21933 +                                    <stop position="0.0" midpoint="0.5">
151.21934 +                                       <matte red="0" green="0" blue="7" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="0.3642857" brightnessOffset="-0.52156866" alphaOffset="0"/>
151.21935 +                                    </stop>
151.21936 +                                    <stop position="1.0" midpoint="0.5">
151.21937 +                                       <matte red="0" green="0" blue="18" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="0.3642857" brightnessOffset="-0.4784314" alphaOffset="0"/>
151.21938 +                                    </stop>
151.21939 +                                    <stop position="1.0" midpoint="0.5">
151.21940 +                                       <matte red="0" green="0" blue="18" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="0.3642857" brightnessOffset="-0.4784314" alphaOffset="0"/>
151.21941 +                                    </stop>
151.21942 +                                 </gradient>
151.21943 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.21944 +                                 <points>
151.21945 +                                    <point x="0.0" y="5.0" cp1x="-0.05555555555555555" cp1y="2.3888888888888875" cp2x="0.05555555555555555" cp2y="7.6111111111111125"/>
151.21946 +                                    <point x="5.0" y="0.0" cp1x="2.4999999999999982" cp1y="0.0" cp2x="7.500000000000002" cp2y="0.0"/>
151.21947 +                                    <point x="39.0" y="0.0" cp1x="36.277777777777786" cp1y="0.0" cp2x="41.722222222222214" cp2y="0.0"/>
151.21948 +                                    <point x="44.0" y="5.0" cp1x="43.94444444444444" cp1y="2.277777777777777" cp2x="44.05555555555556" cp2y="7.722222222222223"/>
151.21949 +                                    <point x="44.0" y="20.0" cp1x="44.0" cp1y="20.0" cp2x="44.0" cp2y="20.0"/>
151.21950 +                                    <point x="0.0" y="20.0" cp1x="0.0" cp1y="20.0" cp2x="0.0" cp2y="20.0"/>
151.21951 +                                 </points>
151.21952 +                              </path>
151.21953 +                           </shapes>
151.21954 +                           <effects/>
151.21955 +                        </layer>
151.21956 +                        <templateLayer fileName="114041b7f56.png">
151.21957 +                           <layer name="Template" type="template">
151.21958 +                              <opacity>1.0</opacity>
151.21959 +                              <fillOpacity>1.0</fillOpacity>
151.21960 +                              <blendingMode>NORMAL</blendingMode>
151.21961 +                              <locked>false</locked>
151.21962 +                              <visible>false</visible>
151.21963 +                              <shapes/>
151.21964 +                              <effects/>
151.21965 +                           </layer>
151.21966 +                        </templateLayer>
151.21967 +                     </canvas>
151.21968 +                  </state>
151.21969 +                  <state stateKeys="Disabled">
151.21970 +                     <style>
151.21971 +                        <textForeground>
151.21972 +                           <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.21973 +                        </textForeground>
151.21974 +                        <textBackground/>
151.21975 +                        <background/>
151.21976 +                        <inherit-textForeground>false</inherit-textForeground>
151.21977 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.21978 +                        <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.21979 +                        <uiproperties/>
151.21980 +                     </style>
151.21981 +                     <canvas>
151.21982 +                        <size width="44" height="20"/>
151.21983 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.21984 +                        <stretchingInsets top="6" bottom="1" left="7" right="7"/>
151.21985 +                        <layer name="Layer 1">
151.21986 +                           <opacity>1.0</opacity>
151.21987 +                           <fillOpacity>1.0</fillOpacity>
151.21988 +                           <blendingMode>NORMAL</blendingMode>
151.21989 +                           <locked>false</locked>
151.21990 +                           <visible>true</visible>
151.21991 +                           <shapes>
151.21992 +                              <path>
151.21993 +                                 <gradient cycleMethod="NO_CYCLE">
151.21994 +                                    <stop position="0.0" midpoint="0.5">
151.21995 +                                       <matte red="220" green="222" blue="228" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.046348333" saturationOffset="-0.6006266" brightnessOffset="0.34509802" alphaOffset="0"/>
151.21996 +                                    </stop>
151.21997 +                                    <stop position="0.2" midpoint="0.5">
151.21998 +                                       <matte red="217" green="219" blue="225" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.046348333" saturationOffset="-0.60015875" brightnessOffset="0.3333333" alphaOffset="0"/>
151.21999 +                                    </stop>
151.22000 +                                    <stop position="1.0" midpoint="0.5">
151.22001 +                                       <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.5953556" brightnessOffset="0.32549018" alphaOffset="0"/>
151.22002 +                                    </stop>
151.22003 +                                 </gradient>
151.22004 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.22005 +                                 <points>
151.22006 +                                    <point x="1.0" y="19.0" cp1x="1.0" cp1y="19.0" cp2x="1.0" cp2y="19.0"/>
151.22007 +                                    <point x="1.0" y="6.0" cp1x="1.0" cp1y="9.555555555555554" cp2x="1.0" cp2y="2.4444444444444464"/>
151.22008 +                                    <point x="6.0" y="1.0" cp1x="2.555555555555557" cp1y="1.0" cp2x="9.444444444444443" cp2y="1.0"/>
151.22009 +                                    <point x="38.0" y="1.0" cp1x="34.66666666666666" cp1y="1.0" cp2x="41.33333333333334" cp2y="1.0"/>
151.22010 +                                    <point x="43.0" y="6.0" cp1x="43.0" cp1y="2.722222222222223" cp2x="43.0" cp2y="9.277777777777777"/>
151.22011 +                                    <point x="43.0" y="19.0" cp1x="43.0" cp1y="19.0" cp2x="43.0" cp2y="19.0"/>
151.22012 +                                 </points>
151.22013 +                              </path>
151.22014 +                              <path>
151.22015 +                                 <gradient cycleMethod="NO_CYCLE">
151.22016 +                                    <stop position="0.0" midpoint="0.5">
151.22017 +                                       <matte red="196" green="199" blue="205" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.59181184" brightnessOffset="0.25490195" alphaOffset="0"/>
151.22018 +                                    </stop>
151.22019 +                                    <stop position="1.0" midpoint="0.5">
151.22020 +                                       <matte red="180" green="182" blue="190" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.05468172" saturationOffset="-0.58308274" brightnessOffset="0.19607842" alphaOffset="0"/>
151.22021 +                                    </stop>
151.22022 +                                 </gradient>
151.22023 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.22024 +                                 <points>
151.22025 +                                    <point x="0.0" y="5.0" cp1x="0.0" cp1y="8.0" cp2x="0.0" cp2y="2.0"/>
151.22026 +                                    <point x="5.0" y="0.0" cp1x="2.0" cp1y="0.0" cp2x="8.0" cp2y="0.0"/>
151.22027 +                                    <point x="39.0" y="0.0" cp1x="36.0" cp1y="0.0" cp2x="42.0" cp2y="0.0"/>
151.22028 +                                    <point x="44.0" y="5.0" cp1x="44.0" cp1y="2.0" cp2x="44.0" cp2y="8.0"/>
151.22029 +                                    <point x="44.0" y="20.0" cp1x="44.0" cp1y="20.0" cp2x="44.0" cp2y="20.0"/>
151.22030 +                                    <point x="0.0" y="20.0" cp1x="0.0" cp1y="20.0" cp2x="0.0" cp2y="20.0"/>
151.22031 +                                 </points>
151.22032 +                              </path>
151.22033 +                           </shapes>
151.22034 +                           <effects/>
151.22035 +                        </layer>
151.22036 +                        <templateLayer fileName="114041da636.png">
151.22037 +                           <layer name="Template" type="template">
151.22038 +                              <opacity>1.0</opacity>
151.22039 +                              <fillOpacity>1.0</fillOpacity>
151.22040 +                              <blendingMode>NORMAL</blendingMode>
151.22041 +                              <locked>false</locked>
151.22042 +                              <visible>false</visible>
151.22043 +                              <shapes/>
151.22044 +                              <effects/>
151.22045 +                           </layer>
151.22046 +                        </templateLayer>
151.22047 +                     </canvas>
151.22048 +                  </state>
151.22049 +                  <state stateKeys="Selected+Disabled">
151.22050 +                     <style>
151.22051 +                        <textForeground/>
151.22052 +                        <textBackground/>
151.22053 +                        <background/>
151.22054 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.22055 +                        <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.22056 +                        <uiproperties/>
151.22057 +                     </style>
151.22058 +                     <canvas>
151.22059 +                        <size width="44" height="20"/>
151.22060 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.22061 +                        <stretchingInsets top="7" bottom="0" left="7" right="7"/>
151.22062 +                        <layer name="Layer 1">
151.22063 +                           <opacity>1.0</opacity>
151.22064 +                           <fillOpacity>1.0</fillOpacity>
151.22065 +                           <blendingMode>NORMAL</blendingMode>
151.22066 +                           <locked>false</locked>
151.22067 +                           <visible>true</visible>
151.22068 +                           <shapes>
151.22069 +                              <path>
151.22070 +                                 <gradient cycleMethod="NO_CYCLE">
151.22071 +                                    <stop position="0.0" midpoint="0.5">
151.22072 +                                       <matte red="246" green="248" blue="250" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6197143" brightnessOffset="0.43137252" alphaOffset="0"/>
151.22073 +                                    </stop>
151.22074 +                                    <stop position="0.2483871" midpoint="0.5">
151.22075 +                                       <matte red="207" green="218" blue="228" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="7.13408E-4" saturationOffset="-0.543609" brightnessOffset="0.34509802" alphaOffset="0"/>
151.22076 +                                    </stop>
151.22077 +                                    <stop position="0.6032258" midpoint="0.5">
151.22078 +                                       <matte red="169" green="189" blue="206" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0020751357" saturationOffset="-0.45610264" brightnessOffset="0.2588235" alphaOffset="0"/>
151.22079 +                                    </stop>
151.22080 +                                    <stop position="0.7677419" midpoint="0.5">
151.22081 +                                       <matte red="163" green="184" blue="203" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.43866998" brightnessOffset="0.24705881" alphaOffset="0"/>
151.22082 +                                    </stop>
151.22083 +                                    <stop position="1.0" midpoint="0.5">
151.22084 +                                       <matte red="174" green="195" blue="214" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.44879842" brightnessOffset="0.29019606" alphaOffset="0"/>
151.22085 +                                    </stop>
151.22086 +                                 </gradient>
151.22087 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.22088 +                                 <points>
151.22089 +                                    <point x="1.0" y="20.0" cp1x="1.0" cp1y="20.0" cp2x="1.0" cp2y="20.0"/>
151.22090 +                                    <point x="1.0" y="6.0" cp1x="1.0" cp1y="9.555555555555554" cp2x="1.0" cp2y="2.4444444444444464"/>
151.22091 +                                    <point x="6.0" y="1.0" cp1x="2.555555555555557" cp1y="1.0" cp2x="9.444444444444443" cp2y="1.0"/>
151.22092 +                                    <point x="38.0" y="1.0" cp1x="34.66666666666666" cp1y="1.0" cp2x="41.33333333333334" cp2y="1.0"/>
151.22093 +                                    <point x="43.0" y="6.0" cp1x="43.0" cp1y="2.722222222222223" cp2x="43.0" cp2y="9.277777777777777"/>
151.22094 +                                    <point x="43.0" y="20.0" cp1x="43.0" cp1y="20.0" cp2x="43.0" cp2y="20.0"/>
151.22095 +                                 </points>
151.22096 +                              </path>
151.22097 +                              <path>
151.22098 +                                 <gradient cycleMethod="NO_CYCLE">
151.22099 +                                    <stop position="0.0" midpoint="0.5">
151.22100 +                                       <matte red="196" green="199" blue="205" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.032459438" saturationOffset="-0.59181184" brightnessOffset="0.25490195" alphaOffset="0"/>
151.22101 +                                    </stop>
151.22102 +                                    <stop position="1.0" midpoint="0.5">
151.22103 +                                       <matte red="180" green="182" blue="190" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.05468172" saturationOffset="-0.58308274" brightnessOffset="0.19607842" alphaOffset="0"/>
151.22104 +                                    </stop>
151.22105 +                                 </gradient>
151.22106 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.22107 +                                 <points>
151.22108 +                                    <point x="0.0" y="5.0" cp1x="0.0" cp1y="8.0" cp2x="0.0" cp2y="2.0"/>
151.22109 +                                    <point x="5.0" y="0.0" cp1x="2.0" cp1y="0.0" cp2x="8.0" cp2y="0.0"/>
151.22110 +                                    <point x="39.0" y="0.0" cp1x="36.0" cp1y="0.0" cp2x="42.0" cp2y="0.0"/>
151.22111 +                                    <point x="44.0" y="5.0" cp1x="44.0" cp1y="2.0" cp2x="44.0" cp2y="8.0"/>
151.22112 +                                    <point x="44.0" y="20.0" cp1x="44.0" cp1y="20.0" cp2x="44.0" cp2y="20.0"/>
151.22113 +                                    <point x="0.0" y="20.0" cp1x="0.0" cp1y="20.0" cp2x="0.0" cp2y="20.0"/>
151.22114 +                                 </points>
151.22115 +                              </path>
151.22116 +                           </shapes>
151.22117 +                           <effects/>
151.22118 +                        </layer>
151.22119 +                        <templateLayer fileName="114041e82d1.png">
151.22120 +                           <layer name="Template" type="template">
151.22121 +                              <opacity>1.0</opacity>
151.22122 +                              <fillOpacity>1.0</fillOpacity>
151.22123 +                              <blendingMode>NORMAL</blendingMode>
151.22124 +                              <locked>false</locked>
151.22125 +                              <visible>true</visible>
151.22126 +                              <shapes/>
151.22127 +                              <effects/>
151.22128 +                           </layer>
151.22129 +                        </templateLayer>
151.22130 +                     </canvas>
151.22131 +                  </state>
151.22132 +                  <state stateKeys="Selected">
151.22133 +                     <style>
151.22134 +                        <textForeground/>
151.22135 +                        <textBackground/>
151.22136 +                        <background/>
151.22137 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.22138 +                        <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.22139 +                        <uiproperties/>
151.22140 +                     </style>
151.22141 +                     <canvas>
151.22142 +                        <size width="44" height="20"/>
151.22143 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.22144 +                        <stretchingInsets top="7" bottom="0" left="7" right="7"/>
151.22145 +                        <layer name="Layer 1">
151.22146 +                           <opacity>1.0</opacity>
151.22147 +                           <fillOpacity>1.0</fillOpacity>
151.22148 +                           <blendingMode>NORMAL</blendingMode>
151.22149 +                           <locked>false</locked>
151.22150 +                           <visible>true</visible>
151.22151 +                           <shapes>
151.22152 +                              <path>
151.22153 +                                 <gradient cycleMethod="NO_CYCLE">
151.22154 +                                    <stop position="0.0" midpoint="0.5">
151.22155 +                                       <matte red="246" green="248" blue="250" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6197143" brightnessOffset="0.43137252" alphaOffset="0"/>
151.22156 +                                    </stop>
151.22157 +                                    <stop position="0.2483871" midpoint="0.5">
151.22158 +                                       <matte red="207" green="218" blue="228" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="7.13408E-4" saturationOffset="-0.543609" brightnessOffset="0.34509802" alphaOffset="0"/>
151.22159 +                                    </stop>
151.22160 +                                    <stop position="0.6032258" midpoint="0.5">
151.22161 +                                       <matte red="169" green="189" blue="206" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0020751357" saturationOffset="-0.45610264" brightnessOffset="0.2588235" alphaOffset="0"/>
151.22162 +                                    </stop>
151.22163 +                                    <stop position="0.7677419" midpoint="0.5">
151.22164 +                                       <matte red="163" green="184" blue="203" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.43866998" brightnessOffset="0.24705881" alphaOffset="0"/>
151.22165 +                                    </stop>
151.22166 +                                    <stop position="1.0" midpoint="0.5">
151.22167 +                                       <matte red="174" green="195" blue="214" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.44879842" brightnessOffset="0.29019606" alphaOffset="0"/>
151.22168 +                                    </stop>
151.22169 +                                 </gradient>
151.22170 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.22171 +                                 <points>
151.22172 +                                    <point x="1.0" y="20.0" cp1x="1.0" cp1y="20.0" cp2x="1.0" cp2y="20.0"/>
151.22173 +                                    <point x="1.0" y="6.0" cp1x="1.0" cp1y="9.555555555555554" cp2x="1.0" cp2y="2.4444444444444464"/>
151.22174 +                                    <point x="6.0" y="1.0" cp1x="2.555555555555557" cp1y="1.0" cp2x="9.444444444444443" cp2y="1.0"/>
151.22175 +                                    <point x="38.0" y="1.0" cp1x="34.66666666666666" cp1y="1.0" cp2x="41.33333333333334" cp2y="1.0"/>
151.22176 +                                    <point x="43.0" y="6.0" cp1x="43.0" cp1y="2.722222222222223" cp2x="43.0" cp2y="9.277777777777777"/>
151.22177 +                                    <point x="43.0" y="20.0" cp1x="43.0" cp1y="20.0" cp2x="43.0" cp2y="20.0"/>
151.22178 +                                 </points>
151.22179 +                              </path>
151.22180 +                              <path>
151.22181 +                                 <gradient cycleMethod="NO_CYCLE">
151.22182 +                                    <stop position="0.0" midpoint="0.5">
151.22183 +                                       <matte red="33" green="54" blue="73" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.08776909" brightnessOffset="-0.2627451" alphaOffset="0"/>
151.22184 +                                    </stop>
151.22185 +                                    <stop position="1.0" midpoint="0.5">
151.22186 +                                       <matte red="0" green="0" blue="18" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="0.3642857" brightnessOffset="-0.4784314" alphaOffset="0"/>
151.22187 +                                    </stop>
151.22188 +                                 </gradient>
151.22189 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.22190 +                                 <points>
151.22191 +                                    <point x="0.0" y="5.0" cp1x="0.0" cp1y="8.0" cp2x="0.0" cp2y="2.0"/>
151.22192 +                                    <point x="5.0" y="0.0" cp1x="2.0" cp1y="0.0" cp2x="8.0" cp2y="0.0"/>
151.22193 +                                    <point x="39.0" y="0.0" cp1x="36.0" cp1y="0.0" cp2x="42.0" cp2y="0.0"/>
151.22194 +                                    <point x="44.0" y="5.0" cp1x="44.0" cp1y="2.0" cp2x="44.0" cp2y="8.0"/>
151.22195 +                                    <point x="44.0" y="20.0" cp1x="44.0" cp1y="20.0" cp2x="44.0" cp2y="20.0"/>
151.22196 +                                    <point x="0.0" y="20.0" cp1x="0.0" cp1y="20.0" cp2x="0.0" cp2y="20.0"/>
151.22197 +                                 </points>
151.22198 +                              </path>
151.22199 +                           </shapes>
151.22200 +                           <effects/>
151.22201 +                        </layer>
151.22202 +                        <templateLayer fileName="114041e82d1.png">
151.22203 +                           <layer name="Template" type="template">
151.22204 +                              <opacity>1.0</opacity>
151.22205 +                              <fillOpacity>1.0</fillOpacity>
151.22206 +                              <blendingMode>NORMAL</blendingMode>
151.22207 +                              <locked>false</locked>
151.22208 +                              <visible>true</visible>
151.22209 +                              <shapes/>
151.22210 +                              <effects/>
151.22211 +                           </layer>
151.22212 +                        </templateLayer>
151.22213 +                     </canvas>
151.22214 +                  </state>
151.22215 +                  <state stateKeys="Selected+MouseOver">
151.22216 +                     <style>
151.22217 +                        <textForeground/>
151.22218 +                        <textBackground/>
151.22219 +                        <background/>
151.22220 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.22221 +                        <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.22222 +                        <uiproperties/>
151.22223 +                     </style>
151.22224 +                     <canvas>
151.22225 +                        <size width="44" height="20"/>
151.22226 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.22227 +                        <stretchingInsets top="7" bottom="0" left="9" right="9"/>
151.22228 +                        <layer name="Layer 1">
151.22229 +                           <opacity>1.0</opacity>
151.22230 +                           <fillOpacity>1.0</fillOpacity>
151.22231 +                           <blendingMode>NORMAL</blendingMode>
151.22232 +                           <locked>false</locked>
151.22233 +                           <visible>true</visible>
151.22234 +                           <shapes>
151.22235 +                              <path>
151.22236 +                                 <gradient cycleMethod="NO_CYCLE">
151.22237 +                                    <stop position="0.0" midpoint="0.5">
151.22238 +                                       <matte red="248" green="250" blue="252" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6198413" brightnessOffset="0.43921566" alphaOffset="0"/>
151.22239 +                                    </stop>
151.22240 +                                    <stop position="0.2483871" midpoint="0.5">
151.22241 +                                       <matte red="211" green="224" blue="235" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0022627711" saturationOffset="-0.5335866" brightnessOffset="0.372549" alphaOffset="0"/>
151.22242 +                                    </stop>
151.22243 +                                    <stop position="0.6032258" midpoint="0.5">
151.22244 +                                       <matte red="184" green="205" blue="223" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0017285943" saturationOffset="-0.4608264" brightnessOffset="0.32549018" alphaOffset="0"/>
151.22245 +                                    </stop>
151.22246 +                                    <stop position="0.7677419" midpoint="0.5">
151.22247 +                                       <matte red="182" green="203" blue="222" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4555341" brightnessOffset="0.3215686" alphaOffset="0"/>
151.22248 +                                    </stop>
151.22249 +                                    <stop position="0.9677419" midpoint="0.5">
151.22250 +                                       <matte red="193" green="214" blue="233" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.46404046" brightnessOffset="0.36470586" alphaOffset="0"/>
151.22251 +                                    </stop>
151.22252 +                                 </gradient>
151.22253 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.22254 +                                 <points>
151.22255 +                                    <point x="1.0" y="20.0" cp1x="1.0" cp1y="20.0" cp2x="1.0" cp2y="20.0"/>
151.22256 +                                    <point x="1.0" y="6.0" cp1x="1.0" cp1y="9.555555555555554" cp2x="1.0" cp2y="2.4444444444444464"/>
151.22257 +                                    <point x="6.0" y="1.0" cp1x="2.555555555555557" cp1y="1.0" cp2x="9.444444444444443" cp2y="1.0"/>
151.22258 +                                    <point x="38.0" y="1.0" cp1x="34.66666666666666" cp1y="1.0" cp2x="41.33333333333334" cp2y="1.0"/>
151.22259 +                                    <point x="43.0" y="6.0" cp1x="43.0" cp1y="2.722222222222223" cp2x="43.0" cp2y="9.277777777777777"/>
151.22260 +                                    <point x="43.0" y="20.0" cp1x="43.0" cp1y="20.0" cp2x="43.0" cp2y="20.0"/>
151.22261 +                                 </points>
151.22262 +                              </path>
151.22263 +                              <path>
151.22264 +                                 <gradient cycleMethod="NO_CYCLE">
151.22265 +                                    <stop position="0.0" midpoint="0.5">
151.22266 +                                       <matte red="0" green="4" blue="27" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.06332368" saturationOffset="0.3642857" brightnessOffset="-0.4431373" alphaOffset="0"/>
151.22267 +                                    </stop>
151.22268 +                                    <stop position="1.0" midpoint="0.5">
151.22269 +                                       <matte red="0" green="0" blue="18" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="0.3642857" brightnessOffset="-0.4784314" alphaOffset="0"/>
151.22270 +                                    </stop>
151.22271 +                                 </gradient>
151.22272 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.22273 +                                 <points>
151.22274 +                                    <point x="0.0" y="5.0" cp1x="0.0" cp1y="8.0" cp2x="0.0" cp2y="2.0"/>
151.22275 +                                    <point x="5.0" y="0.0" cp1x="2.0" cp1y="0.0" cp2x="8.0" cp2y="0.0"/>
151.22276 +                                    <point x="39.0" y="0.0" cp1x="36.0" cp1y="0.0" cp2x="42.0" cp2y="0.0"/>
151.22277 +                                    <point x="44.0" y="5.0" cp1x="44.0" cp1y="2.0" cp2x="44.0" cp2y="8.0"/>
151.22278 +                                    <point x="44.0" y="20.0" cp1x="44.0" cp1y="20.0" cp2x="44.0" cp2y="20.0"/>
151.22279 +                                    <point x="0.0" y="20.0" cp1x="0.0" cp1y="20.0" cp2x="0.0" cp2y="20.0"/>
151.22280 +                                 </points>
151.22281 +                              </path>
151.22282 +                           </shapes>
151.22283 +                           <effects/>
151.22284 +                        </layer>
151.22285 +                        <templateLayer fileName="11404247138.png">
151.22286 +                           <layer name="Template" type="template">
151.22287 +                              <opacity>1.0</opacity>
151.22288 +                              <fillOpacity>1.0</fillOpacity>
151.22289 +                              <blendingMode>NORMAL</blendingMode>
151.22290 +                              <locked>false</locked>
151.22291 +                              <visible>true</visible>
151.22292 +                              <shapes/>
151.22293 +                              <effects/>
151.22294 +                           </layer>
151.22295 +                        </templateLayer>
151.22296 +                     </canvas>
151.22297 +                  </state>
151.22298 +                  <state stateKeys="Selected+Pressed">
151.22299 +                     <style>
151.22300 +                        <textForeground>
151.22301 +                           <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.22302 +                        </textForeground>
151.22303 +                        <textBackground/>
151.22304 +                        <background/>
151.22305 +                        <inherit-textForeground>false</inherit-textForeground>
151.22306 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.22307 +                        <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.22308 +                        <uiproperties/>
151.22309 +                     </style>
151.22310 +                     <canvas>
151.22311 +                        <size width="44" height="20"/>
151.22312 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.22313 +                        <stretchingInsets top="7" bottom="0" left="9" right="9"/>
151.22314 +                        <layer name="Layer 1">
151.22315 +                           <opacity>1.0</opacity>
151.22316 +                           <fillOpacity>1.0</fillOpacity>
151.22317 +                           <blendingMode>NORMAL</blendingMode>
151.22318 +                           <locked>false</locked>
151.22319 +                           <visible>true</visible>
151.22320 +                           <shapes>
151.22321 +                              <path>
151.22322 +                                 <gradient cycleMethod="NO_CYCLE">
151.22323 +                                    <stop position="0.0" midpoint="0.5">
151.22324 +                                       <matte red="143" green="169" blue="192" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-4.2033195E-4" saturationOffset="-0.38050595" brightnessOffset="0.20392156" alphaOffset="0"/>
151.22325 +                                    </stop>
151.22326 +                                    <stop position="0.2483871" midpoint="0.5">
151.22327 +                                       <matte red="84" green="123" blue="159" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0013483167" saturationOffset="-0.16401619" brightnessOffset="0.0745098" alphaOffset="0"/>
151.22328 +                                    </stop>
151.22329 +                                    <stop position="0.6032258" midpoint="0.5">
151.22330 +                                       <matte red="54" green="101" blue="142" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0010001659" saturationOffset="-0.01599598" brightnessOffset="0.007843137" alphaOffset="0"/>
151.22331 +                                    </stop>
151.22332 +                                    <stop position="0.7677419" midpoint="0.5">
151.22333 +                                       <matte red="51" green="98" blue="140" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.22334 +                                    </stop>
151.22335 +                                    <stop position="0.9419355" midpoint="0.5">
151.22336 +                                       <matte red="60" green="106" blue="149" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0018727183" saturationOffset="-0.038398862" brightnessOffset="0.035294116" alphaOffset="0"/>
151.22337 +                                    </stop>
151.22338 +                                 </gradient>
151.22339 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.22340 +                                 <points>
151.22341 +                                    <point x="1.0" y="20.0" cp1x="1.0" cp1y="20.0" cp2x="1.0" cp2y="20.0"/>
151.22342 +                                    <point x="1.0" y="6.0" cp1x="1.0" cp1y="9.555555555555554" cp2x="1.0" cp2y="2.4444444444444464"/>
151.22343 +                                    <point x="6.0" y="1.0" cp1x="2.555555555555557" cp1y="1.0" cp2x="9.444444444444443" cp2y="1.0"/>
151.22344 +                                    <point x="38.0" y="1.0" cp1x="34.66666666666666" cp1y="1.0" cp2x="41.33333333333334" cp2y="1.0"/>
151.22345 +                                    <point x="43.0" y="6.0" cp1x="43.0" cp1y="2.722222222222223" cp2x="43.0" cp2y="9.277777777777777"/>
151.22346 +                                    <point x="43.0" y="20.0" cp1x="43.0" cp1y="20.0" cp2x="43.0" cp2y="20.0"/>
151.22347 +                                 </points>
151.22348 +                              </path>
151.22349 +                              <path>
151.22350 +                                 <gradient cycleMethod="NO_CYCLE">
151.22351 +                                    <stop position="0.0" midpoint="0.5">
151.22352 +                                       <matte red="0" green="4" blue="27" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.06332368" saturationOffset="0.3642857" brightnessOffset="-0.4431373" alphaOffset="0"/>
151.22353 +                                    </stop>
151.22354 +                                    <stop position="1.0" midpoint="0.5">
151.22355 +                                       <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.22356 +                                    </stop>
151.22357 +                                 </gradient>
151.22358 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.22359 +                                 <points>
151.22360 +                                    <point x="0.0" y="5.0" cp1x="0.0" cp1y="8.0" cp2x="0.0" cp2y="2.0"/>
151.22361 +                                    <point x="5.0" y="0.0" cp1x="2.0" cp1y="0.0" cp2x="8.0" cp2y="0.0"/>
151.22362 +                                    <point x="39.0" y="0.0" cp1x="36.0" cp1y="0.0" cp2x="42.0" cp2y="0.0"/>
151.22363 +                                    <point x="44.0" y="5.0" cp1x="44.0" cp1y="2.0" cp2x="44.0" cp2y="8.0"/>
151.22364 +                                    <point x="44.0" y="20.0" cp1x="44.0" cp1y="20.0" cp2x="44.0" cp2y="20.0"/>
151.22365 +                                    <point x="0.0" y="20.0" cp1x="0.0" cp1y="20.0" cp2x="0.0" cp2y="20.0"/>
151.22366 +                                 </points>
151.22367 +                              </path>
151.22368 +                           </shapes>
151.22369 +                           <effects/>
151.22370 +                        </layer>
151.22371 +                        <templateLayer fileName="1140425bba6.png">
151.22372 +                           <layer name="Template" type="template">
151.22373 +                              <opacity>1.0</opacity>
151.22374 +                              <fillOpacity>1.0</fillOpacity>
151.22375 +                              <blendingMode>NORMAL</blendingMode>
151.22376 +                              <locked>false</locked>
151.22377 +                              <visible>false</visible>
151.22378 +                              <shapes/>
151.22379 +                              <effects/>
151.22380 +                           </layer>
151.22381 +                        </templateLayer>
151.22382 +                     </canvas>
151.22383 +                  </state>
151.22384 +                  <state stateKeys="Selected+Focused">
151.22385 +                     <style>
151.22386 +                        <textForeground/>
151.22387 +                        <textBackground/>
151.22388 +                        <background/>
151.22389 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.22390 +                        <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.22391 +                        <uiproperties/>
151.22392 +                     </style>
151.22393 +                     <canvas>
151.22394 +                        <size width="44" height="20"/>
151.22395 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.22396 +                        <stretchingInsets top="7" bottom="3" left="7" right="7"/>
151.22397 +                        <layer name="Layer 1">
151.22398 +                           <opacity>1.0</opacity>
151.22399 +                           <fillOpacity>1.0</fillOpacity>
151.22400 +                           <blendingMode>NORMAL</blendingMode>
151.22401 +                           <locked>false</locked>
151.22402 +                           <visible>true</visible>
151.22403 +                           <shapes>
151.22404 +                              <path>
151.22405 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.22406 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.22407 +                                 <points>
151.22408 +                                    <point x="20.916666666666664" y="17.749999999999996" cp1x="20.916666666666664" cp1y="17.749999999999996" cp2x="20.916666666666664" cp2y="17.749999999999996"/>
151.22409 +                                    <point x="20.958333333333332" y="19.333333333333332" cp1x="20.958333333333332" cp1y="19.333333333333332" cp2x="20.958333333333332" cp2y="19.333333333333332"/>
151.22410 +                                    <point x="2.6666666666666665" y="19.33333333333334" cp1x="2.6666666666666665" cp1y="19.33333333333334" cp2x="2.6666666666666665" cp2y="19.33333333333334"/>
151.22411 +                                    <point x="2.6249999999999987" y="6.166666666666665" cp1x="2.6249999999999987" cp1y="6.166666666666665" cp2x="2.6249999999999987" cp2y="3.9166666666666647"/>
151.22412 +                                    <point x="5.916666666666664" y="2.666666666666665" cp1x="3.9999999999999996" cp1y="2.666666666666665" cp2x="5.916666666666664" cp2y="2.666666666666665"/>
151.22413 +                                    <point x="37.70833333333333" y="2.6666666666666665" cp1x="37.70833333333333" cp1y="2.6666666666666665" cp2x="39.833333333333314" cp2y="2.6666666666666665"/>
151.22414 +                                    <point x="41.416666666666664" y="6.041666666666667" cp1x="41.416666666666664" cp1y="3.4583333333333353" cp2x="41.416666666666664" cp2y="6.041666666666667"/>
151.22415 +                                    <point x="41.37500000000001" y="19.291666666666657" cp1x="41.37500000000001" cp1y="19.291666666666657" cp2x="41.37500000000001" cp2y="19.291666666666657"/>
151.22416 +                                    <point x="21.000000000000007" y="19.33333333333333" cp1x="21.000000000000007" cp1y="19.33333333333333" cp2x="21.000000000000007" cp2y="19.33333333333333"/>
151.22417 +                                    <point x="20.916666666666668" y="17.708333333333332" cp1x="20.916666666666668" cp1y="17.708333333333332" cp2x="20.916666666666668" cp2y="17.708333333333332"/>
151.22418 +                                    <point x="39.70833333333333" y="17.666666666666668" cp1x="39.70833333333333" cp1y="17.666666666666668" cp2x="39.70833333333333" cp2y="17.666666666666668"/>
151.22419 +                                    <point x="39.625" y="6.083333333333332" cp1x="39.625" cp1y="6.083333333333332" cp2x="39.62499999999999" cp2y="5.166666666666664"/>
151.22420 +                                    <point x="37.666666666666664" y="4.249999999999999" cp1x="38.75" cp1y="4.249999999999997" cp2x="37.666666666666664" cp2y="4.249999999999999"/>
151.22421 +                                    <point x="5.833333333333332" y="4.291666666666666" cp1x="5.833333333333332" cp1y="4.291666666666666" cp2x="4.833333333333332" cp2y="4.291666666666666"/>
151.22422 +                                    <point x="4.374999999999998" y="6.08333333333333" cp1x="4.416666666666665" cp1y="5.1249999999999964" cp2x="4.374999999999998" cp2y="6.08333333333333"/>
151.22423 +                                    <point x="4.291666666666664" y="17.708333333333334" cp1x="4.291666666666664" cp1y="17.708333333333334" cp2x="4.291666666666664" cp2y="17.708333333333334"/>
151.22424 +                                 </points>
151.22425 +                              </path>
151.22426 +                              <path>
151.22427 +                                 <gradient cycleMethod="NO_CYCLE">
151.22428 +                                    <stop position="0.0" midpoint="0.5">
151.22429 +                                       <matte red="246" green="248" blue="250" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6197143" brightnessOffset="0.43137252" alphaOffset="0"/>
151.22430 +                                    </stop>
151.22431 +                                    <stop position="0.2483871" midpoint="0.5">
151.22432 +                                       <matte red="207" green="218" blue="228" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="7.13408E-4" saturationOffset="-0.543609" brightnessOffset="0.34509802" alphaOffset="0"/>
151.22433 +                                    </stop>
151.22434 +                                    <stop position="0.6032258" midpoint="0.5">
151.22435 +                                       <matte red="169" green="189" blue="206" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0020751357" saturationOffset="-0.45610264" brightnessOffset="0.2588235" alphaOffset="0"/>
151.22436 +                                    </stop>
151.22437 +                                    <stop position="0.7677419" midpoint="0.5">
151.22438 +                                       <matte red="163" green="184" blue="203" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.43866998" brightnessOffset="0.24705881" alphaOffset="0"/>
151.22439 +                                    </stop>
151.22440 +                                    <stop position="1.0" midpoint="0.5">
151.22441 +                                       <matte red="174" green="195" blue="214" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.44879842" brightnessOffset="0.29019606" alphaOffset="0"/>
151.22442 +                                    </stop>
151.22443 +                                 </gradient>
151.22444 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.22445 +                                 <points>
151.22446 +                                    <point x="1.0" y="20.0" cp1x="1.0" cp1y="20.0" cp2x="1.0" cp2y="20.0"/>
151.22447 +                                    <point x="1.0" y="6.0" cp1x="1.0" cp1y="9.555555555555554" cp2x="1.0" cp2y="2.4444444444444464"/>
151.22448 +                                    <point x="6.0" y="1.0" cp1x="2.555555555555557" cp1y="1.0" cp2x="9.444444444444443" cp2y="1.0"/>
151.22449 +                                    <point x="38.0" y="1.0" cp1x="34.66666666666666" cp1y="1.0" cp2x="41.33333333333334" cp2y="1.0"/>
151.22450 +                                    <point x="43.0" y="6.0" cp1x="43.0" cp1y="2.722222222222223" cp2x="43.0" cp2y="9.277777777777777"/>
151.22451 +                                    <point x="43.0" y="20.0" cp1x="43.0" cp1y="20.0" cp2x="43.0" cp2y="20.0"/>
151.22452 +                                 </points>
151.22453 +                              </path>
151.22454 +                              <path>
151.22455 +                                 <gradient cycleMethod="NO_CYCLE">
151.22456 +                                    <stop position="0.0" midpoint="0.5">
151.22457 +                                       <matte red="33" green="54" blue="73" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.08776909" brightnessOffset="-0.2627451" alphaOffset="0"/>
151.22458 +                                    </stop>
151.22459 +                                    <stop position="1.0" midpoint="0.5">
151.22460 +                                       <matte red="0" green="0" blue="18" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="0.3642857" brightnessOffset="-0.4784314" alphaOffset="0"/>
151.22461 +                                    </stop>
151.22462 +                                 </gradient>
151.22463 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.22464 +                                 <points>
151.22465 +                                    <point x="0.0" y="5.0" cp1x="0.0" cp1y="8.0" cp2x="0.0" cp2y="2.0"/>
151.22466 +                                    <point x="5.0" y="0.0" cp1x="2.0" cp1y="0.0" cp2x="8.0" cp2y="0.0"/>
151.22467 +                                    <point x="39.0" y="0.0" cp1x="36.0" cp1y="0.0" cp2x="42.0" cp2y="0.0"/>
151.22468 +                                    <point x="44.0" y="5.0" cp1x="44.0" cp1y="2.0" cp2x="44.0" cp2y="8.0"/>
151.22469 +                                    <point x="44.0" y="20.0" cp1x="44.0" cp1y="20.0" cp2x="44.0" cp2y="20.0"/>
151.22470 +                                    <point x="0.0" y="20.0" cp1x="0.0" cp1y="20.0" cp2x="0.0" cp2y="20.0"/>
151.22471 +                                 </points>
151.22472 +                              </path>
151.22473 +                           </shapes>
151.22474 +                           <effects/>
151.22475 +                        </layer>
151.22476 +                        <templateLayer fileName="114041e82d1.png">
151.22477 +                           <layer name="Template" type="template">
151.22478 +                              <opacity>1.0</opacity>
151.22479 +                              <fillOpacity>1.0</fillOpacity>
151.22480 +                              <blendingMode>NORMAL</blendingMode>
151.22481 +                              <locked>false</locked>
151.22482 +                              <visible>true</visible>
151.22483 +                              <shapes/>
151.22484 +                              <effects/>
151.22485 +                           </layer>
151.22486 +                        </templateLayer>
151.22487 +                     </canvas>
151.22488 +                  </state>
151.22489 +                  <state stateKeys="Selected+MouseOver+Focused">
151.22490 +                     <style>
151.22491 +                        <textForeground/>
151.22492 +                        <textBackground/>
151.22493 +                        <background/>
151.22494 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.22495 +                        <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.22496 +                        <uiproperties/>
151.22497 +                     </style>
151.22498 +                     <canvas>
151.22499 +                        <size width="44" height="20"/>
151.22500 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.22501 +                        <stretchingInsets top="7" bottom="3" left="9" right="9"/>
151.22502 +                        <layer name="Layer 1">
151.22503 +                           <opacity>1.0</opacity>
151.22504 +                           <fillOpacity>1.0</fillOpacity>
151.22505 +                           <blendingMode>NORMAL</blendingMode>
151.22506 +                           <locked>false</locked>
151.22507 +                           <visible>true</visible>
151.22508 +                           <shapes>
151.22509 +                              <path>
151.22510 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.22511 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.22512 +                                 <points>
151.22513 +                                    <point x="20.916666666666664" y="17.749999999999996" cp1x="20.916666666666664" cp1y="17.749999999999996" cp2x="20.916666666666664" cp2y="17.749999999999996"/>
151.22514 +                                    <point x="20.958333333333332" y="19.333333333333332" cp1x="20.958333333333332" cp1y="19.333333333333332" cp2x="20.958333333333332" cp2y="19.333333333333332"/>
151.22515 +                                    <point x="2.6666666666666665" y="19.33333333333334" cp1x="2.6666666666666665" cp1y="19.33333333333334" cp2x="2.6666666666666665" cp2y="19.33333333333334"/>
151.22516 +                                    <point x="2.6249999999999987" y="6.166666666666665" cp1x="2.6249999999999987" cp1y="6.166666666666665" cp2x="2.6249999999999987" cp2y="3.9166666666666647"/>
151.22517 +                                    <point x="5.916666666666664" y="2.666666666666665" cp1x="3.9999999999999996" cp1y="2.666666666666665" cp2x="5.916666666666664" cp2y="2.666666666666665"/>
151.22518 +                                    <point x="37.70833333333333" y="2.6666666666666665" cp1x="37.70833333333333" cp1y="2.6666666666666665" cp2x="39.833333333333314" cp2y="2.6666666666666665"/>
151.22519 +                                    <point x="41.416666666666664" y="6.041666666666667" cp1x="41.416666666666664" cp1y="3.4583333333333353" cp2x="41.416666666666664" cp2y="6.041666666666667"/>
151.22520 +                                    <point x="41.37500000000001" y="19.291666666666657" cp1x="41.37500000000001" cp1y="19.291666666666657" cp2x="41.37500000000001" cp2y="19.291666666666657"/>
151.22521 +                                    <point x="21.000000000000007" y="19.33333333333333" cp1x="21.000000000000007" cp1y="19.33333333333333" cp2x="21.000000000000007" cp2y="19.33333333333333"/>
151.22522 +                                    <point x="20.916666666666668" y="17.708333333333332" cp1x="20.916666666666668" cp1y="17.708333333333332" cp2x="20.916666666666668" cp2y="17.708333333333332"/>
151.22523 +                                    <point x="39.70833333333333" y="17.666666666666668" cp1x="39.70833333333333" cp1y="17.666666666666668" cp2x="39.70833333333333" cp2y="17.666666666666668"/>
151.22524 +                                    <point x="39.625" y="6.083333333333332" cp1x="39.625" cp1y="6.083333333333332" cp2x="39.62499999999999" cp2y="5.166666666666664"/>
151.22525 +                                    <point x="37.666666666666664" y="4.249999999999999" cp1x="38.75" cp1y="4.249999999999997" cp2x="37.666666666666664" cp2y="4.249999999999999"/>
151.22526 +                                    <point x="5.833333333333332" y="4.291666666666666" cp1x="5.833333333333332" cp1y="4.291666666666666" cp2x="4.833333333333332" cp2y="4.291666666666666"/>
151.22527 +                                    <point x="4.374999999999998" y="6.08333333333333" cp1x="4.416666666666665" cp1y="5.1249999999999964" cp2x="4.374999999999998" cp2y="6.08333333333333"/>
151.22528 +                                    <point x="4.291666666666664" y="17.708333333333334" cp1x="4.291666666666664" cp1y="17.708333333333334" cp2x="4.291666666666664" cp2y="17.708333333333334"/>
151.22529 +                                 </points>
151.22530 +                              </path>
151.22531 +                              <path>
151.22532 +                                 <gradient cycleMethod="NO_CYCLE">
151.22533 +                                    <stop position="0.0" midpoint="0.5">
151.22534 +                                       <matte red="248" green="250" blue="252" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6198413" brightnessOffset="0.43921566" alphaOffset="0"/>
151.22535 +                                    </stop>
151.22536 +                                    <stop position="0.2483871" midpoint="0.5">
151.22537 +                                       <matte red="211" green="224" blue="235" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0022627711" saturationOffset="-0.5335866" brightnessOffset="0.372549" alphaOffset="0"/>
151.22538 +                                    </stop>
151.22539 +                                    <stop position="0.6032258" midpoint="0.5">
151.22540 +                                       <matte red="184" green="205" blue="223" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0017285943" saturationOffset="-0.4608264" brightnessOffset="0.32549018" alphaOffset="0"/>
151.22541 +                                    </stop>
151.22542 +                                    <stop position="0.7677419" midpoint="0.5">
151.22543 +                                       <matte red="182" green="203" blue="222" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4555341" brightnessOffset="0.3215686" alphaOffset="0"/>
151.22544 +                                    </stop>
151.22545 +                                    <stop position="0.9677419" midpoint="0.5">
151.22546 +                                       <matte red="193" green="214" blue="233" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.46404046" brightnessOffset="0.36470586" alphaOffset="0"/>
151.22547 +                                    </stop>
151.22548 +                                 </gradient>
151.22549 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.22550 +                                 <points>
151.22551 +                                    <point x="1.0" y="20.0" cp1x="1.0" cp1y="20.0" cp2x="1.0" cp2y="20.0"/>
151.22552 +                                    <point x="1.0" y="6.0" cp1x="1.0" cp1y="9.555555555555554" cp2x="1.0" cp2y="2.4444444444444464"/>
151.22553 +                                    <point x="6.0" y="1.0" cp1x="2.555555555555557" cp1y="1.0" cp2x="9.444444444444443" cp2y="1.0"/>
151.22554 +                                    <point x="38.0" y="1.0" cp1x="34.66666666666666" cp1y="1.0" cp2x="41.33333333333334" cp2y="1.0"/>
151.22555 +                                    <point x="43.0" y="6.0" cp1x="43.0" cp1y="2.722222222222223" cp2x="43.0" cp2y="9.277777777777777"/>
151.22556 +                                    <point x="43.0" y="20.0" cp1x="43.0" cp1y="20.0" cp2x="43.0" cp2y="20.0"/>
151.22557 +                                 </points>
151.22558 +                              </path>
151.22559 +                              <path>
151.22560 +                                 <gradient cycleMethod="NO_CYCLE">
151.22561 +                                    <stop position="0.0" midpoint="0.5">
151.22562 +                                       <matte red="0" green="4" blue="27" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.06332368" saturationOffset="0.3642857" brightnessOffset="-0.4431373" alphaOffset="0"/>
151.22563 +                                    </stop>
151.22564 +                                    <stop position="1.0" midpoint="0.5">
151.22565 +                                       <matte red="0" green="0" blue="18" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="0.3642857" brightnessOffset="-0.4784314" alphaOffset="0"/>
151.22566 +                                    </stop>
151.22567 +                                 </gradient>
151.22568 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.22569 +                                 <points>
151.22570 +                                    <point x="0.0" y="5.0" cp1x="0.0" cp1y="8.0" cp2x="0.0" cp2y="2.0"/>
151.22571 +                                    <point x="5.0" y="0.0" cp1x="2.0" cp1y="0.0" cp2x="8.0" cp2y="0.0"/>
151.22572 +                                    <point x="39.0" y="0.0" cp1x="36.0" cp1y="0.0" cp2x="42.0" cp2y="0.0"/>
151.22573 +                                    <point x="44.0" y="5.0" cp1x="44.0" cp1y="2.0" cp2x="44.0" cp2y="8.0"/>
151.22574 +                                    <point x="44.0" y="20.0" cp1x="44.0" cp1y="20.0" cp2x="44.0" cp2y="20.0"/>
151.22575 +                                    <point x="0.0" y="20.0" cp1x="0.0" cp1y="20.0" cp2x="0.0" cp2y="20.0"/>
151.22576 +                                 </points>
151.22577 +                              </path>
151.22578 +                           </shapes>
151.22579 +                           <effects/>
151.22580 +                        </layer>
151.22581 +                        <templateLayer fileName="11404247138.png">
151.22582 +                           <layer name="Template" type="template">
151.22583 +                              <opacity>1.0</opacity>
151.22584 +                              <fillOpacity>1.0</fillOpacity>
151.22585 +                              <blendingMode>NORMAL</blendingMode>
151.22586 +                              <locked>false</locked>
151.22587 +                              <visible>true</visible>
151.22588 +                              <shapes/>
151.22589 +                              <effects/>
151.22590 +                           </layer>
151.22591 +                        </templateLayer>
151.22592 +                     </canvas>
151.22593 +                  </state>
151.22594 +                  <state stateKeys="Selected+Pressed+Focused">
151.22595 +                     <style>
151.22596 +                        <textForeground>
151.22597 +                           <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.22598 +                        </textForeground>
151.22599 +                        <textBackground/>
151.22600 +                        <background/>
151.22601 +                        <inherit-textForeground>false</inherit-textForeground>
151.22602 +                        <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.22603 +                        <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.22604 +                        <uiproperties/>
151.22605 +                     </style>
151.22606 +                     <canvas>
151.22607 +                        <size width="44" height="20"/>
151.22608 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.22609 +                        <stretchingInsets top="7" bottom="3" left="9" right="9"/>
151.22610 +                        <layer name="Layer 1">
151.22611 +                           <opacity>1.0</opacity>
151.22612 +                           <fillOpacity>1.0</fillOpacity>
151.22613 +                           <blendingMode>NORMAL</blendingMode>
151.22614 +                           <locked>false</locked>
151.22615 +                           <visible>true</visible>
151.22616 +                           <shapes>
151.22617 +                              <path>
151.22618 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.22619 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.22620 +                                 <points>
151.22621 +                                    <point x="20.916666666666664" y="17.749999999999996" cp1x="20.916666666666664" cp1y="17.749999999999996" cp2x="20.916666666666664" cp2y="17.749999999999996"/>
151.22622 +                                    <point x="20.958333333333332" y="19.333333333333332" cp1x="20.958333333333332" cp1y="19.333333333333332" cp2x="20.958333333333332" cp2y="19.333333333333332"/>
151.22623 +                                    <point x="2.6666666666666665" y="19.33333333333334" cp1x="2.6666666666666665" cp1y="19.33333333333334" cp2x="2.6666666666666665" cp2y="19.33333333333334"/>
151.22624 +                                    <point x="2.6249999999999987" y="6.166666666666665" cp1x="2.6249999999999987" cp1y="6.166666666666665" cp2x="2.6249999999999987" cp2y="3.9166666666666647"/>
151.22625 +                                    <point x="5.916666666666664" y="2.666666666666665" cp1x="3.9999999999999996" cp1y="2.666666666666665" cp2x="5.916666666666664" cp2y="2.666666666666665"/>
151.22626 +                                    <point x="37.70833333333333" y="2.6666666666666665" cp1x="37.70833333333333" cp1y="2.6666666666666665" cp2x="39.833333333333314" cp2y="2.6666666666666665"/>
151.22627 +                                    <point x="41.416666666666664" y="6.041666666666667" cp1x="41.416666666666664" cp1y="3.4583333333333353" cp2x="41.416666666666664" cp2y="6.041666666666667"/>
151.22628 +                                    <point x="41.37500000000001" y="19.291666666666657" cp1x="41.37500000000001" cp1y="19.291666666666657" cp2x="41.37500000000001" cp2y="19.291666666666657"/>
151.22629 +                                    <point x="21.000000000000007" y="19.33333333333333" cp1x="21.000000000000007" cp1y="19.33333333333333" cp2x="21.000000000000007" cp2y="19.33333333333333"/>
151.22630 +                                    <point x="20.916666666666668" y="17.708333333333332" cp1x="20.916666666666668" cp1y="17.708333333333332" cp2x="20.916666666666668" cp2y="17.708333333333332"/>
151.22631 +                                    <point x="39.70833333333333" y="17.666666666666668" cp1x="39.70833333333333" cp1y="17.666666666666668" cp2x="39.70833333333333" cp2y="17.666666666666668"/>
151.22632 +                                    <point x="39.625" y="6.083333333333332" cp1x="39.625" cp1y="6.083333333333332" cp2x="39.62499999999999" cp2y="5.166666666666664"/>
151.22633 +                                    <point x="37.666666666666664" y="4.249999999999999" cp1x="38.75" cp1y="4.249999999999997" cp2x="37.666666666666664" cp2y="4.249999999999999"/>
151.22634 +                                    <point x="5.833333333333332" y="4.291666666666666" cp1x="5.833333333333332" cp1y="4.291666666666666" cp2x="4.833333333333332" cp2y="4.291666666666666"/>
151.22635 +                                    <point x="4.374999999999998" y="6.08333333333333" cp1x="4.416666666666665" cp1y="5.1249999999999964" cp2x="4.374999999999998" cp2y="6.08333333333333"/>
151.22636 +                                    <point x="4.291666666666664" y="17.708333333333334" cp1x="4.291666666666664" cp1y="17.708333333333334" cp2x="4.291666666666664" cp2y="17.708333333333334"/>
151.22637 +                                 </points>
151.22638 +                              </path>
151.22639 +                              <path>
151.22640 +                                 <gradient cycleMethod="NO_CYCLE">
151.22641 +                                    <stop position="0.0" midpoint="0.5">
151.22642 +                                       <matte red="143" green="169" blue="192" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-4.2033195E-4" saturationOffset="-0.38050595" brightnessOffset="0.20392156" alphaOffset="0"/>
151.22643 +                                    </stop>
151.22644 +                                    <stop position="0.2483871" midpoint="0.5">
151.22645 +                                       <matte red="84" green="123" blue="159" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0013483167" saturationOffset="-0.16401619" brightnessOffset="0.0745098" alphaOffset="0"/>
151.22646 +                                    </stop>
151.22647 +                                    <stop position="0.6032258" midpoint="0.5">
151.22648 +                                       <matte red="54" green="101" blue="142" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0010001659" saturationOffset="-0.01599598" brightnessOffset="0.007843137" alphaOffset="0"/>
151.22649 +                                    </stop>
151.22650 +                                    <stop position="0.7677419" midpoint="0.5">
151.22651 +                                       <matte red="51" green="98" blue="140" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.22652 +                                    </stop>
151.22653 +                                    <stop position="0.9419355" midpoint="0.5">
151.22654 +                                       <matte red="60" green="106" blue="149" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0018727183" saturationOffset="-0.038398862" brightnessOffset="0.035294116" alphaOffset="0"/>
151.22655 +                                    </stop>
151.22656 +                                 </gradient>
151.22657 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.22658 +                                 <points>
151.22659 +                                    <point x="1.0" y="20.0" cp1x="1.0" cp1y="20.0" cp2x="1.0" cp2y="20.0"/>
151.22660 +                                    <point x="1.0" y="6.0" cp1x="1.0" cp1y="9.555555555555554" cp2x="1.0" cp2y="2.4444444444444464"/>
151.22661 +                                    <point x="6.0" y="1.0" cp1x="2.555555555555557" cp1y="1.0" cp2x="9.444444444444443" cp2y="1.0"/>
151.22662 +                                    <point x="38.0" y="1.0" cp1x="34.66666666666666" cp1y="1.0" cp2x="41.33333333333334" cp2y="1.0"/>
151.22663 +                                    <point x="43.0" y="6.0" cp1x="43.0" cp1y="2.722222222222223" cp2x="43.0" cp2y="9.277777777777777"/>
151.22664 +                                    <point x="43.0" y="20.0" cp1x="43.0" cp1y="20.0" cp2x="43.0" cp2y="20.0"/>
151.22665 +                                 </points>
151.22666 +                              </path>
151.22667 +                              <path>
151.22668 +                                 <gradient cycleMethod="NO_CYCLE">
151.22669 +                                    <stop position="0.0" midpoint="0.5">
151.22670 +                                       <matte red="0" green="4" blue="27" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.06332368" saturationOffset="0.3642857" brightnessOffset="-0.4431373" alphaOffset="0"/>
151.22671 +                                    </stop>
151.22672 +                                    <stop position="1.0" midpoint="0.5">
151.22673 +                                       <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.22674 +                                    </stop>
151.22675 +                                 </gradient>
151.22676 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.22677 +                                 <points>
151.22678 +                                    <point x="0.0" y="5.0" cp1x="0.0" cp1y="8.0" cp2x="0.0" cp2y="2.0"/>
151.22679 +                                    <point x="5.0" y="0.0" cp1x="2.0" cp1y="0.0" cp2x="8.0" cp2y="0.0"/>
151.22680 +                                    <point x="39.0" y="0.0" cp1x="36.0" cp1y="0.0" cp2x="42.0" cp2y="0.0"/>
151.22681 +                                    <point x="44.0" y="5.0" cp1x="44.0" cp1y="2.0" cp2x="44.0" cp2y="8.0"/>
151.22682 +                                    <point x="44.0" y="20.0" cp1x="44.0" cp1y="20.0" cp2x="44.0" cp2y="20.0"/>
151.22683 +                                    <point x="0.0" y="20.0" cp1x="0.0" cp1y="20.0" cp2x="0.0" cp2y="20.0"/>
151.22684 +                                 </points>
151.22685 +                              </path>
151.22686 +                           </shapes>
151.22687 +                           <effects/>
151.22688 +                        </layer>
151.22689 +                        <templateLayer fileName="1140425bba6.png">
151.22690 +                           <layer name="Template" type="template">
151.22691 +                              <opacity>1.0</opacity>
151.22692 +                              <fillOpacity>1.0</fillOpacity>
151.22693 +                              <blendingMode>NORMAL</blendingMode>
151.22694 +                              <locked>false</locked>
151.22695 +                              <visible>false</visible>
151.22696 +                              <shapes/>
151.22697 +                              <effects/>
151.22698 +                           </layer>
151.22699 +                        </templateLayer>
151.22700 +                     </canvas>
151.22701 +                  </state>
151.22702 +               </backgroundStates>
151.22703 +               <foregroundStates/>
151.22704 +               <borderStates/>
151.22705 +               <regions/>
151.22706 +            </region>
151.22707 +            <region name="TabbedPaneTabArea" subregion="true">
151.22708 +               <contentMargins top="3" bottom="4" left="10" right="10"/>
151.22709 +               <style>
151.22710 +                  <textForeground/>
151.22711 +                  <textBackground/>
151.22712 +                  <background/>
151.22713 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.22714 +                  <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.22715 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.22716 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.22717 +                  <uiproperties/>
151.22718 +               </style>
151.22719 +               <backgroundStates>
151.22720 +                  <state stateKeys="Enabled">
151.22721 +                     <style>
151.22722 +                        <textForeground/>
151.22723 +                        <textBackground/>
151.22724 +                        <background/>
151.22725 +                        <uiproperties/>
151.22726 +                     </style>
151.22727 +                     <canvas>
151.22728 +                        <size width="5" height="24"/>
151.22729 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.22730 +                        <stretchingInsets top="0" bottom="6" left="5" right="5"/>
151.22731 +                        <layer name="Layer 1">
151.22732 +                           <opacity>1.0</opacity>
151.22733 +                           <fillOpacity>1.0</fillOpacity>
151.22734 +                           <blendingMode>NORMAL</blendingMode>
151.22735 +                           <locked>false</locked>
151.22736 +                           <visible>true</visible>
151.22737 +                           <shapes>
151.22738 +                              <rectangle x1="0.0" x2="5.0" y1="19.0" y2="24.0" rounding="0.0">
151.22739 +                                 <gradient cycleMethod="NO_CYCLE">
151.22740 +                                    <stop position="0.08387097" midpoint="0.5">
151.22741 +                                       <matte red="0" green="0" blue="18" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="0.3642857" brightnessOffset="-0.4784314" alphaOffset="0"/>
151.22742 +                                    </stop>
151.22743 +                                    <stop position="0.10967742" midpoint="0.5">
151.22744 +                                       <matte red="181" green="202" blue="221" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.45471883" brightnessOffset="0.31764704" alphaOffset="0"/>
151.22745 +                                    </stop>
151.22746 +                                    <stop position="0.7645161" midpoint="0.5">
151.22747 +                                       <matte red="192" green="213" blue="232" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4633005" brightnessOffset="0.3607843" alphaOffset="0"/>
151.22748 +                                    </stop>
151.22749 +                                    <stop position="0.7870968" midpoint="0.5">
151.22750 +                                       <matte red="0" green="0" blue="18" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="0.3642857" brightnessOffset="-0.4784314" alphaOffset="0"/>
151.22751 +                                    </stop>
151.22752 +                                 </gradient>
151.22753 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.22754 +                              </rectangle>
151.22755 +                              <rectangle x1="0.0" x2="0.0" y1="0.0" y2="0.0" rounding="0.0">
151.22756 +                                 <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.22757 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.22758 +                              </rectangle>
151.22759 +                           </shapes>
151.22760 +                           <effects/>
151.22761 +                        </layer>
151.22762 +                        <templateLayer fileName="11404091c22.png">
151.22763 +                           <layer name="Template" type="template">
151.22764 +                              <opacity>1.0</opacity>
151.22765 +                              <fillOpacity>1.0</fillOpacity>
151.22766 +                              <blendingMode>NORMAL</blendingMode>
151.22767 +                              <locked>false</locked>
151.22768 +                              <visible>true</visible>
151.22769 +                              <shapes/>
151.22770 +                              <effects/>
151.22771 +                           </layer>
151.22772 +                        </templateLayer>
151.22773 +                     </canvas>
151.22774 +                  </state>
151.22775 +                  <state stateKeys="Disabled">
151.22776 +                     <style>
151.22777 +                        <textForeground/>
151.22778 +                        <textBackground/>
151.22779 +                        <background/>
151.22780 +                        <uiproperties/>
151.22781 +                     </style>
151.22782 +                     <canvas>
151.22783 +                        <size width="5" height="24"/>
151.22784 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.22785 +                        <stretchingInsets top="0" bottom="6" left="5" right="5"/>
151.22786 +                        <layer name="Layer 1">
151.22787 +                           <opacity>1.0</opacity>
151.22788 +                           <fillOpacity>1.0</fillOpacity>
151.22789 +                           <blendingMode>NORMAL</blendingMode>
151.22790 +                           <locked>false</locked>
151.22791 +                           <visible>true</visible>
151.22792 +                           <shapes>
151.22793 +                              <rectangle x1="0.0" x2="5.0" y1="19.0" y2="24.0" rounding="0.0">
151.22794 +                                 <gradient cycleMethod="NO_CYCLE">
151.22795 +                                    <stop position="0.08387097" midpoint="0.5">
151.22796 +                                       <matte red="180" green="182" blue="190" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.05468172" saturationOffset="-0.58308274" brightnessOffset="0.19607842" alphaOffset="0"/>
151.22797 +                                    </stop>
151.22798 +                                    <stop position="0.10967742" midpoint="0.5">
151.22799 +                                       <matte red="181" green="202" blue="221" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.45471883" brightnessOffset="0.31764704" alphaOffset="0"/>
151.22800 +                                    </stop>
151.22801 +                                    <stop position="0.7645161" midpoint="0.5">
151.22802 +                                       <matte red="192" green="213" blue="232" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4633005" brightnessOffset="0.3607843" alphaOffset="0"/>
151.22803 +                                    </stop>
151.22804 +                                    <stop position="0.7870968" midpoint="0.5">
151.22805 +                                       <matte red="180" green="182" blue="190" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.05468172" saturationOffset="-0.58308274" brightnessOffset="0.19607842" alphaOffset="0"/>
151.22806 +                                    </stop>
151.22807 +                                 </gradient>
151.22808 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.22809 +                              </rectangle>
151.22810 +                           </shapes>
151.22811 +                           <effects/>
151.22812 +                        </layer>
151.22813 +                        <templateLayer fileName="11404091c22.png">
151.22814 +                           <layer name="Template" type="template">
151.22815 +                              <opacity>1.0</opacity>
151.22816 +                              <fillOpacity>1.0</fillOpacity>
151.22817 +                              <blendingMode>NORMAL</blendingMode>
151.22818 +                              <locked>false</locked>
151.22819 +                              <visible>true</visible>
151.22820 +                              <shapes/>
151.22821 +                              <effects/>
151.22822 +                           </layer>
151.22823 +                        </templateLayer>
151.22824 +                     </canvas>
151.22825 +                  </state>
151.22826 +                  <state stateKeys="Enabled+MouseOver">
151.22827 +                     <style>
151.22828 +                        <textForeground/>
151.22829 +                        <textBackground/>
151.22830 +                        <background/>
151.22831 +                        <uiproperties/>
151.22832 +                     </style>
151.22833 +                     <canvas>
151.22834 +                        <size width="5" height="24"/>
151.22835 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.22836 +                        <stretchingInsets top="0" bottom="6" left="5" right="5"/>
151.22837 +                        <layer name="Layer 1">
151.22838 +                           <opacity>1.0</opacity>
151.22839 +                           <fillOpacity>1.0</fillOpacity>
151.22840 +                           <blendingMode>NORMAL</blendingMode>
151.22841 +                           <locked>false</locked>
151.22842 +                           <visible>true</visible>
151.22843 +                           <shapes>
151.22844 +                              <rectangle x1="0.0" x2="5.0" y1="19.0" y2="24.0" rounding="0.0">
151.22845 +                                 <gradient cycleMethod="NO_CYCLE">
151.22846 +                                    <stop position="0.08387097" midpoint="0.5">
151.22847 +                                       <matte red="0" green="0" blue="0" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.57865167" saturationOffset="-0.6357143" brightnessOffset="-0.54901963" alphaOffset="0"/>
151.22848 +                                    </stop>
151.22849 +                                    <stop position="0.10967742" midpoint="0.5">
151.22850 +                                       <matte red="200" green="221" blue="240" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.4690476" brightnessOffset="0.39215684" alphaOffset="0"/>
151.22851 +                                    </stop>
151.22852 +                                    <stop position="0.7645161" midpoint="0.5">
151.22853 +                                       <matte red="211" green="232" blue="251" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="5.1498413E-4" saturationOffset="-0.47635174" brightnessOffset="0.4352941" alphaOffset="0"/>
151.22854 +                                    </stop>
151.22855 +                                    <stop position="0.7870968" midpoint="0.5">
151.22856 +                                       <matte red="0" green="0" blue="18" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="0.3642857" brightnessOffset="-0.4784314" alphaOffset="0"/>
151.22857 +                                    </stop>
151.22858 +                                 </gradient>
151.22859 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.22860 +                              </rectangle>
151.22861 +                           </shapes>
151.22862 +                           <effects/>
151.22863 +                        </layer>
151.22864 +                        <templateLayer fileName="1140418c3be.png">
151.22865 +                           <layer name="Template" type="template">
151.22866 +                              <opacity>1.0</opacity>
151.22867 +                              <fillOpacity>1.0</fillOpacity>
151.22868 +                              <blendingMode>NORMAL</blendingMode>
151.22869 +                              <locked>false</locked>
151.22870 +                              <visible>true</visible>
151.22871 +                              <shapes/>
151.22872 +                              <effects/>
151.22873 +                           </layer>
151.22874 +                        </templateLayer>
151.22875 +                     </canvas>
151.22876 +                  </state>
151.22877 +                  <state stateKeys="Enabled+Pressed">
151.22878 +                     <style>
151.22879 +                        <textForeground/>
151.22880 +                        <textBackground/>
151.22881 +                        <background/>
151.22882 +                        <uiproperties/>
151.22883 +                     </style>
151.22884 +                     <canvas>
151.22885 +                        <size width="5" height="24"/>
151.22886 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.22887 +                        <stretchingInsets top="0" bottom="6" left="5" right="5"/>
151.22888 +                        <layer name="Layer 1">
151.22889 +                           <opacity>1.0</opacity>
151.22890 +                           <fillOpacity>1.0</fillOpacity>
151.22891 +                           <blendingMode>NORMAL</blendingMode>
151.22892 +                           <locked>false</locked>
151.22893 +                           <visible>true</visible>
151.22894 +                           <shapes>
151.22895 +                              <rectangle x1="0.0" x2="5.0" y1="19.0" y2="24.0" rounding="0.0">
151.22896 +                                 <gradient cycleMethod="NO_CYCLE">
151.22897 +                                    <stop position="0.08387097" midpoint="0.5">
151.22898 +                                       <matte red="0" green="0" blue="18" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="0.3642857" brightnessOffset="-0.4784314" alphaOffset="0"/>
151.22899 +                                    </stop>
151.22900 +                                    <stop position="0.10967742" midpoint="0.5">
151.22901 +                                       <matte red="64" green="111" blue="153" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.05401492" brightnessOffset="0.05098039" alphaOffset="0"/>
151.22902 +                                    </stop>
151.22903 +                                    <stop position="0.7645161" midpoint="0.5">
151.22904 +                                       <matte red="75" green="122" blue="164" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.09303135" brightnessOffset="0.09411764" alphaOffset="0"/>
151.22905 +                                    </stop>
151.22906 +                                    <stop position="0.7870968" midpoint="0.5">
151.22907 +                                       <matte red="0" green="0" blue="18" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.08801502" saturationOffset="0.3642857" brightnessOffset="-0.4784314" alphaOffset="0"/>
151.22908 +                                    </stop>
151.22909 +                                 </gradient>
151.22910 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.22911 +                              </rectangle>
151.22912 +                           </shapes>
151.22913 +                           <effects/>
151.22914 +                        </layer>
151.22915 +                        <templateLayer fileName="1140419f9fa.png">
151.22916 +                           <layer name="Template" type="template">
151.22917 +                              <opacity>1.0</opacity>
151.22918 +                              <fillOpacity>1.0</fillOpacity>
151.22919 +                              <blendingMode>NORMAL</blendingMode>
151.22920 +                              <locked>false</locked>
151.22921 +                              <visible>true</visible>
151.22922 +                              <shapes/>
151.22923 +                              <effects/>
151.22924 +                           </layer>
151.22925 +                        </templateLayer>
151.22926 +                     </canvas>
151.22927 +                  </state>
151.22928 +               </backgroundStates>
151.22929 +               <foregroundStates/>
151.22930 +               <borderStates/>
151.22931 +               <regions/>
151.22932 +            </region>
151.22933 +            <region name="TabbedPaneContent" subregion="true">
151.22934 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.22935 +               <style>
151.22936 +                  <textForeground/>
151.22937 +                  <textBackground/>
151.22938 +                  <background/>
151.22939 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.22940 +                  <cacheMode>NO_CACHING</cacheMode>
151.22941 +                  <uiproperties/>
151.22942 +               </style>
151.22943 +               <backgroundStates>
151.22944 +                  <state stateKeys="Enabled">
151.22945 +                     <style>
151.22946 +                        <textForeground/>
151.22947 +                        <textBackground/>
151.22948 +                        <background/>
151.22949 +                        <uiproperties/>
151.22950 +                     </style>
151.22951 +                     <canvas>
151.22952 +                        <size width="18" height="15"/>
151.22953 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.22954 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.22955 +                        <layer name="Layer 1">
151.22956 +                           <opacity>1.0</opacity>
151.22957 +                           <fillOpacity>1.0</fillOpacity>
151.22958 +                           <blendingMode>NORMAL</blendingMode>
151.22959 +                           <locked>false</locked>
151.22960 +                           <visible>true</visible>
151.22961 +                           <shapes/>
151.22962 +                           <effects/>
151.22963 +                        </layer>
151.22964 +                     </canvas>
151.22965 +                  </state>
151.22966 +               </backgroundStates>
151.22967 +               <foregroundStates/>
151.22968 +               <borderStates/>
151.22969 +               <regions/>
151.22970 +            </region>
151.22971 +         </regions>
151.22972 +      </uiComponent>
151.22973 +      <uiComponent opaque="true" type="javax.swing.JTable" name="Table" ui="TableUI" subregion="false">
151.22974 +         <stateTypes/>
151.22975 +         <contentMargins top="0" bottom="0" left="0" right="0"/>
151.22976 +         <style>
151.22977 +            <textForeground>
151.22978 +               <matte red="35" green="35" blue="36" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.22979 +            </textForeground>
151.22980 +            <textBackground/>
151.22981 +            <background>
151.22982 +               <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.22983 +            </background>
151.22984 +            <inherit-textForeground>false</inherit-textForeground>
151.22985 +            <inherit-background>false</inherit-background>
151.22986 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.22987 +            <cacheMode>NO_CACHING</cacheMode>
151.22988 +            <uiproperties>
151.22989 +               <uiProperty name="showGrid" type="BOOLEAN" value="false"/>
151.22990 +               <uiProperty name="intercellSpacing" type="DIMENSION">
151.22991 +                  <dimension width="0" height="0"/>
151.22992 +               </uiProperty>
151.22993 +               <uiProperty name="alternateRowColor" type="COLOR">
151.22994 +                  <matte red="242" green="242" blue="242" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="-0.05098039" alphaOffset="0" uiResource="false"/>
151.22995 +               </uiProperty>
151.22996 +               <uiProperty name="rendererUseTableColors" type="BOOLEAN" value="true"/>
151.22997 +               <uiProperty name="rendererUseUIBorder" type="BOOLEAN" value="true"/>
151.22998 +               <uiProperty name="cellNoFocusBorder" type="BORDER">
151.22999 +                   <border type="empty" top="2" left="5" bottom="2" right="5"/>
151.23000 +               </uiProperty>
151.23001 +               <uiProperty name="focusCellHighlightBorder" type="BORDER">
151.23002 +                   <border type="painter" painter="Tree:TreeCell[Enabled+Focused].backgroundPainter" top="2" left="5" bottom="2" right="5" />
151.23003 +               </uiProperty>
151.23004 +               <uiProperty name="dropLineColor" type="COLOR">
151.23005 +                  <matte red="242" green="242" blue="242" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0" alphaOffset="0"/>
151.23006 +               </uiProperty>
151.23007 +               <uiProperty name="dropLineShortColor" type="COLOR">
151.23008 +                  <matte red="242" green="242" blue="242" alpha="255" uiDefaultParentName="nimbusOrange" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0" alphaOffset="0"/>
151.23009 +               </uiProperty>
151.23010 +            </uiproperties>
151.23011 +         </style>
151.23012 +         <backgroundStates>
151.23013 +            <state stateKeys="Enabled+Selected">
151.23014 +                <style>
151.23015 +                   <textForeground>
151.23016 +                      <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0" uiResource="false"/>
151.23017 +                   </textForeground>
151.23018 +                   <textBackground>
151.23019 +                      <matte red="57" green="105" blue="138" alpha="255" uiDefaultParentName="nimbusSelectionBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0" uiResource="false"/>
151.23020 +                   </textBackground>
151.23021 +                   <background/>
151.23022 +                   <inherit-textForeground>false</inherit-textForeground>
151.23023 +                   <inherit-textBackground>false</inherit-textBackground>
151.23024 +                   <uiproperties/>
151.23025 +                </style>
151.23026 +                <canvas>
151.23027 +                   <size width="100" height="30"/>
151.23028 +                   <nextLayerNameIndex>2</nextLayerNameIndex>
151.23029 +                   <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.23030 +                   <layer name="Layer 1">
151.23031 +                      <opacity>1.0</opacity>
151.23032 +                      <fillOpacity>1.0</fillOpacity>
151.23033 +                      <blendingMode>NORMAL</blendingMode>
151.23034 +                      <locked>false</locked>
151.23035 +                      <visible>true</visible>
151.23036 +                      <shapes/>
151.23037 +                      <effects/>
151.23038 +                   </layer>
151.23039 +                </canvas>
151.23040 +            </state>
151.23041 +            <state stateKeys="Disabled+Selected">
151.23042 +                <style>
151.23043 +                   <textForeground/>
151.23044 +                   <textBackground>
151.23045 +                       <matte red="57" green="105" blue="138" alpha="255" uiDefaultParentName="nimbusSelectionBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0" uiResource="false"/>
151.23046 +                   </textBackground>
151.23047 +                   <background/>
151.23048 +                   <inherit-textBackground>false</inherit-textBackground>
151.23049 +                   <uiproperties/>
151.23050 +                </style>
151.23051 +                <canvas>
151.23052 +                   <size width="100" height="30"/>
151.23053 +                   <nextLayerNameIndex>2</nextLayerNameIndex>
151.23054 +                   <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.23055 +                   <layer name="Layer 1">
151.23056 +                      <opacity>1.0</opacity>
151.23057 +                      <fillOpacity>1.0</fillOpacity>
151.23058 +                      <blendingMode>NORMAL</blendingMode>
151.23059 +                      <locked>false</locked>
151.23060 +                      <visible>true</visible>
151.23061 +                      <shapes/>
151.23062 +                      <effects/>
151.23063 +                   </layer>
151.23064 +                </canvas>
151.23065 +            </state>
151.23066 +         </backgroundStates>
151.23067 +         <foregroundStates/>
151.23068 +         <borderStates/>
151.23069 +         <regions>
151.23070 +            <uiComponent opaque="true" componentName="Table.cellRenderer" type="javax.swing.JLabel" name="Label" ui="LabelUI" subregion="true">
151.23071 +               <stateTypes/>
151.23072 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.23073 +               <style>
151.23074 +                  <textForeground/>
151.23075 +                  <textBackground/>
151.23076 +                  <background>
151.23077 +                     <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0" uiResource="false"/>
151.23078 +                  </background>
151.23079 +                  <inherit-background>false</inherit-background>
151.23080 +                  <uiproperties/>
151.23081 +               </style>
151.23082 +               <backgroundStates/>
151.23083 +               <foregroundStates/>
151.23084 +               <borderStates/>
151.23085 +               <regions/>
151.23086 +            </uiComponent>
151.23087 +         </regions>
151.23088 +      </uiComponent>
151.23089 +      <uiComponent opaque="true" type="javax.swing.table.JTableHeader" name="TableHeader" ui="TableHeaderUI" subregion="false">
151.23090 +         <stateTypes/>
151.23091 +         <contentMargins top="0" bottom="0" left="0" right="0"/>
151.23092 +         <style>
151.23093 +            <textForeground/>
151.23094 +            <textBackground/>
151.23095 +            <background/>
151.23096 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.23097 +            <cacheMode>NO_CACHING</cacheMode>
151.23098 +            <uiproperties>
151.23099 +                <uiProperty name="rightAlignSortArrow" type="BOOLEAN" value="true"/>
151.23100 +            </uiproperties>
151.23101 +         </style>
151.23102 +         <backgroundStates/>
151.23103 +         <foregroundStates/>
151.23104 +         <borderStates/>
151.23105 +         <regions>
151.23106 +            <uiIconRegion name="AscendingSortIcon" subregion="true" key="ascendingSortIcon" basicKey="Table.ascendingSortIcon">
151.23107 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.23108 +               <style>
151.23109 +                  <textForeground/>
151.23110 +                  <textBackground/>
151.23111 +                  <background/>
151.23112 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.23113 +                  <uiproperties/>
151.23114 +               </style>
151.23115 +               <backgroundStates>
151.23116 +                  <state stateKeys="Enabled">
151.23117 +                     <style>
151.23118 +                        <textForeground/>
151.23119 +                        <textBackground/>
151.23120 +                        <background/>
151.23121 +                        <uiproperties/>
151.23122 +                     </style>
151.23123 +                     <canvas>
151.23124 +                        <size width="7" height="7"/>
151.23125 +                        <nextLayerNameIndex>5</nextLayerNameIndex>
151.23126 +                        <stretchingInsets top="0" bottom="0" left="0" right="2"/>
151.23127 +                        <layer name="Button">
151.23128 +                           <opacity>1.0</opacity>
151.23129 +                           <fillOpacity>1.0</fillOpacity>
151.23130 +                           <blendingMode>NORMAL</blendingMode>
151.23131 +                           <locked>false</locked>
151.23132 +                           <visible>true</visible>
151.23133 +                           <shapes>
151.23134 +                              <path>
151.23135 +                                 <gradient cycleMethod="NO_CYCLE">
151.23136 +                                    <stop position="0.0" midpoint="0.5">
151.23137 +                                       <matte red="105" green="142" blue="180" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0057927966" saturationOffset="-0.21904764" brightnessOffset="0.15686274" alphaOffset="0"/>
151.23138 +                                    </stop>
151.23139 +                                    <stop position="1.0" midpoint="0.5">
151.23140 +                                       <matte red="53" green="104" blue="154" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0038565993" saturationOffset="0.02012986" brightnessOffset="0.054901958" alphaOffset="0"/>
151.23141 +                                    </stop>
151.23142 +                                 </gradient>
151.23143 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.23144 +                                 <points>
151.23145 +                                    <point x="0.0" y="7.0" cp1x="0.0" cp1y="7.0" cp2x="0.0" cp2y="7.0"/>
151.23146 +                                    <point x="3.5350877192982466" y="-0.008771929824561403" cp1x="3.5350877192982466" cp1y="-0.008771929824561403" cp2x="3.5350877192982466" cp2y="-0.008771929824561403"/>
151.23147 +                                    <point x="7.0" y="7.0" cp1x="7.0" cp1y="7.0" cp2x="7.0" cp2y="7.0"/>
151.23148 +                                 </points>
151.23149 +                              </path>
151.23150 +                           </shapes>
151.23151 +                           <effects/>
151.23152 +                        </layer>
151.23153 +                        <templateLayer fileName="11423a6c52f.png">
151.23154 +                           <layer name="Template" type="template">
151.23155 +                              <opacity>1.0</opacity>
151.23156 +                              <fillOpacity>1.0</fillOpacity>
151.23157 +                              <blendingMode>NORMAL</blendingMode>
151.23158 +                              <locked>false</locked>
151.23159 +                              <visible>false</visible>
151.23160 +                              <shapes/>
151.23161 +                              <effects/>
151.23162 +                           </layer>
151.23163 +                        </templateLayer>
151.23164 +                     </canvas>
151.23165 +                  </state>
151.23166 +               </backgroundStates>
151.23167 +               <foregroundStates/>
151.23168 +               <borderStates/>
151.23169 +               <regions/>
151.23170 +            </uiIconRegion>
151.23171 +            <uiIconRegion name="DescendingSortIcon" subregion="true" key="descendingSortIcon" basicKey="Table.descendingSortIcon">
151.23172 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.23173 +               <style>
151.23174 +                  <textForeground/>
151.23175 +                  <textBackground/>
151.23176 +                  <background/>
151.23177 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.23178 +                  <uiproperties/>
151.23179 +               </style>
151.23180 +               <backgroundStates>
151.23181 +                  <state stateKeys="Enabled">
151.23182 +                     <style>
151.23183 +                        <textForeground/>
151.23184 +                        <textBackground/>
151.23185 +                        <background/>
151.23186 +                        <uiproperties/>
151.23187 +                     </style>
151.23188 +                     <canvas>
151.23189 +                        <size width="7" height="7"/>
151.23190 +                        <nextLayerNameIndex>5</nextLayerNameIndex>
151.23191 +                        <stretchingInsets top="0" bottom="0" left="0" right="0"/>
151.23192 +                        <layer name="Button">
151.23193 +                           <opacity>1.0</opacity>
151.23194 +                           <fillOpacity>1.0</fillOpacity>
151.23195 +                           <blendingMode>NORMAL</blendingMode>
151.23196 +                           <locked>false</locked>
151.23197 +                           <visible>true</visible>
151.23198 +                           <shapes>
151.23199 +                              <path>
151.23200 +                                 <gradient cycleMethod="NO_CYCLE">
151.23201 +                                    <stop position="0.0" midpoint="0.5">
151.23202 +                                       <matte red="105" green="142" blue="180" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0057927966" saturationOffset="-0.21904764" brightnessOffset="0.15686274" alphaOffset="0"/>
151.23203 +                                    </stop>
151.23204 +                                    <stop position="1.0" midpoint="0.5">
151.23205 +                                       <matte red="53" green="104" blue="154" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0038565993" saturationOffset="0.02012986" brightnessOffset="0.054901958" alphaOffset="0"/>
151.23206 +                                    </stop>
151.23207 +                                 </gradient>
151.23208 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.23209 +                                 <points>
151.23210 +                                    <point x="0.0" y="0.0" cp1x="0.0" cp1y="0.0" cp2x="0.0" cp2y="0.0"/>
151.23211 +                                    <point x="7.0" y="0.0" cp1x="7.0" cp1y="0.0" cp2x="7.0" cp2y="0.0"/>
151.23212 +                                    <point x="3.5175438596491224" y="7.0" cp1x="3.5175438596491224" cp1y="7.0" cp2x="3.5175438596491224" cp2y="7.0"/>
151.23213 +                                 </points>
151.23214 +                              </path>
151.23215 +                           </shapes>
151.23216 +                           <effects/>
151.23217 +                        </layer>
151.23218 +                        <templateLayer fileName="11423ac362a.png">
151.23219 +                           <layer name="Template" type="template">
151.23220 +                              <opacity>1.0</opacity>
151.23221 +                              <fillOpacity>1.0</fillOpacity>
151.23222 +                              <blendingMode>NORMAL</blendingMode>
151.23223 +                              <locked>false</locked>
151.23224 +                              <visible>false</visible>
151.23225 +                              <shapes/>
151.23226 +                              <effects/>
151.23227 +                           </layer>
151.23228 +                        </templateLayer>
151.23229 +                     </canvas>
151.23230 +                  </state>
151.23231 +               </backgroundStates>
151.23232 +               <foregroundStates/>
151.23233 +               <borderStates/>
151.23234 +               <regions/>
151.23235 +            </uiIconRegion>
151.23236 +            <uiComponent opaque="true" componentName="TableHeader.renderer" type="javax.swing.JLabel" name="Label" ui="LabelUI" subregion="true">
151.23237 +               <stateTypes>
151.23238 +                  <stateType key="Enabled"/>
151.23239 +                  <stateType key="MouseOver"/>
151.23240 +                  <stateType key="Pressed"/>
151.23241 +                  <stateType key="Disabled"/>
151.23242 +                  <stateType key="Focused"/>
151.23243 +                  <stateType key="Selected"/>
151.23244 +                  <stateType key="Sorted">
151.23245 +                     <codeSnippet><![CDATA[
151.23246 +                    String sortOrder = (String)c.getClientProperty("Table.sortOrder");
151.23247 +                    return  sortOrder != null && ("ASCENDING".equals(sortOrder) || "DESCENDING".equals(sortOrder)); ]]></codeSnippet>
151.23248 +                  </stateType>
151.23249 +               </stateTypes>
151.23250 +               <contentMargins top="2" bottom="4" left="5" right="5"/>
151.23251 +               <style>
151.23252 +                  <textForeground/>
151.23253 +                  <textBackground/>
151.23254 +                  <background/>
151.23255 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.23256 +                  <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.23257 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.23258 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.23259 +                  <uiproperties/>
151.23260 +               </style>
151.23261 +               <backgroundStates>
151.23262 +                  <state stateKeys="Disabled">
151.23263 +                     <style>
151.23264 +                        <textForeground/>
151.23265 +                        <textBackground/>
151.23266 +                        <background/>
151.23267 +                        <uiproperties/>
151.23268 +                     </style>
151.23269 +                     <canvas>
151.23270 +                        <size width="22" height="20"/>
151.23271 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.23272 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.23273 +                        <layer name="Layer 1">
151.23274 +                           <opacity>1.0</opacity>
151.23275 +                           <fillOpacity>1.0</fillOpacity>
151.23276 +                           <blendingMode>NORMAL</blendingMode>
151.23277 +                           <locked>false</locked>
151.23278 +                           <visible>true</visible>
151.23279 +                           <shapes>
151.23280 +                              <rectangle x1="0.0" x2="21.0" y1="0.0" y2="19.0" rounding="0.0">
151.23281 +                                 <gradient cycleMethod="NO_CYCLE">
151.23282 +                                    <stop position="0.0" midpoint="0.24742268">
151.23283 +                                       <matte red="251" green="251" blue="252" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10655806" brightnessOffset="0.24313724" alphaOffset="0"/>
151.23284 +                                    </stop>
151.23285 +                                    <stop position="0.2888889" midpoint="0.6272727">
151.23286 +                                       <matte red="225" green="227" blue="231" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.08455229" brightnessOffset="0.1607843" alphaOffset="0"/>
151.23287 +                                    </stop>
151.23288 +                                    <stop position="0.7037037" midpoint="0.5">
151.23289 +                                       <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
151.23290 +                                    </stop>
151.23291 +                                    <stop position="1.0" midpoint="0.5">
151.23292 +                                       <matte red="242" green="245" blue="251" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07466974" brightnessOffset="0.23921567" alphaOffset="0"/>
151.23293 +                                    </stop>
151.23294 +                                 </gradient>
151.23295 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.23296 +                              </rectangle>
151.23297 +                              <rectangle x1="21.0" x2="22.0" y1="0.0" y2="19.0" rounding="0.0">
151.23298 +                                 <gradient cycleMethod="NO_CYCLE">
151.23299 +                                    <stop position="0.0" midpoint="0.33043477">
151.23300 +                                       <matte red="201" green="203" blue="206" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.01111114" saturationOffset="-0.08625447" brightnessOffset="0.062745094" alphaOffset="0"/>
151.23301 +                                    </stop>
151.23302 +                                    <stop position="0.43703705" midpoint="0.5">
151.23303 +                                       <matte red="134" green="139" blue="146" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.013888836" saturationOffset="-0.028334536" brightnessOffset="-0.17254901" alphaOffset="0"/>
151.23304 +                                    </stop>
151.23305 +                                    <stop position="0.75185186" midpoint="0.5">
151.23306 +                                       <matte red="136" green="141" blue="148" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.013888836" saturationOffset="-0.029445238" brightnessOffset="-0.16470587" alphaOffset="0"/>
151.23307 +                                    </stop>
151.23308 +                                    <stop position="1.0" midpoint="0.5">
151.23309 +                                       <matte red="182" green="187" blue="193" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.02020204" saturationOffset="-0.053531498" brightnessOffset="0.011764705" alphaOffset="0"/>
151.23310 +                                    </stop>
151.23311 +                                 </gradient>
151.23312 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.23313 +                              </rectangle>
151.23314 +                              <rectangle x1="0.0" x2="22.0" y1="19.0" y2="20.0" rounding="0.0">
151.23315 +                                 <matte red="116" green="121" blue="128" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="-0.013888836" saturationOffset="5.823001E-4" brightnessOffset="-0.12941176" alphaOffset="0"/>
151.23316 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.23317 +                              </rectangle>
151.23318 +                           </shapes>
151.23319 +                           <effects/>
151.23320 +                        </layer>
151.23321 +                     </canvas>
151.23322 +                  </state>
151.23323 +                  <state stateKeys="Enabled">
151.23324 +                     <style>
151.23325 +                        <textForeground/>
151.23326 +                        <textBackground/>
151.23327 +                        <background/>
151.23328 +                        <uiproperties/>
151.23329 +                     </style>
151.23330 +                     <canvas>
151.23331 +                        <size width="22" height="20"/>
151.23332 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.23333 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.23334 +                        <layer name="Layer 1">
151.23335 +                           <opacity>1.0</opacity>
151.23336 +                           <fillOpacity>1.0</fillOpacity>
151.23337 +                           <blendingMode>NORMAL</blendingMode>
151.23338 +                           <locked>false</locked>
151.23339 +                           <visible>true</visible>
151.23340 +                           <shapes>
151.23341 +                              <rectangle x1="0.0" x2="21.0" y1="0.0" y2="19.0" rounding="0.0">
151.23342 +                                 <gradient cycleMethod="NO_CYCLE">
151.23343 +                                    <stop position="0.0" midpoint="0.24742268">
151.23344 +                                       <matte red="251" green="251" blue="252" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10655806" brightnessOffset="0.24313724" alphaOffset="0"/>
151.23345 +                                    </stop>
151.23346 +                                    <stop position="0.2888889" midpoint="0.6272727">
151.23347 +                                       <matte red="225" green="227" blue="231" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.08455229" brightnessOffset="0.1607843" alphaOffset="0"/>
151.23348 +                                    </stop>
151.23349 +                                    <stop position="0.7037037" midpoint="0.5">
151.23350 +                                       <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
151.23351 +                                    </stop>
151.23352 +                                    <stop position="1.0" midpoint="0.5">
151.23353 +                                       <matte red="242" green="245" blue="251" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07466974" brightnessOffset="0.23921567" alphaOffset="0"/>
151.23354 +                                    </stop>
151.23355 +                                 </gradient>
151.23356 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.23357 +                              </rectangle>
151.23358 +                              <rectangle x1="21.0" x2="22.0" y1="0.0" y2="19.0" rounding="0.0">
151.23359 +                                 <gradient cycleMethod="NO_CYCLE">
151.23360 +                                    <stop position="0.0" midpoint="0.33043477">
151.23361 +                                       <matte red="201" green="203" blue="206" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.01111114" saturationOffset="-0.08625447" brightnessOffset="0.062745094" alphaOffset="0"/>
151.23362 +                                    </stop>
151.23363 +                                    <stop position="0.43703705" midpoint="0.5">
151.23364 +                                       <matte red="134" green="139" blue="146" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.013888836" saturationOffset="-0.028334536" brightnessOffset="-0.17254901" alphaOffset="0"/>
151.23365 +                                    </stop>
151.23366 +                                    <stop position="0.75185186" midpoint="0.5">
151.23367 +                                       <matte red="136" green="141" blue="148" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.013888836" saturationOffset="-0.029445238" brightnessOffset="-0.16470587" alphaOffset="0"/>
151.23368 +                                    </stop>
151.23369 +                                    <stop position="1.0" midpoint="0.5">
151.23370 +                                       <matte red="182" green="187" blue="193" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.02020204" saturationOffset="-0.053531498" brightnessOffset="0.011764705" alphaOffset="0"/>
151.23371 +                                    </stop>
151.23372 +                                 </gradient>
151.23373 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.23374 +                              </rectangle>
151.23375 +                              <rectangle x1="0.0" x2="22.0" y1="19.0" y2="20.0" rounding="0.0">
151.23376 +                                 <matte red="116" green="121" blue="128" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="-0.013888836" saturationOffset="5.823001E-4" brightnessOffset="-0.12941176" alphaOffset="0"/>
151.23377 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.23378 +                              </rectangle>
151.23379 +                           </shapes>
151.23380 +                           <effects/>
151.23381 +                        </layer>
151.23382 +                        <templateLayer fileName="114235956c5.png">
151.23383 +                           <layer name="Template" type="template">
151.23384 +                              <opacity>1.0</opacity>
151.23385 +                              <fillOpacity>1.0</fillOpacity>
151.23386 +                              <blendingMode>NORMAL</blendingMode>
151.23387 +                              <locked>false</locked>
151.23388 +                              <visible>true</visible>
151.23389 +                              <shapes/>
151.23390 +                              <effects/>
151.23391 +                           </layer>
151.23392 +                        </templateLayer>
151.23393 +                     </canvas>
151.23394 +                  </state>
151.23395 +                  <state stateKeys="Enabled+Focused">
151.23396 +                     <style>
151.23397 +                        <textForeground/>
151.23398 +                        <textBackground/>
151.23399 +                        <background/>
151.23400 +                        <uiproperties/>
151.23401 +                     </style>
151.23402 +                     <canvas>
151.23403 +                        <size width="22" height="20"/>
151.23404 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.23405 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.23406 +                        <layer name="Layer 1">
151.23407 +                           <opacity>1.0</opacity>
151.23408 +                           <fillOpacity>1.0</fillOpacity>
151.23409 +                           <blendingMode>NORMAL</blendingMode>
151.23410 +                           <locked>false</locked>
151.23411 +                           <visible>true</visible>
151.23412 +                           <shapes>
151.23413 +                              <path>
151.23414 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.23415 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.23416 +                                 <points>
151.23417 +                                   <point x="0" y="0" cp1x="0" cp1y="0" cp2x="0" cp2y="0"/>
151.23418 +                                   <point x="0" y="20" cp1x="0" cp1y="20" cp2x="0" cp2y="20"/>
151.23419 +                                   <point x="22" y="20" cp1x="22" cp1y="20" cp2x="22" cp2y="20"/>
151.23420 +                                   <point x="22" y="0" cp1x="22" cp1y="0" cp2x="22" cp2y="0"/>
151.23421 +                                   <point x="1.2" y="0" cp1x="1.2" cp1y="0" cp2x="1.2" cp2y="0"/>
151.23422 +                                   <point x="1.2" y="1.2" cp1x="1.2" cp1y="1.2" cp2x="1.2" cp2y="1.2"/>
151.23423 +                                   <point x="20.8" y="1.2" cp1x="20.8" cp1y="1.2" cp2x="20.8" cp2y="1.2"/>
151.23424 +                                   <point x="20.8" y="18.8" cp1x="20.8" cp1y="18.8" cp2x="20.8" cp2y="18.8"/>
151.23425 +                                   <point x="1.2" y="18.8" cp1x="1.2" cp1y="18.8" cp2x="1.2" cp2y="18.8"/>
151.23426 +                                   <point x="1.2" y="0" cp1x="1.2" cp1y="0" cp2x="1.2" cp2y="0"/>
151.23427 +                                </points>
151.23428 +                              </path>
151.23429 +                              <rectangle x1="0.0" x2="21.0" y1="0.0" y2="19.0" rounding="0.0">
151.23430 +                                 <gradient cycleMethod="NO_CYCLE">
151.23431 +                                    <stop position="0.0" midpoint="0.24742268">
151.23432 +                                       <matte red="251" green="251" blue="252" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10655806" brightnessOffset="0.24313724" alphaOffset="0"/>
151.23433 +                                    </stop>
151.23434 +                                    <stop position="0.2888889" midpoint="0.6272727">
151.23435 +                                       <matte red="225" green="227" blue="231" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.08455229" brightnessOffset="0.1607843" alphaOffset="0"/>
151.23436 +                                    </stop>
151.23437 +                                    <stop position="0.7037037" midpoint="0.5">
151.23438 +                                       <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
151.23439 +                                    </stop>
151.23440 +                                    <stop position="1.0" midpoint="0.5">
151.23441 +                                       <matte red="242" green="245" blue="251" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07466974" brightnessOffset="0.23921567" alphaOffset="0"/>
151.23442 +                                    </stop>
151.23443 +                                 </gradient>
151.23444 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.23445 +                              </rectangle>
151.23446 +                              <rectangle x1="21.0" x2="22.0" y1="0.0" y2="19.0" rounding="0.0">
151.23447 +                                 <gradient cycleMethod="NO_CYCLE">
151.23448 +                                    <stop position="0.0" midpoint="0.33043477">
151.23449 +                                       <matte red="201" green="203" blue="206" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.01111114" saturationOffset="-0.08625447" brightnessOffset="0.062745094" alphaOffset="0"/>
151.23450 +                                    </stop>
151.23451 +                                    <stop position="0.43703705" midpoint="0.5">
151.23452 +                                       <matte red="134" green="139" blue="146" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.013888836" saturationOffset="-0.028334536" brightnessOffset="-0.17254901" alphaOffset="0"/>
151.23453 +                                    </stop>
151.23454 +                                    <stop position="0.75185186" midpoint="0.5">
151.23455 +                                       <matte red="136" green="141" blue="148" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.013888836" saturationOffset="-0.029445238" brightnessOffset="-0.16470587" alphaOffset="0"/>
151.23456 +                                    </stop>
151.23457 +                                    <stop position="1.0" midpoint="0.5">
151.23458 +                                       <matte red="182" green="187" blue="193" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.02020204" saturationOffset="-0.053531498" brightnessOffset="0.011764705" alphaOffset="0"/>
151.23459 +                                    </stop>
151.23460 +                                 </gradient>
151.23461 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.23462 +                              </rectangle>
151.23463 +                              <rectangle x1="0.0" x2="22.0" y1="19.0" y2="20.0" rounding="0.0">
151.23464 +                                 <matte red="116" green="121" blue="128" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="-0.013888836" saturationOffset="5.823001E-4" brightnessOffset="-0.12941176" alphaOffset="0"/>
151.23465 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.23466 +                              </rectangle>
151.23467 +                           </shapes>
151.23468 +                           <effects/>
151.23469 +                        </layer>
151.23470 +                     </canvas>
151.23471 +                  </state>
151.23472 +                  <state stateKeys="MouseOver">
151.23473 +                     <style>
151.23474 +                        <textForeground/>
151.23475 +                        <textBackground/>
151.23476 +                        <background/>
151.23477 +                        <uiproperties/>
151.23478 +                     </style>
151.23479 +                     <canvas>
151.23480 +                        <size width="22" height="20"/>
151.23481 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.23482 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.23483 +                        <layer name="Layer 1">
151.23484 +                           <opacity>1.0</opacity>
151.23485 +                           <fillOpacity>1.0</fillOpacity>
151.23486 +                           <blendingMode>NORMAL</blendingMode>
151.23487 +                           <locked>false</locked>
151.23488 +                           <visible>true</visible>
151.23489 +                           <shapes>
151.23490 +                              <rectangle x1="0.0" x2="21.0" y1="0.0" y2="19.0" rounding="0.0">
151.23491 +                                 <gradient cycleMethod="NO_CYCLE">
151.23492 +                                    <stop position="0.0" midpoint="0.24742268">
151.23493 +                                       <matte red="253" green="253" blue="254" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10658931" brightnessOffset="0.25098038" alphaOffset="0"/>
151.23494 +                                    </stop>
151.23495 +                                    <stop position="0.2888889" midpoint="0.6272727">
151.23496 +                                       <matte red="240" green="242" blue="246" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.08613607" brightnessOffset="0.21960783" alphaOffset="0"/>
151.23497 +                                    </stop>
151.23498 +                                    <stop position="0.7037037" midpoint="0.5">
151.23499 +                                       <matte red="233" green="236" blue="242" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07333623" brightnessOffset="0.20392156" alphaOffset="0"/>
151.23500 +                                    </stop>
151.23501 +                                    <stop position="0.88013697" midpoint="0.5">
151.23502 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.23503 +                                    </stop>
151.23504 +                                 </gradient>
151.23505 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.23506 +                              </rectangle>
151.23507 +                              <rectangle x1="21.0" x2="22.0" y1="0.0" y2="19.0" rounding="0.0">
151.23508 +                                 <gradient cycleMethod="NO_CYCLE">
151.23509 +                                    <stop position="0.0" midpoint="0.33043477">
151.23510 +                                       <matte red="201" green="203" blue="206" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.01111114" saturationOffset="-0.08625447" brightnessOffset="0.062745094" alphaOffset="0"/>
151.23511 +                                    </stop>
151.23512 +                                    <stop position="0.43703705" midpoint="0.5">
151.23513 +                                       <matte red="134" green="139" blue="146" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.013888836" saturationOffset="-0.028334536" brightnessOffset="-0.17254901" alphaOffset="0"/>
151.23514 +                                    </stop>
151.23515 +                                    <stop position="0.75185186" midpoint="0.5">
151.23516 +                                       <matte red="136" green="141" blue="148" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.013888836" saturationOffset="-0.029445238" brightnessOffset="-0.16470587" alphaOffset="0"/>
151.23517 +                                    </stop>
151.23518 +                                    <stop position="1.0" midpoint="0.5">
151.23519 +                                       <matte red="182" green="187" blue="193" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.02020204" saturationOffset="-0.053531498" brightnessOffset="0.011764705" alphaOffset="0"/>
151.23520 +                                    </stop>
151.23521 +                                 </gradient>
151.23522 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.23523 +                              </rectangle>
151.23524 +                              <rectangle x1="0.0" x2="22.0" y1="19.0" y2="20.0" rounding="0.0">
151.23525 +                                 <matte red="116" green="121" blue="128" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="-0.013888836" saturationOffset="5.823001E-4" brightnessOffset="-0.12941176" alphaOffset="0"/>
151.23526 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.23527 +                              </rectangle>
151.23528 +                           </shapes>
151.23529 +                           <effects/>
151.23530 +                        </layer>
151.23531 +                        <templateLayer fileName="114235b929b.png">
151.23532 +                           <layer name="Template" type="template">
151.23533 +                              <opacity>1.0</opacity>
151.23534 +                              <fillOpacity>1.0</fillOpacity>
151.23535 +                              <blendingMode>NORMAL</blendingMode>
151.23536 +                              <locked>false</locked>
151.23537 +                              <visible>true</visible>
151.23538 +                              <shapes/>
151.23539 +                              <effects/>
151.23540 +                           </layer>
151.23541 +                        </templateLayer>
151.23542 +                     </canvas>
151.23543 +                  </state>
151.23544 +                  <state stateKeys="Pressed">
151.23545 +                     <style>
151.23546 +                        <textForeground/>
151.23547 +                        <textBackground/>
151.23548 +                        <background/>
151.23549 +                        <uiproperties/>
151.23550 +                     </style>
151.23551 +                     <canvas>
151.23552 +                        <size width="22" height="20"/>
151.23553 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.23554 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.23555 +                        <layer name="Layer 1">
151.23556 +                           <opacity>1.0</opacity>
151.23557 +                           <fillOpacity>1.0</fillOpacity>
151.23558 +                           <blendingMode>NORMAL</blendingMode>
151.23559 +                           <locked>false</locked>
151.23560 +                           <visible>true</visible>
151.23561 +                           <shapes>
151.23562 +                              <rectangle x1="0.0" x2="21.0" y1="0.0" y2="19.0" rounding="0.0">
151.23563 +                                 <gradient cycleMethod="NO_CYCLE">
151.23564 +                                    <stop position="0.0" midpoint="0.24742268">
151.23565 +                                       <matte red="205" green="209" blue="216" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.00505054" saturationOffset="-0.05960039" brightnessOffset="0.10196078" alphaOffset="0"/>
151.23566 +                                    </stop>
151.23567 +                                    <stop position="0.2888889" midpoint="0.6272727">
151.23568 +                                       <matte red="176" green="182" blue="194" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.017742813" brightnessOffset="0.015686274" alphaOffset="0"/>
151.23569 +                                    </stop>
151.23570 +                                    <stop position="0.7037037" midpoint="0.5">
151.23571 +                                       <matte red="164" green="171" blue="184" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0027777553" saturationOffset="-0.0018306673" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.23572 +                                    </stop>
151.23573 +                                    <stop position="1.0" midpoint="0.5">
151.23574 +                                       <matte red="202" green="208" blue="222" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.020436227" brightnessOffset="0.12549019" alphaOffset="0"/>
151.23575 +                                    </stop>
151.23576 +                                 </gradient>
151.23577 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.23578 +                              </rectangle>
151.23579 +                              <rectangle x1="21.0" x2="22.0" y1="0.0" y2="19.0" rounding="0.0">
151.23580 +                                 <gradient cycleMethod="NO_CYCLE">
151.23581 +                                    <stop position="0.0" midpoint="0.33043477">
151.23582 +                                       <matte red="201" green="203" blue="206" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.01111114" saturationOffset="-0.08625447" brightnessOffset="0.062745094" alphaOffset="0"/>
151.23583 +                                    </stop>
151.23584 +                                    <stop position="0.43703705" midpoint="0.5">
151.23585 +                                       <matte red="134" green="139" blue="146" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.013888836" saturationOffset="-0.028334536" brightnessOffset="-0.17254901" alphaOffset="0"/>
151.23586 +                                    </stop>
151.23587 +                                    <stop position="0.75185186" midpoint="0.5">
151.23588 +                                       <matte red="136" green="141" blue="148" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.013888836" saturationOffset="-0.029445238" brightnessOffset="-0.16470587" alphaOffset="0"/>
151.23589 +                                    </stop>
151.23590 +                                    <stop position="1.0" midpoint="0.5">
151.23591 +                                       <matte red="182" green="187" blue="193" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.02020204" saturationOffset="-0.053531498" brightnessOffset="0.011764705" alphaOffset="0"/>
151.23592 +                                    </stop>
151.23593 +                                 </gradient>
151.23594 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.23595 +                              </rectangle>
151.23596 +                              <rectangle x1="0.0" x2="22.0" y1="19.0" y2="20.0" rounding="0.0">
151.23597 +                                 <matte red="116" green="121" blue="128" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="-0.013888836" saturationOffset="5.823001E-4" brightnessOffset="-0.12941176" alphaOffset="0"/>
151.23598 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.23599 +                              </rectangle>
151.23600 +                           </shapes>
151.23601 +                           <effects/>
151.23602 +                        </layer>
151.23603 +                        <templateLayer fileName="11423668ee0.png">
151.23604 +                           <layer name="Template" type="template">
151.23605 +                              <opacity>1.0</opacity>
151.23606 +                              <fillOpacity>1.0</fillOpacity>
151.23607 +                              <blendingMode>NORMAL</blendingMode>
151.23608 +                              <locked>false</locked>
151.23609 +                              <visible>true</visible>
151.23610 +                              <shapes/>
151.23611 +                              <effects/>
151.23612 +                           </layer>
151.23613 +                        </templateLayer>
151.23614 +                     </canvas>
151.23615 +                  </state>
151.23616 +                  <state stateKeys="Enabled+Sorted">
151.23617 +                     <style>
151.23618 +                        <textForeground/>
151.23619 +                        <textBackground/>
151.23620 +                        <background/>
151.23621 +                        <uiproperties/>
151.23622 +                     </style>
151.23623 +                     <canvas>
151.23624 +                        <size width="22" height="20"/>
151.23625 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.23626 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.23627 +                        <layer name="Layer 1">
151.23628 +                           <opacity>1.0</opacity>
151.23629 +                           <fillOpacity>1.0</fillOpacity>
151.23630 +                           <blendingMode>NORMAL</blendingMode>
151.23631 +                           <locked>false</locked>
151.23632 +                           <visible>true</visible>
151.23633 +                           <shapes>
151.23634 +                              <rectangle x1="0.0" x2="21.0" y1="0.0" y2="19.0" rounding="0.0">
151.23635 +                                 <gradient cycleMethod="NO_CYCLE">
151.23636 +                                    <stop position="0.0" midpoint="0.24742268">
151.23637 +                                       <matte red="248" green="250" blue="251" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.023096085" saturationOffset="-0.62376213" brightnessOffset="0.4352941" alphaOffset="0"/>
151.23638 +                                    </stop>
151.23639 +                                    <stop position="0.32534248" midpoint="0.6272727">
151.23640 +                                       <matte red="193" green="208" blue="221" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0012707114" saturationOffset="-0.50901747" brightnessOffset="0.31764704" alphaOffset="0"/>
151.23641 +                                    </stop>
151.23642 +                                    <stop position="0.7037037" midpoint="0.5">
151.23643 +                                       <matte red="178" green="197" blue="213" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.002461195" saturationOffset="-0.47139505" brightnessOffset="0.2862745" alphaOffset="0"/>
151.23644 +                                    </stop>
151.23645 +                                    <stop position="0.97602737" midpoint="0.5">
151.23646 +                                       <matte red="201" green="220" blue="235" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.0051222444" saturationOffset="-0.49103343" brightnessOffset="0.372549" alphaOffset="0"/>
151.23647 +                                    </stop>
151.23648 +                                 </gradient>
151.23649 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.23650 +                              </rectangle>
151.23651 +                              <rectangle x1="21.0" x2="22.0" y1="0.0" y2="19.0" rounding="0.0">
151.23652 +                                 <gradient cycleMethod="NO_CYCLE">
151.23653 +                                    <stop position="0.0" midpoint="0.33043477">
151.23654 +                                       <matte red="201" green="203" blue="206" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.01111114" saturationOffset="-0.08625447" brightnessOffset="0.062745094" alphaOffset="0"/>
151.23655 +                                    </stop>
151.23656 +                                    <stop position="0.43703705" midpoint="0.5">
151.23657 +                                       <matte red="134" green="139" blue="146" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.013888836" saturationOffset="-0.028334536" brightnessOffset="-0.17254901" alphaOffset="0"/>
151.23658 +                                    </stop>
151.23659 +                                    <stop position="0.75185186" midpoint="0.5">
151.23660 +                                       <matte red="136" green="141" blue="148" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.013888836" saturationOffset="-0.029445238" brightnessOffset="-0.16470587" alphaOffset="0"/>
151.23661 +                                    </stop>
151.23662 +                                    <stop position="1.0" midpoint="0.5">
151.23663 +                                       <matte red="182" green="187" blue="193" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.02020204" saturationOffset="-0.053531498" brightnessOffset="0.011764705" alphaOffset="0"/>
151.23664 +                                    </stop>
151.23665 +                                 </gradient>
151.23666 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.23667 +                              </rectangle>
151.23668 +                              <rectangle x1="0.0" x2="22.0" y1="19.0" y2="20.0" rounding="0.0">
151.23669 +                                 <matte red="116" green="121" blue="128" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="-0.013888836" saturationOffset="5.823001E-4" brightnessOffset="-0.12941176" alphaOffset="0"/>
151.23670 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.23671 +                              </rectangle>
151.23672 +                           </shapes>
151.23673 +                           <effects/>
151.23674 +                        </layer>
151.23675 +                        <templateLayer fileName="11423677dfd.png">
151.23676 +                           <layer name="Template" type="template">
151.23677 +                              <opacity>1.0</opacity>
151.23678 +                              <fillOpacity>1.0</fillOpacity>
151.23679 +                              <blendingMode>NORMAL</blendingMode>
151.23680 +                              <locked>false</locked>
151.23681 +                              <visible>true</visible>
151.23682 +                              <shapes/>
151.23683 +                              <effects/>
151.23684 +                           </layer>
151.23685 +                        </templateLayer>
151.23686 +                     </canvas>
151.23687 +                  </state>
151.23688 +                  <state stateKeys="Enabled+Focused+Sorted">
151.23689 +                     <style>
151.23690 +                        <textForeground/>
151.23691 +                        <textBackground/>
151.23692 +                        <background/>
151.23693 +                        <uiproperties/>
151.23694 +                     </style>
151.23695 +                     <canvas>
151.23696 +                        <size width="22" height="20"/>
151.23697 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.23698 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.23699 +                        <layer name="Layer 1">
151.23700 +                           <opacity>1.0</opacity>
151.23701 +                           <fillOpacity>1.0</fillOpacity>
151.23702 +                           <blendingMode>NORMAL</blendingMode>
151.23703 +                           <locked>false</locked>
151.23704 +                           <visible>true</visible>
151.23705 +                           <shapes>
151.23706 +                              <path>
151.23707 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.23708 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.23709 +                                 <points>
151.23710 +                                   <point x="0" y="0" cp1x="0" cp1y="0" cp2x="0" cp2y="0"/>
151.23711 +                                   <point x="0" y="20" cp1x="0" cp1y="20" cp2x="0" cp2y="20"/>
151.23712 +                                   <point x="22" y="20" cp1x="22" cp1y="20" cp2x="22" cp2y="20"/>
151.23713 +                                   <point x="22" y="0" cp1x="22" cp1y="0" cp2x="22" cp2y="0"/>
151.23714 +                                   <point x="1.2" y="0" cp1x="1.2" cp1y="0" cp2x="1.2" cp2y="0"/>
151.23715 +                                   <point x="1.2" y="1.2" cp1x="1.2" cp1y="1.2" cp2x="1.2" cp2y="1.2"/>
151.23716 +                                   <point x="20.8" y="1.2" cp1x="20.8" cp1y="1.2" cp2x="20.8" cp2y="1.2"/>
151.23717 +                                   <point x="20.8" y="18.8" cp1x="20.8" cp1y="18.8" cp2x="20.8" cp2y="18.8"/>
151.23718 +                                   <point x="1.2" y="18.8" cp1x="1.2" cp1y="18.8" cp2x="1.2" cp2y="18.8"/>
151.23719 +                                   <point x="1.2" y="0" cp1x="1.2" cp1y="0" cp2x="1.2" cp2y="0"/>
151.23720 +                                </points>
151.23721 +                              </path>
151.23722 +                              <rectangle x1="0.0" x2="21.0" y1="0.0" y2="19.0" rounding="0.0">
151.23723 +                                 <gradient cycleMethod="NO_CYCLE">
151.23724 +                                    <stop position="0.0" midpoint="0.24742268">
151.23725 +                                       <matte red="248" green="250" blue="251" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.023096085" saturationOffset="-0.62376213" brightnessOffset="0.4352941" alphaOffset="0"/>
151.23726 +                                    </stop>
151.23727 +                                    <stop position="0.2888889" midpoint="0.6272727">
151.23728 +                                       <matte red="189" green="205" blue="219" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-8.738637E-4" saturationOffset="-0.49872798" brightnessOffset="0.3098039" alphaOffset="0"/>
151.23729 +                                    </stop>
151.23730 +                                    <stop position="0.7037037" midpoint="0.5">
151.23731 +                                       <matte red="178" green="197" blue="213" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-0.002461195" saturationOffset="-0.47139505" brightnessOffset="0.2862745" alphaOffset="0"/>
151.23732 +                                    </stop>
151.23733 +                                    <stop position="1.0" midpoint="0.5">
151.23734 +                                       <matte red="202" green="220" blue="236" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="-2.2029877E-4" saturationOffset="-0.4916465" brightnessOffset="0.37647057" alphaOffset="0"/>
151.23735 +                                    </stop>
151.23736 +                                 </gradient>
151.23737 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.23738 +                              </rectangle>
151.23739 +                              <rectangle x1="21.0" x2="22.0" y1="0.0" y2="19.0" rounding="0.0">
151.23740 +                                 <gradient cycleMethod="NO_CYCLE">
151.23741 +                                    <stop position="0.0" midpoint="0.33043477">
151.23742 +                                       <matte red="201" green="203" blue="206" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.01111114" saturationOffset="-0.08625447" brightnessOffset="0.062745094" alphaOffset="0"/>
151.23743 +                                    </stop>
151.23744 +                                    <stop position="0.43703705" midpoint="0.5">
151.23745 +                                       <matte red="134" green="139" blue="146" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.013888836" saturationOffset="-0.028334536" brightnessOffset="-0.17254901" alphaOffset="0"/>
151.23746 +                                    </stop>
151.23747 +                                    <stop position="0.75185186" midpoint="0.5">
151.23748 +                                       <matte red="136" green="141" blue="148" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.013888836" saturationOffset="-0.029445238" brightnessOffset="-0.16470587" alphaOffset="0"/>
151.23749 +                                    </stop>
151.23750 +                                    <stop position="1.0" midpoint="0.5">
151.23751 +                                       <matte red="182" green="187" blue="193" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.02020204" saturationOffset="-0.053531498" brightnessOffset="0.011764705" alphaOffset="0"/>
151.23752 +                                    </stop>
151.23753 +                                 </gradient>
151.23754 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.23755 +                              </rectangle>
151.23756 +                              <rectangle x1="0.0" x2="22.0" y1="19.0" y2="20.0" rounding="0.0">
151.23757 +                                 <matte red="116" green="121" blue="128" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="-0.013888836" saturationOffset="5.823001E-4" brightnessOffset="-0.12941176" alphaOffset="0"/>
151.23758 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.23759 +                              </rectangle>
151.23760 +                           </shapes>
151.23761 +                           <effects>
151.23762 +                              <innerShadow blendingMode="NORMAL" opacity="0.75" angle="135" distance="0" spread="53" size="3">
151.23763 +                                 <matte red="49" green="150" blue="239" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="0.16" brightnessOffset="0.39" alphaOffset="0"/>
151.23764 +                              </innerShadow>
151.23765 +                           </effects>
151.23766 +                        </layer>
151.23767 +                        <templateLayer fileName="1142368f212.png">
151.23768 +                           <layer name="Template" type="template">
151.23769 +                              <opacity>1.0</opacity>
151.23770 +                              <fillOpacity>1.0</fillOpacity>
151.23771 +                              <blendingMode>NORMAL</blendingMode>
151.23772 +                              <locked>false</locked>
151.23773 +                              <visible>true</visible>
151.23774 +                              <shapes/>
151.23775 +                              <effects/>
151.23776 +                           </layer>
151.23777 +                        </templateLayer>
151.23778 +                     </canvas>
151.23779 +                  </state>
151.23780 +                  <state stateKeys="Disabled+Sorted">
151.23781 +                     <style>
151.23782 +                        <textForeground/>
151.23783 +                        <textBackground/>
151.23784 +                        <background/>
151.23785 +                        <uiproperties/>
151.23786 +                     </style>
151.23787 +                     <canvas>
151.23788 +                        <size width="22" height="20"/>
151.23789 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.23790 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.23791 +                        <layer name="Layer 1">
151.23792 +                           <opacity>1.0</opacity>
151.23793 +                           <fillOpacity>1.0</fillOpacity>
151.23794 +                           <blendingMode>NORMAL</blendingMode>
151.23795 +                           <locked>false</locked>
151.23796 +                           <visible>true</visible>
151.23797 +                           <shapes>
151.23798 +                              <rectangle x1="0.0" x2="21.0" y1="0.0" y2="19.0" rounding="0.0">
151.23799 +                                 <gradient cycleMethod="NO_CYCLE">
151.23800 +                                    <stop position="0.0" midpoint="0.24742268">
151.23801 +                                       <matte red="251" green="251" blue="252" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10655806" brightnessOffset="0.24313724" alphaOffset="0"/>
151.23802 +                                    </stop>
151.23803 +                                    <stop position="0.2888889" midpoint="0.6272727">
151.23804 +                                       <matte red="225" green="227" blue="231" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.08455229" brightnessOffset="0.1607843" alphaOffset="0"/>
151.23805 +                                    </stop>
151.23806 +                                    <stop position="0.7037037" midpoint="0.5">
151.23807 +                                       <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07016757" brightnessOffset="0.12941176" alphaOffset="0"/>
151.23808 +                                    </stop>
151.23809 +                                    <stop position="1.0" midpoint="0.5">
151.23810 +                                       <matte red="242" green="245" blue="251" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07466974" brightnessOffset="0.23921567" alphaOffset="0"/>
151.23811 +                                    </stop>
151.23812 +                                 </gradient>
151.23813 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.23814 +                              </rectangle>
151.23815 +                              <rectangle x1="21.0" x2="22.0" y1="0.0" y2="19.0" rounding="0.0">
151.23816 +                                 <gradient cycleMethod="NO_CYCLE">
151.23817 +                                    <stop position="0.0" midpoint="0.33043477">
151.23818 +                                       <matte red="201" green="203" blue="206" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.01111114" saturationOffset="-0.08625447" brightnessOffset="0.062745094" alphaOffset="0"/>
151.23819 +                                    </stop>
151.23820 +                                    <stop position="0.43703705" midpoint="0.5">
151.23821 +                                       <matte red="134" green="139" blue="146" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.013888836" saturationOffset="-0.028334536" brightnessOffset="-0.17254901" alphaOffset="0"/>
151.23822 +                                    </stop>
151.23823 +                                    <stop position="0.75185186" midpoint="0.5">
151.23824 +                                       <matte red="136" green="141" blue="148" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.013888836" saturationOffset="-0.029445238" brightnessOffset="-0.16470587" alphaOffset="0"/>
151.23825 +                                    </stop>
151.23826 +                                    <stop position="1.0" midpoint="0.5">
151.23827 +                                       <matte red="182" green="187" blue="193" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.02020204" saturationOffset="-0.053531498" brightnessOffset="0.011764705" alphaOffset="0"/>
151.23828 +                                    </stop>
151.23829 +                                 </gradient>
151.23830 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.23831 +                              </rectangle>
151.23832 +                              <rectangle x1="0.0" x2="22.0" y1="19.0" y2="20.0" rounding="0.0">
151.23833 +                                 <matte red="116" green="121" blue="128" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="-0.013888836" saturationOffset="5.823001E-4" brightnessOffset="-0.12941176" alphaOffset="0"/>
151.23834 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.23835 +                              </rectangle>
151.23836 +                           </shapes>
151.23837 +                           <effects/>
151.23838 +                        </layer>
151.23839 +                     </canvas>
151.23840 +                  </state>
151.23841 +               </backgroundStates>
151.23842 +               <foregroundStates/>
151.23843 +               <borderStates/>
151.23844 +               <regions/>
151.23845 +            </uiComponent>
151.23846 +         </regions>
151.23847 +      </uiComponent>
151.23848 +      <uiComponent opaque="true" componentName="Table.editor" type="javax.swing.JTextField" name="TextField" ui="TextFieldUI" subregion="false">
151.23849 +         <stateTypes/>
151.23850 +         <contentMargins top="3" bottom="3" left="5" right="5"/>
151.23851 +         <style>
151.23852 +            <textForeground/>
151.23853 +            <textBackground/>
151.23854 +            <background>
151.23855 +               <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.23856 +            </background>
151.23857 +            <inherit-background>false</inherit-background>
151.23858 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.23859 +            <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.23860 +            <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.23861 +            <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.23862 +            <uiproperties/>
151.23863 +         </style>
151.23864 +         <backgroundStates>
151.23865 +            <state stateKeys="Disabled">
151.23866 +               <style>
151.23867 +                  <textForeground>
151.23868 +                     <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.23869 +                  </textForeground>
151.23870 +                  <textBackground/>
151.23871 +                  <background/>
151.23872 +                  <inherit-textForeground>false</inherit-textForeground>
151.23873 +                  <uiproperties/>
151.23874 +               </style>
151.23875 +               <canvas>
151.23876 +                  <size width="100" height="30"/>
151.23877 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.23878 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.23879 +                  <layer name="Layer 1">
151.23880 +                     <opacity>1.0</opacity>
151.23881 +                     <fillOpacity>1.0</fillOpacity>
151.23882 +                     <blendingMode>NORMAL</blendingMode>
151.23883 +                     <locked>false</locked>
151.23884 +                     <visible>true</visible>
151.23885 +                     <shapes/>
151.23886 +                     <effects/>
151.23887 +                  </layer>
151.23888 +               </canvas>
151.23889 +            </state>
151.23890 +            <state stateKeys="Enabled">
151.23891 +               <style>
151.23892 +                  <textForeground/>
151.23893 +                  <textBackground/>
151.23894 +                  <background/>
151.23895 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.23896 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.23897 +                  <uiproperties/>
151.23898 +               </style>
151.23899 +               <canvas>
151.23900 +                  <size width="100" height="30"/>
151.23901 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
151.23902 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.23903 +                  <layer name="Layer 2">
151.23904 +                     <opacity>1.0</opacity>
151.23905 +                     <fillOpacity>1.0</fillOpacity>
151.23906 +                     <blendingMode>NORMAL</blendingMode>
151.23907 +                     <locked>false</locked>
151.23908 +                     <visible>true</visible>
151.23909 +                     <shapes>
151.23910 +                        <rectangle x1="0.0" x2="100.0" y1="0.0" y2="30.0" rounding="0.0">
151.23911 +                           <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.23912 +                           <paintPoints x1="0.25" y1="0.0" x2="0.25000000000000044" y2="0.16250000000000006"/>
151.23913 +                        </rectangle>
151.23914 +                     </shapes>
151.23915 +                     <effects/>
151.23916 +                  </layer>
151.23917 +               </canvas>
151.23918 +            </state>
151.23919 +            <state stateKeys="Enabled+Focused">
151.23920 +               <style>
151.23921 +                  <textForeground/>
151.23922 +                  <textBackground/>
151.23923 +                  <background/>
151.23924 +                  <uiproperties/>
151.23925 +               </style>
151.23926 +               <canvas>
151.23927 +                  <size width="100" height="30"/>
151.23928 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.23929 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.23930 +                  <layer name="Layer 1">
151.23931 +                     <opacity>1.0</opacity>
151.23932 +                     <fillOpacity>1.0</fillOpacity>
151.23933 +                     <blendingMode>NORMAL</blendingMode>
151.23934 +                     <locked>false</locked>
151.23935 +                     <visible>true</visible>
151.23936 +                     <shapes>
151.23937 +                        <path>
151.23938 +                           <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.23939 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.23940 +                           <points>
151.23941 +                              <point x="0" y="0" cp1x="0" cp1y="0" cp2x="0" cp2y="0"/>
151.23942 +                              <point x="0" y="30" cp1x="0" cp1y="30" cp2x="0" cp2y="30"/>
151.23943 +                              <point x="100" y="30" cp1x="100" cp1y="30" cp2x="100" cp2y="30"/>
151.23944 +                              <point x="100" y="0" cp1x="100" cp1y="0" cp2x="100" cp2y="0"/>
151.23945 +                              <point x="1.2" y="0" cp1x="1.2" cp1y="0" cp2x="1.2" cp2y="0"/>
151.23946 +                              <point x="1.2" y="1.2" cp1x="1.2" cp1y="1.2" cp2x="1.2" cp2y="1.2"/>
151.23947 +                              <point x="98.8" y="1.2" cp1x="98.8" cp1y="1.2" cp2x="98.8" cp2y="1.2"/>
151.23948 +                              <point x="98.8" y="28.8" cp1x="98.8" cp1y="28.8" cp2x="98.8" cp2y="28.8"/>
151.23949 +                              <point x="1.2" y="28.8" cp1x="1.2" cp1y="28.8" cp2x="1.2" cp2y="28.8"/>
151.23950 +                              <point x="1.2" y="0" cp1x="1.2" cp1y="0" cp2x="1.2" cp2y="0"/>
151.23951 +                           </points>
151.23952 +                        </path>
151.23953 +                     </shapes>
151.23954 +                     <effects/>
151.23955 +                  </layer>
151.23956 +               </canvas>
151.23957 +            </state>
151.23958 +            <state stateKeys="Selected">
151.23959 +               <style>
151.23960 +                  <textForeground>
151.23961 +                     <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusSelectedText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.23962 +                  </textForeground>
151.23963 +                  <textBackground/>
151.23964 +                  <background/>
151.23965 +                  <inherit-textForeground>false</inherit-textForeground>
151.23966 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.23967 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.23968 +                  <uiproperties/>
151.23969 +               </style>
151.23970 +               <canvas>
151.23971 +                  <size width="122" height="24"/>
151.23972 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
151.23973 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.23974 +                  <layer name="Layer 2">
151.23975 +                     <opacity>1.0</opacity>
151.23976 +                     <fillOpacity>1.0</fillOpacity>
151.23977 +                     <blendingMode>NORMAL</blendingMode>
151.23978 +                     <locked>false</locked>
151.23979 +                     <visible>true</visible>
151.23980 +                     <shapes/>
151.23981 +                     <effects/>
151.23982 +                  </layer>
151.23983 +               </canvas>
151.23984 +            </state>
151.23985 +         </backgroundStates>
151.23986 +         <foregroundStates/>
151.23987 +         <borderStates/>
151.23988 +         <regions/>
151.23989 +      </uiComponent>
151.23990 +      <uiComponent opaque="true" componentName="Tree.cellEditor" type="javax.swing.JTextField" name="TextField" ui="TextFieldUI" subregion="false">
151.23991 +         <stateTypes/>
151.23992 +         <contentMargins top="2" bottom="2" left="5" right="5"/>
151.23993 +         <style>
151.23994 +            <textForeground/>
151.23995 +            <textBackground/>
151.23996 +            <background>
151.23997 +               <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.23998 +            </background>
151.23999 +            <inherit-background>false</inherit-background>
151.24000 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.24001 +            <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.24002 +            <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.24003 +            <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.24004 +            <uiproperties/>
151.24005 +         </style>
151.24006 +         <backgroundStates>
151.24007 +            <state stateKeys="Disabled">
151.24008 +               <style>
151.24009 +                  <textForeground>
151.24010 +                     <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.24011 +                  </textForeground>
151.24012 +                  <textBackground/>
151.24013 +                  <background/>
151.24014 +                  <inherit-textForeground>false</inherit-textForeground>
151.24015 +                  <uiproperties/>
151.24016 +               </style>
151.24017 +               <canvas>
151.24018 +                  <size width="100" height="30"/>
151.24019 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.24020 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.24021 +                  <layer name="Layer 1">
151.24022 +                     <opacity>1.0</opacity>
151.24023 +                     <fillOpacity>1.0</fillOpacity>
151.24024 +                     <blendingMode>NORMAL</blendingMode>
151.24025 +                     <locked>false</locked>
151.24026 +                     <visible>true</visible>
151.24027 +                     <shapes/>
151.24028 +                     <effects/>
151.24029 +                  </layer>
151.24030 +               </canvas>
151.24031 +            </state>
151.24032 +            <state stateKeys="Enabled">
151.24033 +               <style>
151.24034 +                  <textForeground/>
151.24035 +                  <textBackground/>
151.24036 +                  <background/>
151.24037 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.24038 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.24039 +                  <uiproperties/>
151.24040 +               </style>
151.24041 +               <canvas>
151.24042 +                  <size width="100" height="30"/>
151.24043 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
151.24044 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.24045 +                  <layer name="Layer 2">
151.24046 +                     <opacity>1.0</opacity>
151.24047 +                     <fillOpacity>1.0</fillOpacity>
151.24048 +                     <blendingMode>NORMAL</blendingMode>
151.24049 +                     <locked>false</locked>
151.24050 +                     <visible>true</visible>
151.24051 +                     <shapes>
151.24052 +                        <path>
151.24053 +                           <matte red="146" green="151" blue="161" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.017358616" brightnessOffset="-0.11372548" alphaOffset="0"/>
151.24054 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.24055 +                           <points>
151.24056 +                              <point x="0" y="0" cp1x="0" cp1y="0" cp2x="0" cp2y="0"/>
151.24057 +                              <point x="0" y="30" cp1x="0" cp1y="30" cp2x="0" cp2y="30"/>
151.24058 +                              <point x="100" y="30" cp1x="100" cp1y="30" cp2x="100" cp2y="30"/>
151.24059 +                              <point x="100" y="0" cp1x="100" cp1y="0" cp2x="100" cp2y="0"/>
151.24060 +                              <point x="1" y="0" cp1x="1" cp1y="0" cp2x="1" cp2y="0"/>
151.24061 +                              <point x="1" y="1" cp1x="1" cp1y="1" cp2x="1" cp2y="1"/>
151.24062 +                              <point x="99" y="1" cp1x="99" cp1y="1" cp2x="99" cp2y="1"/>
151.24063 +                              <point x="99" y="29" cp1x="99" cp1y="29" cp2x="99" cp2y="29"/>
151.24064 +                              <point x="1" y="29" cp1x="1" cp1y="29" cp2x="1" cp2y="29"/>
151.24065 +                              <point x="1" y="0" cp1x="1" cp1y="0" cp2x="1" cp2y="0"/>
151.24066 +                           </points>
151.24067 +                        </path>
151.24068 +                     </shapes>
151.24069 +                     <effects/>
151.24070 +                  </layer>
151.24071 +               </canvas>
151.24072 +            </state>
151.24073 +            <state stateKeys="Enabled+Focused">
151.24074 +               <style>
151.24075 +                  <textForeground/>
151.24076 +                  <textBackground/>
151.24077 +                  <background/>
151.24078 +                  <uiproperties/>
151.24079 +               </style>
151.24080 +               <canvas>
151.24081 +                  <size width="100" height="30"/>
151.24082 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.24083 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.24084 +                  <layer name="Layer 1">
151.24085 +                     <opacity>1.0</opacity>
151.24086 +                     <fillOpacity>1.0</fillOpacity>
151.24087 +                     <blendingMode>NORMAL</blendingMode>
151.24088 +                     <locked>false</locked>
151.24089 +                     <visible>true</visible>
151.24090 +                     <shapes>
151.24091 +                        <path>
151.24092 +                           <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.24093 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.24094 +                           <points>
151.24095 +                              <point x="0" y="0" cp1x="0" cp1y="0" cp2x="0" cp2y="0"/>
151.24096 +                              <point x="0" y="30" cp1x="0" cp1y="30" cp2x="0" cp2y="30"/>
151.24097 +                              <point x="100" y="30" cp1x="100" cp1y="30" cp2x="100" cp2y="30"/>
151.24098 +                              <point x="100" y="0" cp1x="100" cp1y="0" cp2x="100" cp2y="0"/>
151.24099 +                              <point x="1.2" y="0" cp1x="1.2" cp1y="0" cp2x="1.2" cp2y="0"/>
151.24100 +                              <point x="1.2" y="1.2" cp1x="1.2" cp1y="1.2" cp2x="1.2" cp2y="1.2"/>
151.24101 +                              <point x="98.8" y="1.2" cp1x="98.8" cp1y="1.2" cp2x="98.8" cp2y="1.2"/>
151.24102 +                              <point x="98.8" y="28.8" cp1x="98.8" cp1y="28.8" cp2x="98.8" cp2y="28.8"/>
151.24103 +                              <point x="1.2" y="28.8" cp1x="1.2" cp1y="28.8" cp2x="1.2" cp2y="28.8"/>
151.24104 +                              <point x="1.2" y="0" cp1x="1.2" cp1y="0" cp2x="1.2" cp2y="0"/>
151.24105 +                           </points>
151.24106 +                        </path>
151.24107 +                     </shapes>
151.24108 +                     <effects/>
151.24109 +                  </layer>
151.24110 +               </canvas>
151.24111 +            </state>
151.24112 +            <state stateKeys="Selected">
151.24113 +               <style>
151.24114 +                  <textForeground>
151.24115 +                     <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusSelectedText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.24116 +                  </textForeground>
151.24117 +                  <textBackground/>
151.24118 +                  <background/>
151.24119 +                  <inherit-textForeground>false</inherit-textForeground>
151.24120 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.24121 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.24122 +                  <uiproperties/>
151.24123 +               </style>
151.24124 +               <canvas>
151.24125 +                  <size width="122" height="24"/>
151.24126 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
151.24127 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.24128 +                  <layer name="Layer 2">
151.24129 +                     <opacity>1.0</opacity>
151.24130 +                     <fillOpacity>1.0</fillOpacity>
151.24131 +                     <blendingMode>NORMAL</blendingMode>
151.24132 +                     <locked>false</locked>
151.24133 +                     <visible>true</visible>
151.24134 +                     <shapes/>
151.24135 +                     <effects/>
151.24136 +                  </layer>
151.24137 +               </canvas>
151.24138 +            </state>
151.24139 +         </backgroundStates>
151.24140 +         <foregroundStates/>
151.24141 +         <borderStates/>
151.24142 +         <regions/>
151.24143 +      </uiComponent>
151.24144 +      <uiComponent opaque="false" type="javax.swing.JTextField" name="TextField" ui="TextFieldUI" subregion="false">
151.24145 +         <stateTypes/>
151.24146 +         <contentMargins top="6" bottom="6" left="6" right="6"/>
151.24147 +         <style>
151.24148 +            <textForeground/>
151.24149 +            <textBackground/>
151.24150 +            <background>
151.24151 +               <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.24152 +            </background>
151.24153 +            <inherit-background>false</inherit-background>
151.24154 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.24155 +            <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.24156 +            <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.24157 +            <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.24158 +            <uiproperties/>
151.24159 +         </style>
151.24160 +         <backgroundStates>
151.24161 +            <state stateKeys="Disabled">
151.24162 +               <style>
151.24163 +                  <textForeground>
151.24164 +                     <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.24165 +                  </textForeground>
151.24166 +                  <textBackground/>
151.24167 +                  <background/>
151.24168 +                  <inherit-textForeground>false</inherit-textForeground>
151.24169 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.24170 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.24171 +                  <uiproperties/>
151.24172 +               </style>
151.24173 +               <canvas>
151.24174 +                  <size width="122" height="24"/>
151.24175 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.24176 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.24177 +                  <layer name="Layer 1">
151.24178 +                     <opacity>1.0</opacity>
151.24179 +                     <fillOpacity>1.0</fillOpacity>
151.24180 +                     <blendingMode>NORMAL</blendingMode>
151.24181 +                     <locked>false</locked>
151.24182 +                     <visible>true</visible>
151.24183 +                     <shapes>
151.24184 +                        <rectangle x1="2.0" x2="120.0" y1="2.0" y2="22.0" rounding="0.0">
151.24185 +                           <matte red="222" green="225" blue="229" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.015872955" saturationOffset="-0.07995863" brightnessOffset="0.15294117" alphaOffset="0"/>
151.24186 +                           <paintPoints x1="0.25" y1="0.0" x2="0.25" y2="0.1500000000000001"/>
151.24187 +                        </rectangle>
151.24188 +                     </shapes>
151.24189 +                     <effects/>
151.24190 +                  </layer>
151.24191 +                  <templateLayer fileName="1139927b26e.png">
151.24192 +                     <layer name="Template" type="template">
151.24193 +                        <opacity>1.0</opacity>
151.24194 +                        <fillOpacity>1.0</fillOpacity>
151.24195 +                        <blendingMode>NORMAL</blendingMode>
151.24196 +                        <locked>false</locked>
151.24197 +                        <visible>false</visible>
151.24198 +                        <shapes/>
151.24199 +                        <effects/>
151.24200 +                     </layer>
151.24201 +                  </templateLayer>
151.24202 +               </canvas>
151.24203 +            </state>
151.24204 +            <state stateKeys="Enabled">
151.24205 +               <style>
151.24206 +                  <textForeground/>
151.24207 +                  <textBackground/>
151.24208 +                  <background/>
151.24209 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.24210 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.24211 +                  <uiproperties/>
151.24212 +               </style>
151.24213 +               <canvas>
151.24214 +                  <size width="122" height="24"/>
151.24215 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
151.24216 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.24217 +                  <layer name="Layer 2">
151.24218 +                     <opacity>1.0</opacity>
151.24219 +                     <fillOpacity>1.0</fillOpacity>
151.24220 +                     <blendingMode>NORMAL</blendingMode>
151.24221 +                     <locked>false</locked>
151.24222 +                     <visible>true</visible>
151.24223 +                     <shapes>
151.24224 +                        <rectangle x1="2.0" x2="120.0" y1="2.0" y2="22.0" rounding="0.0">
151.24225 +                           <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.24226 +                           <paintPoints x1="0.25" y1="0.0" x2="0.25000000000000044" y2="0.16250000000000006"/>
151.24227 +                        </rectangle>
151.24228 +                     </shapes>
151.24229 +                     <effects/>
151.24230 +                  </layer>
151.24231 +                  <templateLayer fileName="11399201d79.png">
151.24232 +                     <layer name="Template" type="template">
151.24233 +                        <opacity>1.0</opacity>
151.24234 +                        <fillOpacity>1.0</fillOpacity>
151.24235 +                        <blendingMode>NORMAL</blendingMode>
151.24236 +                        <locked>false</locked>
151.24237 +                        <visible>false</visible>
151.24238 +                        <shapes/>
151.24239 +                        <effects/>
151.24240 +                     </layer>
151.24241 +                  </templateLayer>
151.24242 +               </canvas>
151.24243 +            </state>
151.24244 +            <state stateKeys="Selected">
151.24245 +               <style>
151.24246 +                  <textForeground>
151.24247 +                     <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusSelectedText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.24248 +                  </textForeground>
151.24249 +                  <textBackground/>
151.24250 +                  <background/>
151.24251 +                  <inherit-textForeground>false</inherit-textForeground>
151.24252 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.24253 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.24254 +                  <uiproperties/>
151.24255 +               </style>
151.24256 +               <canvas>
151.24257 +                  <size width="122" height="24"/>
151.24258 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
151.24259 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.24260 +                  <layer name="Layer 2">
151.24261 +                     <opacity>1.0</opacity>
151.24262 +                     <fillOpacity>1.0</fillOpacity>
151.24263 +                     <blendingMode>NORMAL</blendingMode>
151.24264 +                     <locked>false</locked>
151.24265 +                     <visible>true</visible>
151.24266 +                     <shapes>
151.24267 +                        <rectangle x1="2.0" x2="120.0" y1="2.0" y2="22.0" rounding="0.0">
151.24268 +                           <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.24269 +                           <paintPoints x1="0.25" y1="0.0" x2="0.25000000000000044" y2="0.16250000000000006"/>
151.24270 +                        </rectangle>
151.24271 +                     </shapes>
151.24272 +                     <effects/>
151.24273 +                  </layer>
151.24274 +                  <templateLayer fileName="11399201d79.png">
151.24275 +                     <layer name="Template" type="template">
151.24276 +                        <opacity>1.0</opacity>
151.24277 +                        <fillOpacity>1.0</fillOpacity>
151.24278 +                        <blendingMode>NORMAL</blendingMode>
151.24279 +                        <locked>false</locked>
151.24280 +                        <visible>false</visible>
151.24281 +                        <shapes/>
151.24282 +                        <effects/>
151.24283 +                     </layer>
151.24284 +                  </templateLayer>
151.24285 +               </canvas>
151.24286 +            </state>
151.24287 +         </backgroundStates>
151.24288 +         <foregroundStates/>
151.24289 +         <borderStates>
151.24290 +            <state stateKeys="Disabled">
151.24291 +               <style>
151.24292 +                  <textForeground>
151.24293 +                     <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.24294 +                  </textForeground>
151.24295 +                  <textBackground/>
151.24296 +                  <background/>
151.24297 +                  <inherit-textForeground>false</inherit-textForeground>
151.24298 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.24299 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.24300 +                  <uiproperties/>
151.24301 +               </style>
151.24302 +               <canvas>
151.24303 +                  <size width="122" height="24"/>
151.24304 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.24305 +                  <stretchingInsets top="5" bottom="3" left="3" right="3"/>
151.24306 +                  <layer name="Layer 1">
151.24307 +                     <opacity>1.0</opacity>
151.24308 +                     <fillOpacity>1.0</fillOpacity>
151.24309 +                     <blendingMode>NORMAL</blendingMode>
151.24310 +                     <locked>false</locked>
151.24311 +                     <visible>true</visible>
151.24312 +                     <shapes>
151.24313 +                        <rectangle x1="119.0" x2="120.0" y1="5.0" y2="21.0" rounding="0.0">
151.24314 +                           <matte red="210" green="212" blue="217" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07826825" brightnessOffset="0.10588235" alphaOffset="0"/>
151.24315 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.24316 +                        </rectangle>
151.24317 +                        <rectangle x1="2.0" x2="120.0" y1="22.0" y2="21.0" rounding="0.0">
151.24318 +                           <matte red="210" green="212" blue="217" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07826825" brightnessOffset="0.10588235" alphaOffset="0"/>
151.24319 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.24320 +                        </rectangle>
151.24321 +                        <rectangle x1="2.0" x2="3.0" y1="5.0" y2="21.0" rounding="0.0">
151.24322 +                           <matte red="208" green="210" blue="215" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07796818" brightnessOffset="0.09803921" alphaOffset="0"/>
151.24323 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.24324 +                        </rectangle>
151.24325 +                        <rectangle x1="3.0" x2="119.0" y1="3.0" y2="5.0" rounding="0.0">
151.24326 +                           <gradient cycleMethod="NO_CYCLE">
151.24327 +                              <stop position="0.0" midpoint="0.5">
151.24328 +                                 <matte red="212" green="214" blue="219" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07856284" brightnessOffset="0.11372548" alphaOffset="0"/>
151.24329 +                              </stop>
151.24330 +                              <stop position="1.0" midpoint="0.5">
151.24331 +                                 <matte red="222" green="225" blue="229" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.015872955" saturationOffset="-0.07995863" brightnessOffset="0.15294117" alphaOffset="0"/>
151.24332 +                              </stop>
151.24333 +                           </gradient>
151.24334 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.24335 +                        </rectangle>
151.24336 +                        <rectangle x1="2.0" x2="120.0" y1="2.0" y2="5.0" rounding="0.0">
151.24337 +                           <gradient cycleMethod="NO_CYCLE">
151.24338 +                              <stop position="0.0" midpoint="0.5">
151.24339 +                                 <matte red="199" green="202" blue="207" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.006944418" saturationOffset="-0.07187897" brightnessOffset="0.06666666" alphaOffset="0"/>
151.24340 +                              </stop>
151.24341 +                              <stop position="1.0" midpoint="0.5">
151.24342 +                                 <matte red="210" green="212" blue="217" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07826825" brightnessOffset="0.10588235" alphaOffset="0"/>
151.24343 +                              </stop>
151.24344 +                           </gradient>
151.24345 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.24346 +                        </rectangle>
151.24347 +                     </shapes>
151.24348 +                     <effects/>
151.24349 +                  </layer>
151.24350 +                  <templateLayer fileName="1139927b26e.png">
151.24351 +                     <layer name="Template" type="template">
151.24352 +                        <opacity>1.0</opacity>
151.24353 +                        <fillOpacity>1.0</fillOpacity>
151.24354 +                        <blendingMode>NORMAL</blendingMode>
151.24355 +                        <locked>false</locked>
151.24356 +                        <visible>false</visible>
151.24357 +                        <shapes/>
151.24358 +                        <effects/>
151.24359 +                     </layer>
151.24360 +                  </templateLayer>
151.24361 +               </canvas>
151.24362 +            </state>
151.24363 +            <state stateKeys="Focused">
151.24364 +               <style>
151.24365 +                  <textForeground/>
151.24366 +                  <textBackground/>
151.24367 +                  <background/>
151.24368 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.24369 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.24370 +                  <uiproperties/>
151.24371 +               </style>
151.24372 +               <canvas>
151.24373 +                  <size width="122" height="24"/>
151.24374 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
151.24375 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.24376 +                  <layer name="Layer 2">
151.24377 +                     <opacity>1.0</opacity>
151.24378 +                     <fillOpacity>1.0</fillOpacity>
151.24379 +                     <blendingMode>NORMAL</blendingMode>
151.24380 +                     <locked>false</locked>
151.24381 +                     <visible>true</visible>
151.24382 +                     <shapes>
151.24383 +                        <path>
151.24384 +                           <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.24385 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.24386 +                           <points>
151.24387 +                              <point x="2.0" y="2.0" cp1x="2.0" cp1y="2.0" cp2x="2.0" cp2y="2.0"/>
151.24388 +                              <point x="2.0" y="22.0" cp1x="2.0" cp1y="22.0" cp2x="2.0" cp2y="22.0"/>
151.24389 +                              <point x="120.0" y="22.0" cp1x="120.0" cp1y="22.0" cp2x="120.0" cp2y="22.0"/>
151.24390 +                              <point x="120.0" y="2.0" cp1x="120.0" cp1y="2.0" cp2x="120.0" cp2y="2.0"/>
151.24391 +                              <point x="121.4" y="2.0" cp1x="121.5" cp1y="2.0" cp2x="121.5" cp2y="2.0"/>
151.24392 +                              <point x="121.4" y="23.4" cp1x="121.4" cp1y="23.4" cp2x="121.4" cp2y="23.4"/>
151.24393 +                              <point x="0.6" y="23.4" cp1x="0.6" cp1y="23.4" cp2x="0.6" cp2y="23.4"/>
151.24394 +                              <point x="0.6" y="0.6" cp1x="0.6" cp1y="0.6" cp2x="0.6" cp2y="0.6"/>
151.24395 +                              <point x="121.4" y="0.6" cp1x="121.4" cp1y="0.6" cp2x="121.4" cp2y="0.6"/>
151.24396 +                              <point x="121.4" y="2.0" cp1x="121.4" cp1y="2.0" cp2x="121.4" cp2y="2.0"/>
151.24397 +                           </points>
151.24398 +                        </path>
151.24399 +                        <rectangle x1="3.0" x2="119.0" y1="21.0" y2="22.0" rounding="0.0">
151.24400 +                           <matte red="192" green="192" blue="193" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.105344966" brightnessOffset="0.011764705" alphaOffset="0"/>
151.24401 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.24402 +                        </rectangle>
151.24403 +                        <rectangle x1="119.0" x2="120.0" y1="5.0" y2="22.0" rounding="0.0">
151.24404 +                           <matte red="184" green="184" blue="185" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10512091" brightnessOffset="-0.019607842" alphaOffset="0"/>
151.24405 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.24406 +                        </rectangle>
151.24407 +                        <rectangle x1="2.0" x2="3.0" y1="5.0" y2="22.0" rounding="0.0">
151.24408 +                           <matte red="184" green="184" blue="185" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10512091" brightnessOffset="-0.019607842" alphaOffset="0"/>
151.24409 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.24410 +                        </rectangle>
151.24411 +                        <rectangle x1="3.0" x2="119.0" y1="3.0" y2="5.0" rounding="0.0">
151.24412 +                           <gradient cycleMethod="NO_CYCLE">
151.24413 +                              <stop position="0.1" midpoint="0.5">
151.24414 +                                 <matte red="203" green="203" blue="204" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusLightBackground" hueOffset="0.6666667" saturationOffset="0.004901961" brightnessOffset="-0.19999999" alphaOffset="0"/>
151.24415 +                              </stop>
151.24416 +                              <stop position="0.9" midpoint="0.5">
151.24417 +                                 <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.24418 +                              </stop>
151.24419 +                           </gradient>
151.24420 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.24421 +                        </rectangle>
151.24422 +                        <rectangle x1="2.0" x2="120.0" y1="2.0" y2="5.0" rounding="0.0">
151.24423 +                           <gradient cycleMethod="NO_CYCLE">
151.24424 +                              <stop position="0.1" midpoint="0.5">
151.24425 +                                 <matte red="141" green="142" blue="143" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.0965403" brightnessOffset="-0.18431371" alphaOffset="0"/>
151.24426 +                              </stop>
151.24427 +                              <stop position="0.9" midpoint="0.5">
151.24428 +                                 <matte red="176" green="176" blue="177" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.1048766" brightnessOffset="-0.05098039" alphaOffset="0"/>
151.24429 +                              </stop>
151.24430 +                           </gradient>
151.24431 +                           <paintPoints x1="0.25" y1="0.0" x2="0.25000000000000044" y2="0.16250000000000006"/>
151.24432 +                        </rectangle>
151.24433 +                     </shapes>
151.24434 +                     <effects/>
151.24435 +                  </layer>
151.24436 +                  <templateLayer fileName="11399201d79.png">
151.24437 +                     <layer name="Template" type="template">
151.24438 +                        <opacity>1.0</opacity>
151.24439 +                        <fillOpacity>1.0</fillOpacity>
151.24440 +                        <blendingMode>NORMAL</blendingMode>
151.24441 +                        <locked>false</locked>
151.24442 +                        <visible>false</visible>
151.24443 +                        <shapes/>
151.24444 +                        <effects/>
151.24445 +                     </layer>
151.24446 +                  </templateLayer>
151.24447 +               </canvas>
151.24448 +            </state>
151.24449 +            <state stateKeys="Enabled">
151.24450 +               <style>
151.24451 +                  <textForeground/>
151.24452 +                  <textBackground/>
151.24453 +                  <background/>
151.24454 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.24455 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.24456 +                  <uiproperties/>
151.24457 +               </style>
151.24458 +               <canvas>
151.24459 +                  <size width="122" height="24"/>
151.24460 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
151.24461 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.24462 +                  <layer name="Layer 2">
151.24463 +                     <opacity>1.0</opacity>
151.24464 +                     <fillOpacity>1.0</fillOpacity>
151.24465 +                     <blendingMode>NORMAL</blendingMode>
151.24466 +                     <locked>false</locked>
151.24467 +                     <visible>true</visible>
151.24468 +                     <shapes>
151.24469 +                        <rectangle x1="3.0" x2="119.0" y1="21.0" y2="22.0" rounding="0.0">
151.24470 +                           <matte red="192" green="192" blue="193" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.105344966" brightnessOffset="0.011764705" alphaOffset="0"/>
151.24471 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.24472 +                        </rectangle>
151.24473 +                        <rectangle x1="119.0" x2="120.0" y1="5.0" y2="22.0" rounding="0.0">
151.24474 +                           <matte red="184" green="184" blue="185" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10512091" brightnessOffset="-0.019607842" alphaOffset="0"/>
151.24475 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.24476 +                        </rectangle>
151.24477 +                        <rectangle x1="2.0" x2="3.0" y1="5.0" y2="22.0" rounding="0.0">
151.24478 +                           <matte red="184" green="184" blue="185" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10512091" brightnessOffset="-0.019607842" alphaOffset="0"/>
151.24479 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.24480 +                        </rectangle>
151.24481 +                        <rectangle x1="3.0" x2="119.0" y1="3.0" y2="5.0" rounding="0.0">
151.24482 +                           <gradient cycleMethod="NO_CYCLE">
151.24483 +                              <stop position="0.1" midpoint="0.5">
151.24484 +                                 <matte red="203" green="203" blue="204" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusLightBackground" hueOffset="0.6666667" saturationOffset="0.004901961" brightnessOffset="-0.19999999" alphaOffset="0"/>
151.24485 +                              </stop>
151.24486 +                              <stop position="0.9" midpoint="0.5">
151.24487 +                                 <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.24488 +                              </stop>
151.24489 +                           </gradient>
151.24490 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.24491 +                        </rectangle>
151.24492 +                        <rectangle x1="2.0" x2="120.0" y1="2.0" y2="5.0" rounding="0.0">
151.24493 +                           <gradient cycleMethod="NO_CYCLE">
151.24494 +                              <stop position="0.1" midpoint="0.5">
151.24495 +                                 <matte red="141" green="142" blue="143" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.0965403" brightnessOffset="-0.18431371" alphaOffset="0"/>
151.24496 +                              </stop>
151.24497 +                              <stop position="0.9" midpoint="0.5">
151.24498 +                                 <matte red="176" green="176" blue="177" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.1048766" brightnessOffset="-0.05098039" alphaOffset="0"/>
151.24499 +                              </stop>
151.24500 +                           </gradient>
151.24501 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.24502 +                        </rectangle>
151.24503 +                     </shapes>
151.24504 +                     <effects/>
151.24505 +                  </layer>
151.24506 +                  <templateLayer fileName="11399201d79.png">
151.24507 +                     <layer name="Template" type="template">
151.24508 +                        <opacity>1.0</opacity>
151.24509 +                        <fillOpacity>1.0</fillOpacity>
151.24510 +                        <blendingMode>NORMAL</blendingMode>
151.24511 +                        <locked>false</locked>
151.24512 +                        <visible>false</visible>
151.24513 +                        <shapes/>
151.24514 +                        <effects/>
151.24515 +                     </layer>
151.24516 +                  </templateLayer>
151.24517 +               </canvas>
151.24518 +            </state>
151.24519 +         </borderStates>
151.24520 +         <regions/>
151.24521 +      </uiComponent>
151.24522 +      <uiComponent opaque="false" type="javax.swing.JFormattedTextField" name="FormattedTextField" ui="FormattedTextFieldUI" subregion="false">
151.24523 +         <stateTypes/>
151.24524 +         <contentMargins top="6" bottom="6" left="6" right="6"/>
151.24525 +         <style>
151.24526 +            <textForeground/>
151.24527 +            <textBackground/>
151.24528 +            <background/>
151.24529 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.24530 +            <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.24531 +            <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.24532 +            <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.24533 +            <uiproperties/>
151.24534 +         </style>
151.24535 +         <backgroundStates>
151.24536 +            <state stateKeys="Disabled">
151.24537 +               <style>
151.24538 +                  <textForeground>
151.24539 +                     <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.24540 +                  </textForeground>
151.24541 +                  <textBackground/>
151.24542 +                  <background/>
151.24543 +                  <inherit-textForeground>false</inherit-textForeground>
151.24544 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.24545 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.24546 +                  <uiproperties/>
151.24547 +               </style>
151.24548 +               <canvas>
151.24549 +                  <size width="122" height="24"/>
151.24550 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.24551 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.24552 +                  <layer name="Layer 1">
151.24553 +                     <opacity>1.0</opacity>
151.24554 +                     <fillOpacity>1.0</fillOpacity>
151.24555 +                     <blendingMode>NORMAL</blendingMode>
151.24556 +                     <locked>false</locked>
151.24557 +                     <visible>true</visible>
151.24558 +                     <shapes>
151.24559 +                        <rectangle x1="2.0" x2="120.0" y1="2.0" y2="22.0" rounding="0.0">
151.24560 +                           <matte red="222" green="225" blue="229" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.015872955" saturationOffset="-0.07995863" brightnessOffset="0.15294117" alphaOffset="0"/>
151.24561 +                           <paintPoints x1="0.25" y1="0.0" x2="0.25" y2="0.1500000000000001"/>
151.24562 +                        </rectangle>
151.24563 +                     </shapes>
151.24564 +                     <effects/>
151.24565 +                  </layer>
151.24566 +                  <templateLayer fileName="1139927b26e.png">
151.24567 +                     <layer name="Template" type="template">
151.24568 +                        <opacity>1.0</opacity>
151.24569 +                        <fillOpacity>1.0</fillOpacity>
151.24570 +                        <blendingMode>NORMAL</blendingMode>
151.24571 +                        <locked>false</locked>
151.24572 +                        <visible>false</visible>
151.24573 +                        <shapes/>
151.24574 +                        <effects/>
151.24575 +                     </layer>
151.24576 +                  </templateLayer>
151.24577 +               </canvas>
151.24578 +            </state>
151.24579 +            <state stateKeys="Enabled">
151.24580 +               <style>
151.24581 +                  <textForeground/>
151.24582 +                  <textBackground/>
151.24583 +                  <background/>
151.24584 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.24585 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.24586 +                  <uiproperties/>
151.24587 +               </style>
151.24588 +               <canvas>
151.24589 +                  <size width="122" height="24"/>
151.24590 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
151.24591 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.24592 +                  <layer name="Layer 2">
151.24593 +                     <opacity>1.0</opacity>
151.24594 +                     <fillOpacity>1.0</fillOpacity>
151.24595 +                     <blendingMode>NORMAL</blendingMode>
151.24596 +                     <locked>false</locked>
151.24597 +                     <visible>true</visible>
151.24598 +                     <shapes>
151.24599 +                        <rectangle x1="2.0" x2="120.0" y1="2.0" y2="22.0" rounding="0.0">
151.24600 +                           <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.24601 +                           <paintPoints x1="0.25" y1="0.0" x2="0.25000000000000044" y2="0.16250000000000006"/>
151.24602 +                        </rectangle>
151.24603 +                     </shapes>
151.24604 +                     <effects/>
151.24605 +                  </layer>
151.24606 +                  <templateLayer fileName="11399201d79.png">
151.24607 +                     <layer name="Template" type="template">
151.24608 +                        <opacity>1.0</opacity>
151.24609 +                        <fillOpacity>1.0</fillOpacity>
151.24610 +                        <blendingMode>NORMAL</blendingMode>
151.24611 +                        <locked>false</locked>
151.24612 +                        <visible>false</visible>
151.24613 +                        <shapes/>
151.24614 +                        <effects/>
151.24615 +                     </layer>
151.24616 +                  </templateLayer>
151.24617 +               </canvas>
151.24618 +            </state>
151.24619 +            <state stateKeys="Selected">
151.24620 +               <style>
151.24621 +                  <textForeground>
151.24622 +                     <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusSelectedText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.24623 +                  </textForeground>
151.24624 +                  <textBackground/>
151.24625 +                  <background/>
151.24626 +                  <inherit-textForeground>false</inherit-textForeground>
151.24627 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.24628 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.24629 +                  <uiproperties/>
151.24630 +               </style>
151.24631 +               <canvas>
151.24632 +                  <size width="122" height="24"/>
151.24633 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
151.24634 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.24635 +                  <layer name="Layer 2">
151.24636 +                     <opacity>1.0</opacity>
151.24637 +                     <fillOpacity>1.0</fillOpacity>
151.24638 +                     <blendingMode>NORMAL</blendingMode>
151.24639 +                     <locked>false</locked>
151.24640 +                     <visible>true</visible>
151.24641 +                     <shapes>
151.24642 +                        <rectangle x1="2.0" x2="120.0" y1="2.0" y2="22.0" rounding="0.0">
151.24643 +                           <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.24644 +                           <paintPoints x1="0.25" y1="0.0" x2="0.25000000000000044" y2="0.16250000000000006"/>
151.24645 +                        </rectangle>
151.24646 +                     </shapes>
151.24647 +                     <effects/>
151.24648 +                  </layer>
151.24649 +                  <templateLayer fileName="11399201d79.png">
151.24650 +                     <layer name="Template" type="template">
151.24651 +                        <opacity>1.0</opacity>
151.24652 +                        <fillOpacity>1.0</fillOpacity>
151.24653 +                        <blendingMode>NORMAL</blendingMode>
151.24654 +                        <locked>false</locked>
151.24655 +                        <visible>false</visible>
151.24656 +                        <shapes/>
151.24657 +                        <effects/>
151.24658 +                     </layer>
151.24659 +                  </templateLayer>
151.24660 +               </canvas>
151.24661 +            </state>
151.24662 +         </backgroundStates>
151.24663 +         <foregroundStates/>
151.24664 +         <borderStates>
151.24665 +            <state stateKeys="Disabled">
151.24666 +               <style>
151.24667 +                  <textForeground>
151.24668 +                     <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.24669 +                  </textForeground>
151.24670 +                  <textBackground/>
151.24671 +                  <background/>
151.24672 +                  <inherit-textForeground>false</inherit-textForeground>
151.24673 +                  <uiproperties/>
151.24674 +               </style>
151.24675 +               <canvas>
151.24676 +                  <size width="122" height="24"/>
151.24677 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.24678 +                  <stretchingInsets top="5" bottom="3" left="3" right="3"/>
151.24679 +                  <layer name="Layer 1">
151.24680 +                     <opacity>1.0</opacity>
151.24681 +                     <fillOpacity>1.0</fillOpacity>
151.24682 +                     <blendingMode>NORMAL</blendingMode>
151.24683 +                     <locked>false</locked>
151.24684 +                     <visible>true</visible>
151.24685 +                     <shapes>
151.24686 +                        <rectangle x1="119.0" x2="120.0" y1="5.0" y2="21.0" rounding="0.0">
151.24687 +                           <matte red="210" green="212" blue="217" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07826825" brightnessOffset="0.10588235" alphaOffset="0"/>
151.24688 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.24689 +                        </rectangle>
151.24690 +                        <rectangle x1="2.0" x2="120.0" y1="22.0" y2="21.0" rounding="0.0">
151.24691 +                           <matte red="210" green="212" blue="217" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07826825" brightnessOffset="0.10588235" alphaOffset="0"/>
151.24692 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.24693 +                        </rectangle>
151.24694 +                        <rectangle x1="2.0" x2="3.0" y1="5.0" y2="21.0" rounding="0.0">
151.24695 +                           <matte red="208" green="210" blue="215" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07796818" brightnessOffset="0.09803921" alphaOffset="0"/>
151.24696 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.24697 +                        </rectangle>
151.24698 +                        <rectangle x1="3.0" x2="119.0" y1="3.0" y2="5.0" rounding="0.0">
151.24699 +                           <gradient cycleMethod="NO_CYCLE">
151.24700 +                              <stop position="0.0" midpoint="0.5">
151.24701 +                                 <matte red="212" green="214" blue="219" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07856284" brightnessOffset="0.11372548" alphaOffset="0"/>
151.24702 +                              </stop>
151.24703 +                              <stop position="1.0" midpoint="0.5">
151.24704 +                                 <matte red="222" green="225" blue="229" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.015872955" saturationOffset="-0.07995863" brightnessOffset="0.15294117" alphaOffset="0"/>
151.24705 +                              </stop>
151.24706 +                           </gradient>
151.24707 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.24708 +                        </rectangle>
151.24709 +                        <rectangle x1="2.0" x2="120.0" y1="2.0" y2="5.0" rounding="0.0">
151.24710 +                           <gradient cycleMethod="NO_CYCLE">
151.24711 +                              <stop position="0.0" midpoint="0.5">
151.24712 +                                 <matte red="199" green="202" blue="207" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.006944418" saturationOffset="-0.07187897" brightnessOffset="0.06666666" alphaOffset="0"/>
151.24713 +                              </stop>
151.24714 +                              <stop position="1.0" midpoint="0.5">
151.24715 +                                 <matte red="210" green="212" blue="217" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07826825" brightnessOffset="0.10588235" alphaOffset="0"/>
151.24716 +                              </stop>
151.24717 +                           </gradient>
151.24718 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.24719 +                        </rectangle>
151.24720 +                     </shapes>
151.24721 +                     <effects/>
151.24722 +                  </layer>
151.24723 +                  <templateLayer fileName="1139927b26e.png">
151.24724 +                     <layer name="Template" type="template">
151.24725 +                        <opacity>1.0</opacity>
151.24726 +                        <fillOpacity>1.0</fillOpacity>
151.24727 +                        <blendingMode>NORMAL</blendingMode>
151.24728 +                        <locked>false</locked>
151.24729 +                        <visible>false</visible>
151.24730 +                        <shapes/>
151.24731 +                        <effects/>
151.24732 +                     </layer>
151.24733 +                  </templateLayer>
151.24734 +               </canvas>
151.24735 +            </state>
151.24736 +            <state stateKeys="Focused">
151.24737 +               <style>
151.24738 +                  <textForeground/>
151.24739 +                  <textBackground/>
151.24740 +                  <background/>
151.24741 +                  <uiproperties/>
151.24742 +               </style>
151.24743 +               <canvas>
151.24744 +                  <size width="122" height="24"/>
151.24745 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
151.24746 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.24747 +                  <layer name="Layer 2">
151.24748 +                     <opacity>1.0</opacity>
151.24749 +                     <fillOpacity>1.0</fillOpacity>
151.24750 +                     <blendingMode>NORMAL</blendingMode>
151.24751 +                     <locked>false</locked>
151.24752 +                     <visible>true</visible>
151.24753 +                     <shapes>
151.24754 +                        <path>
151.24755 +                           <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.24756 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.24757 +                           <points>
151.24758 +                              <point x="2.0" y="2.0" cp1x="2.0" cp1y="2.0" cp2x="2.0" cp2y="2.0"/>
151.24759 +                              <point x="2.0" y="22.0" cp1x="2.0" cp1y="22.0" cp2x="2.0" cp2y="22.0"/>
151.24760 +                              <point x="120.0" y="22.0" cp1x="120.0" cp1y="22.0" cp2x="120.0" cp2y="22.0"/>
151.24761 +                              <point x="120.0" y="2.0" cp1x="120.0" cp1y="2.0" cp2x="120.0" cp2y="2.0"/>
151.24762 +                              <point x="121.4" y="2.0" cp1x="121.5" cp1y="2.0" cp2x="121.5" cp2y="2.0"/>
151.24763 +                              <point x="121.4" y="23.4" cp1x="121.4" cp1y="23.4" cp2x="121.4" cp2y="23.4"/>
151.24764 +                              <point x="0.6" y="23.4" cp1x="0.6" cp1y="23.4" cp2x="0.6" cp2y="23.4"/>
151.24765 +                              <point x="0.6" y="0.6" cp1x="0.6" cp1y="0.6" cp2x="0.6" cp2y="0.6"/>
151.24766 +                              <point x="121.4" y="0.6" cp1x="121.4" cp1y="0.6" cp2x="121.4" cp2y="0.6"/>
151.24767 +                              <point x="121.4" y="2.0" cp1x="121.4" cp1y="2.0" cp2x="121.4" cp2y="2.0"/>
151.24768 +                           </points>
151.24769 +                        </path>
151.24770 +                        <rectangle x1="3.0" x2="119.0" y1="21.0" y2="22.0" rounding="0.0">
151.24771 +                           <matte red="192" green="192" blue="193" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.105344966" brightnessOffset="0.011764705" alphaOffset="0"/>
151.24772 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.24773 +                        </rectangle>
151.24774 +                        <rectangle x1="119.0" x2="120.0" y1="5.0" y2="22.0" rounding="0.0">
151.24775 +                           <matte red="184" green="184" blue="185" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10512091" brightnessOffset="-0.019607842" alphaOffset="0"/>
151.24776 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.24777 +                        </rectangle>
151.24778 +                        <rectangle x1="2.0" x2="3.0" y1="5.0" y2="22.0" rounding="0.0">
151.24779 +                           <matte red="184" green="184" blue="185" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10512091" brightnessOffset="-0.019607842" alphaOffset="0"/>
151.24780 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.24781 +                        </rectangle>
151.24782 +                        <rectangle x1="3.0" x2="119.0" y1="3.0" y2="5.0" rounding="0.0">
151.24783 +                           <gradient cycleMethod="NO_CYCLE">
151.24784 +                              <stop position="0.1" midpoint="0.5">
151.24785 +                                 <matte red="203" green="203" blue="204" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusLightBackground" hueOffset="0.6666667" saturationOffset="0.004901961" brightnessOffset="-0.19999999" alphaOffset="0"/>
151.24786 +                              </stop>
151.24787 +                              <stop position="0.9" midpoint="0.5">
151.24788 +                                 <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.24789 +                              </stop>
151.24790 +                           </gradient>
151.24791 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.24792 +                        </rectangle>
151.24793 +                        <rectangle x1="2.0" x2="120.0" y1="2.0" y2="5.0" rounding="0.0">
151.24794 +                           <gradient cycleMethod="NO_CYCLE">
151.24795 +                              <stop position="0.1" midpoint="0.5">
151.24796 +                                 <matte red="141" green="142" blue="143" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.0965403" brightnessOffset="-0.18431371" alphaOffset="0"/>
151.24797 +                              </stop>
151.24798 +                              <stop position="0.9" midpoint="0.5">
151.24799 +                                 <matte red="176" green="176" blue="177" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.1048766" brightnessOffset="-0.05098039" alphaOffset="0"/>
151.24800 +                              </stop>
151.24801 +                           </gradient>
151.24802 +                           <paintPoints x1="0.25" y1="0.0" x2="0.25000000000000044" y2="0.16250000000000006"/>
151.24803 +                        </rectangle>
151.24804 +                     </shapes>
151.24805 +                     <effects/>
151.24806 +                  </layer>
151.24807 +                  <templateLayer fileName="11399201d79.png">
151.24808 +                     <layer name="Template" type="template">
151.24809 +                        <opacity>1.0</opacity>
151.24810 +                        <fillOpacity>1.0</fillOpacity>
151.24811 +                        <blendingMode>NORMAL</blendingMode>
151.24812 +                        <locked>false</locked>
151.24813 +                        <visible>false</visible>
151.24814 +                        <shapes/>
151.24815 +                        <effects/>
151.24816 +                     </layer>
151.24817 +                  </templateLayer>
151.24818 +               </canvas>
151.24819 +            </state>
151.24820 +            <state stateKeys="Enabled">
151.24821 +               <style>
151.24822 +                  <textForeground/>
151.24823 +                  <textBackground/>
151.24824 +                  <background/>
151.24825 +                  <uiproperties/>
151.24826 +               </style>
151.24827 +               <canvas>
151.24828 +                  <size width="122" height="24"/>
151.24829 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
151.24830 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.24831 +                  <layer name="Layer 2">
151.24832 +                     <opacity>1.0</opacity>
151.24833 +                     <fillOpacity>1.0</fillOpacity>
151.24834 +                     <blendingMode>NORMAL</blendingMode>
151.24835 +                     <locked>false</locked>
151.24836 +                     <visible>true</visible>
151.24837 +                     <shapes>
151.24838 +                        <rectangle x1="3.0" x2="119.0" y1="21.0" y2="22.0" rounding="0.0">
151.24839 +                           <matte red="192" green="192" blue="193" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.105344966" brightnessOffset="0.011764705" alphaOffset="0"/>
151.24840 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.24841 +                        </rectangle>
151.24842 +                        <rectangle x1="119.0" x2="120.0" y1="5.0" y2="22.0" rounding="0.0">
151.24843 +                           <matte red="184" green="184" blue="185" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10512091" brightnessOffset="-0.019607842" alphaOffset="0"/>
151.24844 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.24845 +                        </rectangle>
151.24846 +                        <rectangle x1="2.0" x2="3.0" y1="5.0" y2="22.0" rounding="0.0">
151.24847 +                           <matte red="184" green="184" blue="185" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10512091" brightnessOffset="-0.019607842" alphaOffset="0"/>
151.24848 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.24849 +                        </rectangle>
151.24850 +                        <rectangle x1="3.0" x2="119.0" y1="3.0" y2="5.0" rounding="0.0">
151.24851 +                           <gradient cycleMethod="NO_CYCLE">
151.24852 +                              <stop position="0.1" midpoint="0.5">
151.24853 +                                 <matte red="203" green="203" blue="204" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusLightBackground" hueOffset="0.6666667" saturationOffset="0.004901961" brightnessOffset="-0.19999999" alphaOffset="0"/>
151.24854 +                              </stop>
151.24855 +                              <stop position="0.9" midpoint="0.5">
151.24856 +                                 <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.24857 +                              </stop>
151.24858 +                           </gradient>
151.24859 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.24860 +                        </rectangle>
151.24861 +                        <rectangle x1="2.0" x2="120.0" y1="2.0" y2="5.0" rounding="0.0">
151.24862 +                           <gradient cycleMethod="NO_CYCLE">
151.24863 +                              <stop position="0.1" midpoint="0.5">
151.24864 +                                 <matte red="141" green="142" blue="143" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.0965403" brightnessOffset="-0.18431371" alphaOffset="0"/>
151.24865 +                              </stop>
151.24866 +                              <stop position="0.9" midpoint="0.5">
151.24867 +                                 <matte red="176" green="176" blue="177" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.1048766" brightnessOffset="-0.05098039" alphaOffset="0"/>
151.24868 +                              </stop>
151.24869 +                           </gradient>
151.24870 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.24871 +                        </rectangle>
151.24872 +                     </shapes>
151.24873 +                     <effects/>
151.24874 +                  </layer>
151.24875 +                  <templateLayer fileName="11399201d79.png">
151.24876 +                     <layer name="Template" type="template">
151.24877 +                        <opacity>1.0</opacity>
151.24878 +                        <fillOpacity>1.0</fillOpacity>
151.24879 +                        <blendingMode>NORMAL</blendingMode>
151.24880 +                        <locked>false</locked>
151.24881 +                        <visible>false</visible>
151.24882 +                        <shapes/>
151.24883 +                        <effects/>
151.24884 +                     </layer>
151.24885 +                  </templateLayer>
151.24886 +               </canvas>
151.24887 +            </state>
151.24888 +         </borderStates>
151.24889 +         <regions/>
151.24890 +      </uiComponent>
151.24891 +      <uiComponent opaque="false" type="javax.swing.JPasswordField" name="PasswordField" ui="PasswordFieldUI" subregion="false">
151.24892 +         <stateTypes/>
151.24893 +         <contentMargins top="6" bottom="6" left="6" right="6"/>
151.24894 +         <style>
151.24895 +            <textForeground/>
151.24896 +            <textBackground/>
151.24897 +            <background/>
151.24898 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.24899 +            <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.24900 +            <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.24901 +            <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.24902 +            <uiproperties/>
151.24903 +         </style>
151.24904 +         <backgroundStates>
151.24905 +            <state stateKeys="Disabled">
151.24906 +               <style>
151.24907 +                  <textForeground>
151.24908 +                     <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.24909 +                  </textForeground>
151.24910 +                  <textBackground/>
151.24911 +                  <background/>
151.24912 +                  <inherit-textForeground>false</inherit-textForeground>
151.24913 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.24914 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.24915 +                  <uiproperties/>
151.24916 +               </style>
151.24917 +               <canvas>
151.24918 +                  <size width="122" height="24"/>
151.24919 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.24920 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.24921 +                  <layer name="Layer 1">
151.24922 +                     <opacity>1.0</opacity>
151.24923 +                     <fillOpacity>1.0</fillOpacity>
151.24924 +                     <blendingMode>NORMAL</blendingMode>
151.24925 +                     <locked>false</locked>
151.24926 +                     <visible>true</visible>
151.24927 +                     <shapes>
151.24928 +                        <rectangle x1="2.0" x2="120.0" y1="2.0" y2="22.0" rounding="0.0">
151.24929 +                           <matte red="222" green="225" blue="229" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.015872955" saturationOffset="-0.07995863" brightnessOffset="0.15294117" alphaOffset="0"/>
151.24930 +                           <paintPoints x1="0.25" y1="0.0" x2="0.25" y2="0.1500000000000001"/>
151.24931 +                        </rectangle>
151.24932 +                     </shapes>
151.24933 +                     <effects/>
151.24934 +                  </layer>
151.24935 +                  <templateLayer fileName="1139927b26e.png">
151.24936 +                     <layer name="Template" type="template">
151.24937 +                        <opacity>1.0</opacity>
151.24938 +                        <fillOpacity>1.0</fillOpacity>
151.24939 +                        <blendingMode>NORMAL</blendingMode>
151.24940 +                        <locked>false</locked>
151.24941 +                        <visible>false</visible>
151.24942 +                        <shapes/>
151.24943 +                        <effects/>
151.24944 +                     </layer>
151.24945 +                  </templateLayer>
151.24946 +               </canvas>
151.24947 +            </state>
151.24948 +            <state stateKeys="Enabled">
151.24949 +               <style>
151.24950 +                  <textForeground/>
151.24951 +                  <textBackground/>
151.24952 +                  <background/>
151.24953 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.24954 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.24955 +                  <uiproperties/>
151.24956 +               </style>
151.24957 +               <canvas>
151.24958 +                  <size width="122" height="24"/>
151.24959 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
151.24960 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.24961 +                  <layer name="Layer 2">
151.24962 +                     <opacity>1.0</opacity>
151.24963 +                     <fillOpacity>1.0</fillOpacity>
151.24964 +                     <blendingMode>NORMAL</blendingMode>
151.24965 +                     <locked>false</locked>
151.24966 +                     <visible>true</visible>
151.24967 +                     <shapes>
151.24968 +                        <rectangle x1="2.0" x2="120.0" y1="2.0" y2="22.0" rounding="0.0">
151.24969 +                           <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.24970 +                           <paintPoints x1="0.25" y1="0.0" x2="0.25000000000000044" y2="0.16250000000000006"/>
151.24971 +                        </rectangle>
151.24972 +                     </shapes>
151.24973 +                     <effects/>
151.24974 +                  </layer>
151.24975 +                  <templateLayer fileName="11399201d79.png">
151.24976 +                     <layer name="Template" type="template">
151.24977 +                        <opacity>1.0</opacity>
151.24978 +                        <fillOpacity>1.0</fillOpacity>
151.24979 +                        <blendingMode>NORMAL</blendingMode>
151.24980 +                        <locked>false</locked>
151.24981 +                        <visible>false</visible>
151.24982 +                        <shapes/>
151.24983 +                        <effects/>
151.24984 +                     </layer>
151.24985 +                  </templateLayer>
151.24986 +               </canvas>
151.24987 +            </state>
151.24988 +            <state stateKeys="Selected">
151.24989 +               <style>
151.24990 +                  <textForeground>
151.24991 +                     <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusSelectedText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.24992 +                  </textForeground>
151.24993 +                  <textBackground/>
151.24994 +                  <background/>
151.24995 +                  <inherit-textForeground>false</inherit-textForeground>
151.24996 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.24997 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.24998 +                  <uiproperties/>
151.24999 +               </style>
151.25000 +               <canvas>
151.25001 +                  <size width="122" height="24"/>
151.25002 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
151.25003 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.25004 +                  <layer name="Layer 2">
151.25005 +                     <opacity>1.0</opacity>
151.25006 +                     <fillOpacity>1.0</fillOpacity>
151.25007 +                     <blendingMode>NORMAL</blendingMode>
151.25008 +                     <locked>false</locked>
151.25009 +                     <visible>true</visible>
151.25010 +                     <shapes>
151.25011 +                        <rectangle x1="2.0" x2="120.0" y1="2.0" y2="22.0" rounding="0.0">
151.25012 +                           <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25013 +                           <paintPoints x1="0.25" y1="0.0" x2="0.25000000000000044" y2="0.16250000000000006"/>
151.25014 +                        </rectangle>
151.25015 +                     </shapes>
151.25016 +                     <effects/>
151.25017 +                  </layer>
151.25018 +                  <templateLayer fileName="11399201d79.png">
151.25019 +                     <layer name="Template" type="template">
151.25020 +                        <opacity>1.0</opacity>
151.25021 +                        <fillOpacity>1.0</fillOpacity>
151.25022 +                        <blendingMode>NORMAL</blendingMode>
151.25023 +                        <locked>false</locked>
151.25024 +                        <visible>false</visible>
151.25025 +                        <shapes/>
151.25026 +                        <effects/>
151.25027 +                     </layer>
151.25028 +                  </templateLayer>
151.25029 +               </canvas>
151.25030 +            </state>
151.25031 +         </backgroundStates>
151.25032 +         <foregroundStates/>
151.25033 +         <borderStates>
151.25034 +            <state stateKeys="Disabled">
151.25035 +               <style>
151.25036 +                  <textForeground>
151.25037 +                     <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25038 +                  </textForeground>
151.25039 +                  <textBackground/>
151.25040 +                  <background/>
151.25041 +                  <inherit-textForeground>false</inherit-textForeground>
151.25042 +                  <uiproperties/>
151.25043 +               </style>
151.25044 +               <canvas>
151.25045 +                  <size width="122" height="24"/>
151.25046 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.25047 +                  <stretchingInsets top="5" bottom="3" left="3" right="3"/>
151.25048 +                  <layer name="Layer 1">
151.25049 +                     <opacity>1.0</opacity>
151.25050 +                     <fillOpacity>1.0</fillOpacity>
151.25051 +                     <blendingMode>NORMAL</blendingMode>
151.25052 +                     <locked>false</locked>
151.25053 +                     <visible>true</visible>
151.25054 +                     <shapes>
151.25055 +                        <rectangle x1="119.0" x2="120.0" y1="5.0" y2="21.0" rounding="0.0">
151.25056 +                           <matte red="210" green="212" blue="217" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07826825" brightnessOffset="0.10588235" alphaOffset="0"/>
151.25057 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25058 +                        </rectangle>
151.25059 +                        <rectangle x1="2.0" x2="120.0" y1="22.0" y2="21.0" rounding="0.0">
151.25060 +                           <matte red="210" green="212" blue="217" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07826825" brightnessOffset="0.10588235" alphaOffset="0"/>
151.25061 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25062 +                        </rectangle>
151.25063 +                        <rectangle x1="2.0" x2="3.0" y1="5.0" y2="21.0" rounding="0.0">
151.25064 +                           <matte red="208" green="210" blue="215" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07796818" brightnessOffset="0.09803921" alphaOffset="0"/>
151.25065 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25066 +                        </rectangle>
151.25067 +                        <rectangle x1="3.0" x2="119.0" y1="3.0" y2="5.0" rounding="0.0">
151.25068 +                           <gradient cycleMethod="NO_CYCLE">
151.25069 +                              <stop position="0.0" midpoint="0.5">
151.25070 +                                 <matte red="212" green="214" blue="219" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07856284" brightnessOffset="0.11372548" alphaOffset="0"/>
151.25071 +                              </stop>
151.25072 +                              <stop position="1.0" midpoint="0.5">
151.25073 +                                 <matte red="222" green="225" blue="229" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.015872955" saturationOffset="-0.07995863" brightnessOffset="0.15294117" alphaOffset="0"/>
151.25074 +                              </stop>
151.25075 +                           </gradient>
151.25076 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.25077 +                        </rectangle>
151.25078 +                        <rectangle x1="2.0" x2="120.0" y1="2.0" y2="5.0" rounding="0.0">
151.25079 +                           <gradient cycleMethod="NO_CYCLE">
151.25080 +                              <stop position="0.0" midpoint="0.5">
151.25081 +                                 <matte red="199" green="202" blue="207" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.006944418" saturationOffset="-0.07187897" brightnessOffset="0.06666666" alphaOffset="0"/>
151.25082 +                              </stop>
151.25083 +                              <stop position="1.0" midpoint="0.5">
151.25084 +                                 <matte red="210" green="212" blue="217" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07826825" brightnessOffset="0.10588235" alphaOffset="0"/>
151.25085 +                              </stop>
151.25086 +                           </gradient>
151.25087 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.25088 +                        </rectangle>
151.25089 +                     </shapes>
151.25090 +                     <effects/>
151.25091 +                  </layer>
151.25092 +                  <templateLayer fileName="1139927b26e.png">
151.25093 +                     <layer name="Template" type="template">
151.25094 +                        <opacity>1.0</opacity>
151.25095 +                        <fillOpacity>1.0</fillOpacity>
151.25096 +                        <blendingMode>NORMAL</blendingMode>
151.25097 +                        <locked>false</locked>
151.25098 +                        <visible>false</visible>
151.25099 +                        <shapes/>
151.25100 +                        <effects/>
151.25101 +                     </layer>
151.25102 +                  </templateLayer>
151.25103 +               </canvas>
151.25104 +            </state>
151.25105 +            <state stateKeys="Focused">
151.25106 +               <style>
151.25107 +                  <textForeground/>
151.25108 +                  <textBackground/>
151.25109 +                  <background/>
151.25110 +                  <uiproperties/>
151.25111 +               </style>
151.25112 +               <canvas>
151.25113 +                  <size width="122" height="24"/>
151.25114 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
151.25115 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.25116 +                  <layer name="Layer 2">
151.25117 +                     <opacity>1.0</opacity>
151.25118 +                     <fillOpacity>1.0</fillOpacity>
151.25119 +                     <blendingMode>NORMAL</blendingMode>
151.25120 +                     <locked>false</locked>
151.25121 +                     <visible>true</visible>
151.25122 +                     <shapes>
151.25123 +                        <path>
151.25124 +                           <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25125 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25126 +                           <points>
151.25127 +                              <point x="2.0" y="2.0" cp1x="2.0" cp1y="2.0" cp2x="2.0" cp2y="2.0"/>
151.25128 +                              <point x="2.0" y="22.0" cp1x="2.0" cp1y="22.0" cp2x="2.0" cp2y="22.0"/>
151.25129 +                              <point x="120.0" y="22.0" cp1x="120.0" cp1y="22.0" cp2x="120.0" cp2y="22.0"/>
151.25130 +                              <point x="120.0" y="2.0" cp1x="120.0" cp1y="2.0" cp2x="120.0" cp2y="2.0"/>
151.25131 +                              <point x="121.4" y="2.0" cp1x="121.5" cp1y="2.0" cp2x="121.5" cp2y="2.0"/>
151.25132 +                              <point x="121.4" y="23.4" cp1x="121.4" cp1y="23.4" cp2x="121.4" cp2y="23.4"/>
151.25133 +                              <point x="0.6" y="23.4" cp1x="0.6" cp1y="23.4" cp2x="0.6" cp2y="23.4"/>
151.25134 +                              <point x="0.6" y="0.6" cp1x="0.6" cp1y="0.6" cp2x="0.6" cp2y="0.6"/>
151.25135 +                              <point x="121.4" y="0.6" cp1x="121.4" cp1y="0.6" cp2x="121.4" cp2y="0.6"/>
151.25136 +                              <point x="121.4" y="2.0" cp1x="121.4" cp1y="2.0" cp2x="121.4" cp2y="2.0"/>
151.25137 +                           </points>
151.25138 +                        </path>
151.25139 +                        <rectangle x1="3.0" x2="119.0" y1="21.0" y2="22.0" rounding="0.0">
151.25140 +                           <matte red="192" green="192" blue="193" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.105344966" brightnessOffset="0.011764705" alphaOffset="0"/>
151.25141 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25142 +                        </rectangle>
151.25143 +                        <rectangle x1="119.0" x2="120.0" y1="5.0" y2="22.0" rounding="0.0">
151.25144 +                           <matte red="184" green="184" blue="185" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10512091" brightnessOffset="-0.019607842" alphaOffset="0"/>
151.25145 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25146 +                        </rectangle>
151.25147 +                        <rectangle x1="2.0" x2="3.0" y1="5.0" y2="22.0" rounding="0.0">
151.25148 +                           <matte red="184" green="184" blue="185" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10512091" brightnessOffset="-0.019607842" alphaOffset="0"/>
151.25149 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25150 +                        </rectangle>
151.25151 +                        <rectangle x1="3.0" x2="119.0" y1="3.0" y2="5.0" rounding="0.0">
151.25152 +                           <gradient cycleMethod="NO_CYCLE">
151.25153 +                              <stop position="0.1" midpoint="0.5">
151.25154 +                                 <matte red="203" green="203" blue="204" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusLightBackground" hueOffset="0.6666667" saturationOffset="0.004901961" brightnessOffset="-0.19999999" alphaOffset="0"/>
151.25155 +                              </stop>
151.25156 +                              <stop position="0.9" midpoint="0.5">
151.25157 +                                 <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25158 +                              </stop>
151.25159 +                           </gradient>
151.25160 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.25161 +                        </rectangle>
151.25162 +                        <rectangle x1="2.0" x2="120.0" y1="2.0" y2="5.0" rounding="0.0">
151.25163 +                           <gradient cycleMethod="NO_CYCLE">
151.25164 +                              <stop position="0.1" midpoint="0.5">
151.25165 +                                 <matte red="141" green="142" blue="143" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.0965403" brightnessOffset="-0.18431371" alphaOffset="0"/>
151.25166 +                              </stop>
151.25167 +                              <stop position="0.9" midpoint="0.5">
151.25168 +                                 <matte red="176" green="176" blue="177" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.1048766" brightnessOffset="-0.05098039" alphaOffset="0"/>
151.25169 +                              </stop>
151.25170 +                           </gradient>
151.25171 +                           <paintPoints x1="0.25" y1="0.0" x2="0.25000000000000044" y2="0.16250000000000006"/>
151.25172 +                        </rectangle>
151.25173 +                     </shapes>
151.25174 +                     <effects/>
151.25175 +                  </layer>
151.25176 +                  <templateLayer fileName="11399201d79.png">
151.25177 +                     <layer name="Template" type="template">
151.25178 +                        <opacity>1.0</opacity>
151.25179 +                        <fillOpacity>1.0</fillOpacity>
151.25180 +                        <blendingMode>NORMAL</blendingMode>
151.25181 +                        <locked>false</locked>
151.25182 +                        <visible>false</visible>
151.25183 +                        <shapes/>
151.25184 +                        <effects/>
151.25185 +                     </layer>
151.25186 +                  </templateLayer>
151.25187 +               </canvas>
151.25188 +            </state>
151.25189 +            <state stateKeys="Enabled">
151.25190 +               <style>
151.25191 +                  <textForeground/>
151.25192 +                  <textBackground/>
151.25193 +                  <background/>
151.25194 +                  <uiproperties/>
151.25195 +               </style>
151.25196 +               <canvas>
151.25197 +                  <size width="122" height="24"/>
151.25198 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
151.25199 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.25200 +                  <layer name="Layer 2">
151.25201 +                     <opacity>1.0</opacity>
151.25202 +                     <fillOpacity>1.0</fillOpacity>
151.25203 +                     <blendingMode>NORMAL</blendingMode>
151.25204 +                     <locked>false</locked>
151.25205 +                     <visible>true</visible>
151.25206 +                     <shapes>
151.25207 +                        <rectangle x1="3.0" x2="119.0" y1="21.0" y2="22.0" rounding="0.0">
151.25208 +                           <matte red="192" green="192" blue="193" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.105344966" brightnessOffset="0.011764705" alphaOffset="0"/>
151.25209 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25210 +                        </rectangle>
151.25211 +                        <rectangle x1="119.0" x2="120.0" y1="5.0" y2="22.0" rounding="0.0">
151.25212 +                           <matte red="184" green="184" blue="185" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10512091" brightnessOffset="-0.019607842" alphaOffset="0"/>
151.25213 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25214 +                        </rectangle>
151.25215 +                        <rectangle x1="2.0" x2="3.0" y1="5.0" y2="22.0" rounding="0.0">
151.25216 +                           <matte red="184" green="184" blue="185" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10512091" brightnessOffset="-0.019607842" alphaOffset="0"/>
151.25217 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25218 +                        </rectangle>
151.25219 +                        <rectangle x1="3.0" x2="119.0" y1="3.0" y2="5.0" rounding="0.0">
151.25220 +                           <gradient cycleMethod="NO_CYCLE">
151.25221 +                              <stop position="0.1" midpoint="0.5">
151.25222 +                                 <matte red="203" green="203" blue="204" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusLightBackground" hueOffset="0.6666667" saturationOffset="0.004901961" brightnessOffset="-0.19999999" alphaOffset="0"/>
151.25223 +                              </stop>
151.25224 +                              <stop position="0.9" midpoint="0.5">
151.25225 +                                 <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25226 +                              </stop>
151.25227 +                           </gradient>
151.25228 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.25229 +                        </rectangle>
151.25230 +                        <rectangle x1="2.0" x2="120.0" y1="2.0" y2="5.0" rounding="0.0">
151.25231 +                           <gradient cycleMethod="NO_CYCLE">
151.25232 +                              <stop position="0.1" midpoint="0.5">
151.25233 +                                 <matte red="141" green="142" blue="143" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.0965403" brightnessOffset="-0.18431371" alphaOffset="0"/>
151.25234 +                              </stop>
151.25235 +                              <stop position="0.9" midpoint="0.5">
151.25236 +                                 <matte red="176" green="176" blue="177" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.1048766" brightnessOffset="-0.05098039" alphaOffset="0"/>
151.25237 +                              </stop>
151.25238 +                           </gradient>
151.25239 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.25240 +                        </rectangle>
151.25241 +                     </shapes>
151.25242 +                     <effects/>
151.25243 +                  </layer>
151.25244 +                  <templateLayer fileName="11399201d79.png">
151.25245 +                     <layer name="Template" type="template">
151.25246 +                        <opacity>1.0</opacity>
151.25247 +                        <fillOpacity>1.0</fillOpacity>
151.25248 +                        <blendingMode>NORMAL</blendingMode>
151.25249 +                        <locked>false</locked>
151.25250 +                        <visible>false</visible>
151.25251 +                        <shapes/>
151.25252 +                        <effects/>
151.25253 +                     </layer>
151.25254 +                  </templateLayer>
151.25255 +               </canvas>
151.25256 +            </state>
151.25257 +         </borderStates>
151.25258 +         <regions/>
151.25259 +      </uiComponent>
151.25260 +      <uiComponent opaque="false" type="javax.swing.JTextArea" name="TextArea" ui="TextAreaUI" subregion="false">
151.25261 +         <stateTypes>
151.25262 +            <stateType key="Enabled"/>
151.25263 +            <stateType key="MouseOver"/>
151.25264 +            <stateType key="Pressed"/>
151.25265 +            <stateType key="Selected"/>
151.25266 +            <stateType key="Disabled"/>
151.25267 +            <stateType key="Focused"/>
151.25268 +            <stateType key="NotInScrollPane">
151.25269 +               <codeSnippet><![CDATA[
151.25270 +                          return !(c.getParent() instanceof javax.swing.JViewport);]]></codeSnippet>
151.25271 +            </stateType>
151.25272 +         </stateTypes>
151.25273 +         <contentMargins top="6" bottom="6" left="6" right="6"/>
151.25274 +         <style>
151.25275 +            <textForeground/>
151.25276 +            <textBackground/>
151.25277 +            <background/>
151.25278 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.25279 +            <cacheMode>NO_CACHING</cacheMode>
151.25280 +            <uiproperties/>
151.25281 +         </style>
151.25282 +         <backgroundStates>
151.25283 +            <state stateKeys="Disabled">
151.25284 +               <style>
151.25285 +                  <textForeground>
151.25286 +                     <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25287 +                  </textForeground>
151.25288 +                  <textBackground/>
151.25289 +                  <background/>
151.25290 +                  <inherit-textForeground>false</inherit-textForeground>
151.25291 +                  <uiproperties/>
151.25292 +               </style>
151.25293 +               <canvas>
151.25294 +                  <size width="122" height="24"/>
151.25295 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.25296 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.25297 +                  <layer name="Layer 1">
151.25298 +                     <opacity>1.0</opacity>
151.25299 +                     <fillOpacity>1.0</fillOpacity>
151.25300 +                     <blendingMode>NORMAL</blendingMode>
151.25301 +                     <locked>false</locked>
151.25302 +                     <visible>true</visible>
151.25303 +                     <shapes>
151.25304 +                        <rectangle x1="0.0" x2="122.0" y1="0.0" y2="24.0" rounding="0.0">
151.25305 +                           <matte red="222" green="225" blue="229" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.015872955" saturationOffset="-0.07995863" brightnessOffset="0.15294117" alphaOffset="0"/>
151.25306 +                           <paintPoints x1="0.25" y1="0.0" x2="0.25" y2="0.1500000000000001"/>
151.25307 +                        </rectangle>
151.25308 +                     </shapes>
151.25309 +                     <effects/>
151.25310 +                  </layer>
151.25311 +               </canvas>
151.25312 +            </state>
151.25313 +            <state stateKeys="Enabled">
151.25314 +               <style>
151.25315 +                  <textForeground/>
151.25316 +                  <textBackground/>
151.25317 +                  <background/>
151.25318 +                  <uiproperties/>
151.25319 +               </style>
151.25320 +               <canvas>
151.25321 +                  <size width="122" height="24"/>
151.25322 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
151.25323 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.25324 +                  <layer name="Layer 2">
151.25325 +                     <opacity>1.0</opacity>
151.25326 +                     <fillOpacity>1.0</fillOpacity>
151.25327 +                     <blendingMode>NORMAL</blendingMode>
151.25328 +                     <locked>false</locked>
151.25329 +                     <visible>true</visible>
151.25330 +                     <shapes>
151.25331 +                        <rectangle x1="0.0" x2="122.0" y1="0.0" y2="24.0" rounding="0.0">
151.25332 +                           <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25333 +                           <paintPoints x1="0.25" y1="0.0" x2="0.25000000000000044" y2="0.16250000000000006"/>
151.25334 +                        </rectangle>
151.25335 +                     </shapes>
151.25336 +                     <effects/>
151.25337 +                  </layer>
151.25338 +               </canvas>
151.25339 +            </state>
151.25340 +            <state stateKeys="Disabled+NotInScrollPane">
151.25341 +               <style>
151.25342 +                  <textForeground>
151.25343 +                     <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25344 +                  </textForeground>
151.25345 +                  <textBackground/>
151.25346 +                  <background/>
151.25347 +                  <inherit-textForeground>false</inherit-textForeground>
151.25348 +                  <uiproperties/>
151.25349 +               </style>
151.25350 +               <canvas>
151.25351 +                  <size width="122" height="24"/>
151.25352 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.25353 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.25354 +                  <layer name="Layer 1">
151.25355 +                     <opacity>1.0</opacity>
151.25356 +                     <fillOpacity>1.0</fillOpacity>
151.25357 +                     <blendingMode>NORMAL</blendingMode>
151.25358 +                     <locked>false</locked>
151.25359 +                     <visible>true</visible>
151.25360 +                     <shapes>
151.25361 +                        <rectangle x1="2.0" x2="120.0" y1="2.0" y2="22.0" rounding="0.0">
151.25362 +                           <matte red="222" green="225" blue="229" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.015872955" saturationOffset="-0.07995863" brightnessOffset="0.15294117" alphaOffset="0"/>
151.25363 +                           <paintPoints x1="0.25" y1="0.0" x2="0.25" y2="0.1500000000000001"/>
151.25364 +                        </rectangle>
151.25365 +                     </shapes>
151.25366 +                     <effects/>
151.25367 +                  </layer>
151.25368 +               </canvas>
151.25369 +            </state>
151.25370 +            <state stateKeys="Enabled+NotInScrollPane">
151.25371 +               <style>
151.25372 +                  <textForeground/>
151.25373 +                  <textBackground/>
151.25374 +                  <background/>
151.25375 +                  <uiproperties/>
151.25376 +               </style>
151.25377 +               <canvas>
151.25378 +                  <size width="122" height="24"/>
151.25379 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
151.25380 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.25381 +                  <layer name="Layer 2">
151.25382 +                     <opacity>1.0</opacity>
151.25383 +                     <fillOpacity>1.0</fillOpacity>
151.25384 +                     <blendingMode>NORMAL</blendingMode>
151.25385 +                     <locked>false</locked>
151.25386 +                     <visible>true</visible>
151.25387 +                     <shapes>
151.25388 +                        <rectangle x1="2.0" x2="120.0" y1="2.0" y2="22.0" rounding="0.0">
151.25389 +                           <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25390 +                           <paintPoints x1="0.25" y1="0.0" x2="0.25000000000000044" y2="0.16250000000000006"/>
151.25391 +                        </rectangle>
151.25392 +                     </shapes>
151.25393 +                     <effects/>
151.25394 +                  </layer>
151.25395 +               </canvas>
151.25396 +            </state>
151.25397 +            <state stateKeys="Selected">
151.25398 +               <style>
151.25399 +                  <textForeground>
151.25400 +                     <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusSelectedText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25401 +                  </textForeground>
151.25402 +                  <textBackground/>
151.25403 +                  <background/>
151.25404 +                  <inherit-textForeground>false</inherit-textForeground>
151.25405 +                  <uiproperties/>
151.25406 +               </style>
151.25407 +               <canvas>
151.25408 +                  <size width="122" height="24"/>
151.25409 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
151.25410 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.25411 +                  <layer name="Layer 2">
151.25412 +                     <opacity>1.0</opacity>
151.25413 +                     <fillOpacity>1.0</fillOpacity>
151.25414 +                     <blendingMode>NORMAL</blendingMode>
151.25415 +                     <locked>false</locked>
151.25416 +                     <visible>true</visible>
151.25417 +                     <shapes>
151.25418 +                        <rectangle x1="2.0" x2="120.0" y1="2.0" y2="22.0" rounding="0.0">
151.25419 +                           <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25420 +                           <paintPoints x1="0.25" y1="0.0" x2="0.25000000000000044" y2="0.16250000000000006"/>
151.25421 +                        </rectangle>
151.25422 +                     </shapes>
151.25423 +                     <effects/>
151.25424 +                  </layer>
151.25425 +               </canvas>
151.25426 +            </state>
151.25427 +         </backgroundStates>
151.25428 +         <foregroundStates/>
151.25429 +         <borderStates>
151.25430 +            <state stateKeys="Disabled+NotInScrollPane">
151.25431 +               <style>
151.25432 +                  <textForeground>
151.25433 +                     <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25434 +                  </textForeground>
151.25435 +                  <textBackground/>
151.25436 +                  <background/>
151.25437 +                  <inherit-textForeground>false</inherit-textForeground>
151.25438 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.25439 +                  <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.25440 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.25441 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.25442 +                  <uiproperties/>
151.25443 +               </style>
151.25444 +               <canvas>
151.25445 +                  <size width="122" height="24"/>
151.25446 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.25447 +                  <stretchingInsets top="5" bottom="3" left="3" right="3"/>
151.25448 +                  <layer name="Layer 1">
151.25449 +                     <opacity>1.0</opacity>
151.25450 +                     <fillOpacity>1.0</fillOpacity>
151.25451 +                     <blendingMode>NORMAL</blendingMode>
151.25452 +                     <locked>false</locked>
151.25453 +                     <visible>true</visible>
151.25454 +                     <shapes>
151.25455 +                        <rectangle x1="119.0" x2="120.0" y1="5.0" y2="21.0" rounding="0.0">
151.25456 +                           <matte red="210" green="212" blue="217" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07826825" brightnessOffset="0.10588235" alphaOffset="0"/>
151.25457 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25458 +                        </rectangle>
151.25459 +                        <rectangle x1="2.0" x2="120.0" y1="22.0" y2="21.0" rounding="0.0">
151.25460 +                           <matte red="210" green="212" blue="217" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07826825" brightnessOffset="0.10588235" alphaOffset="0"/>
151.25461 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25462 +                        </rectangle>
151.25463 +                        <rectangle x1="2.0" x2="3.0" y1="5.0" y2="21.0" rounding="0.0">
151.25464 +                           <matte red="208" green="210" blue="215" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07796818" brightnessOffset="0.09803921" alphaOffset="0"/>
151.25465 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25466 +                        </rectangle>
151.25467 +                        <rectangle x1="3.0" x2="119.0" y1="3.0" y2="5.0" rounding="0.0">
151.25468 +                           <gradient cycleMethod="NO_CYCLE">
151.25469 +                              <stop position="0.0" midpoint="0.5">
151.25470 +                                 <matte red="212" green="214" blue="219" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07856284" brightnessOffset="0.11372548" alphaOffset="0"/>
151.25471 +                              </stop>
151.25472 +                              <stop position="1.0" midpoint="0.5">
151.25473 +                                 <matte red="222" green="225" blue="229" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.015872955" saturationOffset="-0.07995863" brightnessOffset="0.15294117" alphaOffset="0"/>
151.25474 +                              </stop>
151.25475 +                           </gradient>
151.25476 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.25477 +                        </rectangle>
151.25478 +                        <rectangle x1="2.0" x2="120.0" y1="2.0" y2="5.0" rounding="0.0">
151.25479 +                           <gradient cycleMethod="NO_CYCLE">
151.25480 +                              <stop position="0.0" midpoint="0.5">
151.25481 +                                 <matte red="199" green="202" blue="207" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.006944418" saturationOffset="-0.07187897" brightnessOffset="0.06666666" alphaOffset="0"/>
151.25482 +                              </stop>
151.25483 +                              <stop position="1.0" midpoint="0.5">
151.25484 +                                 <matte red="210" green="212" blue="217" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.07826825" brightnessOffset="0.10588235" alphaOffset="0"/>
151.25485 +                              </stop>
151.25486 +                           </gradient>
151.25487 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.25488 +                        </rectangle>
151.25489 +                     </shapes>
151.25490 +                     <effects/>
151.25491 +                  </layer>
151.25492 +               </canvas>
151.25493 +            </state>
151.25494 +            <state stateKeys="Focused+NotInScrollPane">
151.25495 +               <style>
151.25496 +                  <textForeground/>
151.25497 +                  <textBackground/>
151.25498 +                  <background/>
151.25499 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.25500 +                  <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.25501 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.25502 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.25503 +                  <uiproperties/>
151.25504 +               </style>
151.25505 +               <canvas>
151.25506 +                  <size width="122" height="24"/>
151.25507 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
151.25508 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.25509 +                  <layer name="Layer 2">
151.25510 +                     <opacity>1.0</opacity>
151.25511 +                     <fillOpacity>1.0</fillOpacity>
151.25512 +                     <blendingMode>NORMAL</blendingMode>
151.25513 +                     <locked>false</locked>
151.25514 +                     <visible>true</visible>
151.25515 +                     <shapes>
151.25516 +                        <path>
151.25517 +                           <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25518 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25519 +                           <points>
151.25520 +                              <point x="2.0" y="2.0" cp1x="2.0" cp1y="2.0" cp2x="2.0" cp2y="2.0"/>
151.25521 +                              <point x="2.0" y="22.0" cp1x="2.0" cp1y="22.0" cp2x="2.0" cp2y="22.0"/>
151.25522 +                              <point x="120.0" y="22.0" cp1x="120.0" cp1y="22.0" cp2x="120.0" cp2y="22.0"/>
151.25523 +                              <point x="120.0" y="2.0" cp1x="120.0" cp1y="2.0" cp2x="120.0" cp2y="2.0"/>
151.25524 +                              <point x="121.4" y="2.0" cp1x="121.5" cp1y="2.0" cp2x="121.5" cp2y="2.0"/>
151.25525 +                              <point x="121.4" y="23.4" cp1x="121.4" cp1y="23.4" cp2x="121.4" cp2y="23.4"/>
151.25526 +                              <point x="0.6" y="23.4" cp1x="0.6" cp1y="23.4" cp2x="0.6" cp2y="23.4"/>
151.25527 +                              <point x="0.6" y="0.6" cp1x="0.6" cp1y="0.6" cp2x="0.6" cp2y="0.6"/>
151.25528 +                              <point x="121.4" y="0.6" cp1x="121.4" cp1y="0.6" cp2x="121.4" cp2y="0.6"/>
151.25529 +                              <point x="121.4" y="2.0" cp1x="121.4" cp1y="2.0" cp2x="121.4" cp2y="2.0"/>
151.25530 +                           </points>
151.25531 +                        </path>
151.25532 +                        <rectangle x1="3.0" x2="119.0" y1="21.0" y2="22.0" rounding="0.0">
151.25533 +                           <matte red="192" green="192" blue="193" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.105344966" brightnessOffset="0.011764705" alphaOffset="0"/>
151.25534 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25535 +                        </rectangle>
151.25536 +                        <rectangle x1="119.0" x2="120.0" y1="5.0" y2="22.0" rounding="0.0">
151.25537 +                           <matte red="184" green="184" blue="185" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10512091" brightnessOffset="-0.019607842" alphaOffset="0"/>
151.25538 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25539 +                        </rectangle>
151.25540 +                        <rectangle x1="2.0" x2="3.0" y1="5.0" y2="22.0" rounding="0.0">
151.25541 +                           <matte red="184" green="184" blue="185" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10512091" brightnessOffset="-0.019607842" alphaOffset="0"/>
151.25542 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25543 +                        </rectangle>
151.25544 +                        <rectangle x1="3.0" x2="119.0" y1="3.0" y2="5.0" rounding="0.0">
151.25545 +                           <gradient cycleMethod="NO_CYCLE">
151.25546 +                              <stop position="0.1" midpoint="0.5">
151.25547 +                                 <matte red="203" green="203" blue="204" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusLightBackground" hueOffset="0.6666667" saturationOffset="0.004901961" brightnessOffset="-0.19999999" alphaOffset="0"/>
151.25548 +                              </stop>
151.25549 +                              <stop position="0.9" midpoint="0.5">
151.25550 +                                 <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25551 +                              </stop>
151.25552 +                           </gradient>
151.25553 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.25554 +                        </rectangle>
151.25555 +                        <rectangle x1="2.0" x2="120.0" y1="2.0" y2="5.0" rounding="0.0">
151.25556 +                           <gradient cycleMethod="NO_CYCLE">
151.25557 +                              <stop position="0.1" midpoint="0.5">
151.25558 +                                 <matte red="141" green="142" blue="143" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.0965403" brightnessOffset="-0.18431371" alphaOffset="0"/>
151.25559 +                              </stop>
151.25560 +                              <stop position="0.9" midpoint="0.5">
151.25561 +                                 <matte red="176" green="176" blue="177" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.1048766" brightnessOffset="-0.05098039" alphaOffset="0"/>
151.25562 +                              </stop>
151.25563 +                           </gradient>
151.25564 +                           <paintPoints x1="0.25" y1="0.0" x2="0.25000000000000044" y2="0.16250000000000006"/>
151.25565 +                        </rectangle>
151.25566 +                     </shapes>
151.25567 +                     <effects/>
151.25568 +                  </layer>
151.25569 +               </canvas>
151.25570 +            </state>
151.25571 +            <state stateKeys="Enabled+NotInScrollPane">
151.25572 +               <style>
151.25573 +                  <textForeground/>
151.25574 +                  <textBackground/>
151.25575 +                  <background/>
151.25576 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.25577 +                  <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.25578 +                  <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.25579 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.25580 +                  <uiproperties/>
151.25581 +               </style>
151.25582 +               <canvas>
151.25583 +                  <size width="122" height="24"/>
151.25584 +                  <nextLayerNameIndex>3</nextLayerNameIndex>
151.25585 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.25586 +                  <layer name="Layer 2">
151.25587 +                     <opacity>1.0</opacity>
151.25588 +                     <fillOpacity>1.0</fillOpacity>
151.25589 +                     <blendingMode>NORMAL</blendingMode>
151.25590 +                     <locked>false</locked>
151.25591 +                     <visible>true</visible>
151.25592 +                     <shapes>
151.25593 +                        <rectangle x1="3.0" x2="119.0" y1="21.0" y2="22.0" rounding="0.0">
151.25594 +                           <matte red="192" green="192" blue="193" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.105344966" brightnessOffset="0.011764705" alphaOffset="0"/>
151.25595 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25596 +                        </rectangle>
151.25597 +                        <rectangle x1="119.0" x2="120.0" y1="5.0" y2="22.0" rounding="0.0">
151.25598 +                           <matte red="184" green="184" blue="185" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10512091" brightnessOffset="-0.019607842" alphaOffset="0"/>
151.25599 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25600 +                        </rectangle>
151.25601 +                        <rectangle x1="2.0" x2="3.0" y1="5.0" y2="22.0" rounding="0.0">
151.25602 +                           <matte red="184" green="184" blue="185" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10512091" brightnessOffset="-0.019607842" alphaOffset="0"/>
151.25603 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25604 +                        </rectangle>
151.25605 +                        <rectangle x1="3.0" x2="119.0" y1="3.0" y2="5.0" rounding="0.0">
151.25606 +                           <gradient cycleMethod="NO_CYCLE">
151.25607 +                              <stop position="0.1" midpoint="0.5">
151.25608 +                                 <matte red="203" green="203" blue="204" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusLightBackground" hueOffset="0.6666667" saturationOffset="0.004901961" brightnessOffset="-0.19999999" alphaOffset="0"/>
151.25609 +                              </stop>
151.25610 +                              <stop position="0.9" midpoint="0.5">
151.25611 +                                 <matte red="255" green="255" blue="255" alpha="255" componentPropertyName="background" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25612 +                              </stop>
151.25613 +                           </gradient>
151.25614 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.25615 +                        </rectangle>
151.25616 +                        <rectangle x1="2.0" x2="120.0" y1="2.0" y2="5.0" rounding="0.0">
151.25617 +                           <gradient cycleMethod="NO_CYCLE">
151.25618 +                              <stop position="0.1" midpoint="0.5">
151.25619 +                                 <matte red="141" green="142" blue="143" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.0965403" brightnessOffset="-0.18431371" alphaOffset="0"/>
151.25620 +                              </stop>
151.25621 +                              <stop position="0.9" midpoint="0.5">
151.25622 +                                 <matte red="176" green="176" blue="177" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.1048766" brightnessOffset="-0.05098039" alphaOffset="0"/>
151.25623 +                              </stop>
151.25624 +                           </gradient>
151.25625 +                           <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.25626 +                        </rectangle>
151.25627 +                     </shapes>
151.25628 +                     <effects/>
151.25629 +                  </layer>
151.25630 +               </canvas>
151.25631 +            </state>
151.25632 +         </borderStates>
151.25633 +         <regions/>
151.25634 +      </uiComponent>
151.25635 +      <uiComponent opaque="true" type="javax.swing.JTextPane" name="TextPane" ui="TextPaneUI" subregion="false">
151.25636 +         <stateTypes/>
151.25637 +         <contentMargins top="4" bottom="4" left="6" right="6"/>
151.25638 +         <style>
151.25639 +            <textForeground/>
151.25640 +            <textBackground/>
151.25641 +            <background>
151.25642 +               <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25643 +            </background>
151.25644 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.25645 +            <cacheMode>NO_CACHING</cacheMode>
151.25646 +            <uiproperties/>
151.25647 +         </style>
151.25648 +         <backgroundStates>
151.25649 +            <state stateKeys="Disabled">
151.25650 +               <style>
151.25651 +                  <textForeground>
151.25652 +                     <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25653 +                  </textForeground>
151.25654 +                  <textBackground/>
151.25655 +                  <background/>
151.25656 +                  <inherit-textForeground>false</inherit-textForeground>
151.25657 +                  <uiproperties/>
151.25658 +               </style>
151.25659 +               <canvas>
151.25660 +                  <size width="100" height="30"/>
151.25661 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.25662 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.25663 +                  <layer name="Layer 2">
151.25664 +                     <opacity>1.0</opacity>
151.25665 +                     <fillOpacity>1.0</fillOpacity>
151.25666 +                     <blendingMode>NORMAL</blendingMode>
151.25667 +                     <locked>false</locked>
151.25668 +                     <visible>true</visible>
151.25669 +                     <shapes>
151.25670 +                        <rectangle x1="0.0" x2="100.0" y1="0.0" y2="30.0" rounding="0.0">
151.25671 +                           <matte red="222" green="225" blue="229" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.015872955" saturationOffset="-0.07995863" brightnessOffset="0.15294117" alphaOffset="0"/>
151.25672 +                           <paintPoints x1="0.25" y1="0.0" x2="0.2" y2="0.1"/>
151.25673 +                        </rectangle>
151.25674 +                     </shapes>
151.25675 +                     <effects/>
151.25676 +                  </layer>
151.25677 +               </canvas>
151.25678 +            </state>
151.25679 +            <state stateKeys="Enabled">
151.25680 +               <style>
151.25681 +                  <textForeground/>
151.25682 +                  <textBackground/>
151.25683 +                  <background/>
151.25684 +                  <uiproperties/>
151.25685 +               </style>
151.25686 +               <canvas>
151.25687 +                  <size width="100" height="30"/>
151.25688 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.25689 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.25690 +                  <layer name="Layer 2">
151.25691 +                     <opacity>1.0</opacity>
151.25692 +                     <fillOpacity>1.0</fillOpacity>
151.25693 +                     <blendingMode>NORMAL</blendingMode>
151.25694 +                     <locked>false</locked>
151.25695 +                     <visible>true</visible>
151.25696 +                     <shapes>
151.25697 +                        <rectangle x1="0.0" x2="100.0" y1="0.0" y2="30.0" rounding="0.0">
151.25698 +                           <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25699 +                           <paintPoints x1="0.25" y1="0.0" x2="0.2" y2="0.1"/>
151.25700 +                        </rectangle>
151.25701 +                     </shapes>
151.25702 +                     <effects/>
151.25703 +                  </layer>
151.25704 +               </canvas>
151.25705 +            </state>
151.25706 +            <state stateKeys="Selected">
151.25707 +               <style>
151.25708 +                  <textForeground>
151.25709 +                     <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusSelectedText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25710 +                  </textForeground>
151.25711 +                  <textBackground/>
151.25712 +                  <background/>
151.25713 +                  <inherit-textForeground>false</inherit-textForeground>
151.25714 +                  <uiproperties/>
151.25715 +               </style>
151.25716 +               <canvas>
151.25717 +                  <size width="100" height="30"/>
151.25718 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.25719 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.25720 +                  <layer name="Layer 1">
151.25721 +                     <opacity>1.0</opacity>
151.25722 +                     <fillOpacity>1.0</fillOpacity>
151.25723 +                     <blendingMode>NORMAL</blendingMode>
151.25724 +                     <locked>false</locked>
151.25725 +                     <visible>true</visible>
151.25726 +                     <shapes>
151.25727 +                        <rectangle x1="0.0" x2="100.0" y1="0.0" y2="30.0" rounding="0.0">
151.25728 +                           <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25729 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25730 +                        </rectangle>
151.25731 +                     </shapes>
151.25732 +                     <effects/>
151.25733 +                  </layer>
151.25734 +               </canvas>
151.25735 +            </state>
151.25736 +         </backgroundStates>
151.25737 +         <foregroundStates/>
151.25738 +         <borderStates/>
151.25739 +         <regions/>
151.25740 +      </uiComponent>
151.25741 +      <uiComponent opaque="true" type="javax.swing.JEditorPane" name="EditorPane" ui="EditorPaneUI" subregion="false">
151.25742 +         <stateTypes/>
151.25743 +         <contentMargins top="4" bottom="4" left="6" right="6"/>
151.25744 +         <style>
151.25745 +            <textForeground/>
151.25746 +            <textBackground/>
151.25747 +            <background>
151.25748 +               <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25749 +            </background>
151.25750 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.25751 +            <cacheMode>NO_CACHING</cacheMode>
151.25752 +            <uiproperties/>
151.25753 +         </style>
151.25754 +         <backgroundStates>
151.25755 +            <state stateKeys="Disabled">
151.25756 +               <style>
151.25757 +                  <textForeground>
151.25758 +                     <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25759 +                  </textForeground>
151.25760 +                  <textBackground/>
151.25761 +                  <background/>
151.25762 +                  <inherit-textForeground>false</inherit-textForeground>
151.25763 +                  <uiproperties/>
151.25764 +               </style>
151.25765 +               <canvas>
151.25766 +                  <size width="100" height="30"/>
151.25767 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.25768 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.25769 +                  <layer name="Layer 2">
151.25770 +                     <opacity>1.0</opacity>
151.25771 +                     <fillOpacity>1.0</fillOpacity>
151.25772 +                     <blendingMode>NORMAL</blendingMode>
151.25773 +                     <locked>false</locked>
151.25774 +                     <visible>true</visible>
151.25775 +                     <shapes>
151.25776 +                        <rectangle x1="0.0" x2="100.0" y1="0.0" y2="30.0" rounding="0.0">
151.25777 +                           <matte red="222" green="225" blue="229" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.015872955" saturationOffset="-0.07995863" brightnessOffset="0.15294117" alphaOffset="0"/>
151.25778 +                           <paintPoints x1="0.25" y1="0.0" x2="0.2" y2="0.1"/>
151.25779 +                        </rectangle>
151.25780 +                     </shapes>
151.25781 +                     <effects/>
151.25782 +                  </layer>
151.25783 +               </canvas>
151.25784 +            </state>
151.25785 +            <state stateKeys="Enabled">
151.25786 +               <style>
151.25787 +                  <textForeground/>
151.25788 +                  <textBackground/>
151.25789 +                  <background/>
151.25790 +                  <uiproperties/>
151.25791 +               </style>
151.25792 +               <canvas>
151.25793 +                  <size width="100" height="30"/>
151.25794 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.25795 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.25796 +                  <layer name="Layer 2">
151.25797 +                     <opacity>1.0</opacity>
151.25798 +                     <fillOpacity>1.0</fillOpacity>
151.25799 +                     <blendingMode>NORMAL</blendingMode>
151.25800 +                     <locked>false</locked>
151.25801 +                     <visible>true</visible>
151.25802 +                     <shapes>
151.25803 +                        <rectangle x1="0.0" x2="100.0" y1="0.0" y2="30.0" rounding="0.0">
151.25804 +                           <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25805 +                           <paintPoints x1="0.25" y1="0.0" x2="0.2" y2="0.1"/>
151.25806 +                        </rectangle>
151.25807 +                     </shapes>
151.25808 +                     <effects/>
151.25809 +                  </layer>
151.25810 +               </canvas>
151.25811 +            </state>
151.25812 +            <state stateKeys="Selected">
151.25813 +               <style>
151.25814 +                  <textForeground>
151.25815 +                     <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusSelectedText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25816 +                  </textForeground>
151.25817 +                  <textBackground/>
151.25818 +                  <background/>
151.25819 +                  <inherit-textForeground>false</inherit-textForeground>
151.25820 +                  <uiproperties/>
151.25821 +               </style>
151.25822 +               <canvas>
151.25823 +                  <size width="100" height="30"/>
151.25824 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.25825 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.25826 +                  <layer name="Layer 1">
151.25827 +                     <opacity>1.0</opacity>
151.25828 +                     <fillOpacity>1.0</fillOpacity>
151.25829 +                     <blendingMode>NORMAL</blendingMode>
151.25830 +                     <locked>false</locked>
151.25831 +                     <visible>true</visible>
151.25832 +                     <shapes>
151.25833 +                        <rectangle x1="0.0" x2="100.0" y1="0.0" y2="30.0" rounding="0.0">
151.25834 +                           <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25835 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25836 +                        </rectangle>
151.25837 +                     </shapes>
151.25838 +                     <effects/>
151.25839 +                  </layer>
151.25840 +               </canvas>
151.25841 +            </state>
151.25842 +         </backgroundStates>
151.25843 +         <foregroundStates/>
151.25844 +         <borderStates/>
151.25845 +         <regions/>
151.25846 +      </uiComponent>
151.25847 +      <uiComponent opaque="true" type="javax.swing.JToolBar" name="ToolBar" ui="ToolBarUI" subregion="false">
151.25848 +         <stateTypes>
151.25849 +            <stateType key="North">
151.25850 +               <codeSnippet><![CDATA[
151.25851 +        JToolBar toolbar = (JToolBar)c;
151.25852 +        return NimbusLookAndFeel.resolveToolbarConstraint(toolbar) == BorderLayout.NORTH;
151.25853 +               ]]></codeSnippet>
151.25854 +            </stateType>
151.25855 +            <stateType key="East">
151.25856 +               <codeSnippet><![CDATA[
151.25857 +        JToolBar toolbar = (JToolBar)c;
151.25858 +        return NimbusLookAndFeel.resolveToolbarConstraint(toolbar) == BorderLayout.EAST;
151.25859 +               ]]></codeSnippet>
151.25860 +            </stateType>
151.25861 +            <stateType key="West">
151.25862 +               <codeSnippet><![CDATA[
151.25863 +        JToolBar toolbar = (JToolBar)c;
151.25864 +        return NimbusLookAndFeel.resolveToolbarConstraint(toolbar) == BorderLayout.WEST;
151.25865 +               ]]></codeSnippet>
151.25866 +            </stateType>
151.25867 +            <stateType key="South">
151.25868 +               <codeSnippet><![CDATA[
151.25869 +        JToolBar toolbar = (JToolBar)c;
151.25870 +        return NimbusLookAndFeel.resolveToolbarConstraint(toolbar) == BorderLayout.SOUTH;
151.25871 +               ]]></codeSnippet>
151.25872 +            </stateType>
151.25873 +         </stateTypes>
151.25874 +         <contentMargins top="2" bottom="2" left="2" right="2"/>
151.25875 +         <style>
151.25876 +            <textForeground/>
151.25877 +            <textBackground/>
151.25878 +            <background/>
151.25879 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.25880 +            <cacheMode>NO_CACHING</cacheMode>
151.25881 +            <uiproperties/>
151.25882 +         </style>
151.25883 +         <backgroundStates/>
151.25884 +         <foregroundStates/>
151.25885 +         <borderStates>
151.25886 +            <state stateKeys="North">
151.25887 +               <style>
151.25888 +                  <textForeground/>
151.25889 +                  <textBackground/>
151.25890 +                  <background/>
151.25891 +                  <uiproperties/>
151.25892 +               </style>
151.25893 +               <canvas>
151.25894 +                  <size width="30" height="30"/>
151.25895 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.25896 +                  <stretchingInsets top="0" bottom="1" left="0" right="0"/>
151.25897 +                  <layer name="Layer 1">
151.25898 +                     <opacity>1.0</opacity>
151.25899 +                     <fillOpacity>1.0</fillOpacity>
151.25900 +                     <blendingMode>NORMAL</blendingMode>
151.25901 +                     <locked>false</locked>
151.25902 +                     <visible>true</visible>
151.25903 +                     <shapes>
151.25904 +                        <rectangle x1="0.0" x2="30.0" y1="29.0" y2="30.0" rounding="0.0">
151.25905 +                           <matte red="146" green="151" blue="161" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25906 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25907 +                        </rectangle>
151.25908 +                     </shapes>
151.25909 +                     <effects/>
151.25910 +                  </layer>
151.25911 +               </canvas>
151.25912 +            </state>
151.25913 +            <state stateKeys="South">
151.25914 +               <style>
151.25915 +                  <textForeground/>
151.25916 +                  <textBackground/>
151.25917 +                  <background/>
151.25918 +                  <uiproperties/>
151.25919 +               </style>
151.25920 +               <canvas>
151.25921 +                  <size width="30" height="30"/>
151.25922 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.25923 +                  <stretchingInsets top="1" bottom="0" left="0" right="0"/>
151.25924 +                  <layer name="Layer 1">
151.25925 +                     <opacity>1.0</opacity>
151.25926 +                     <fillOpacity>1.0</fillOpacity>
151.25927 +                     <blendingMode>NORMAL</blendingMode>
151.25928 +                     <locked>false</locked>
151.25929 +                     <visible>true</visible>
151.25930 +                     <shapes>
151.25931 +                        <rectangle x1="0.0" x2="30.0" y1="0.0" y2="1.0" rounding="0.0">
151.25932 +                           <matte red="146" green="151" blue="161" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25933 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25934 +                        </rectangle>
151.25935 +                     </shapes>
151.25936 +                     <effects/>
151.25937 +                  </layer>
151.25938 +               </canvas>
151.25939 +            </state>
151.25940 +            <state stateKeys="East">
151.25941 +               <style>
151.25942 +                  <textForeground/>
151.25943 +                  <textBackground/>
151.25944 +                  <background/>
151.25945 +                  <uiproperties/>
151.25946 +               </style>
151.25947 +               <canvas>
151.25948 +                  <size width="30" height="30"/>
151.25949 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.25950 +                  <stretchingInsets top="1" bottom="0" left="0" right="0"/>
151.25951 +                  <layer name="Layer 1">
151.25952 +                     <opacity>1.0</opacity>
151.25953 +                     <fillOpacity>1.0</fillOpacity>
151.25954 +                     <blendingMode>NORMAL</blendingMode>
151.25955 +                     <locked>false</locked>
151.25956 +                     <visible>true</visible>
151.25957 +                     <shapes>
151.25958 +                        <rectangle x1="0.0" x2="30.0" y1="0.0" y2="1.0" rounding="0.0">
151.25959 +                           <matte red="146" green="151" blue="161" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25960 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25961 +                        </rectangle>
151.25962 +                     </shapes>
151.25963 +                     <effects/>
151.25964 +                  </layer>
151.25965 +               </canvas>
151.25966 +            </state>
151.25967 +            <state stateKeys="West">
151.25968 +               <style>
151.25969 +                  <textForeground/>
151.25970 +                  <textBackground/>
151.25971 +                  <background/>
151.25972 +                  <uiproperties/>
151.25973 +               </style>
151.25974 +               <canvas>
151.25975 +                  <size width="30" height="30"/>
151.25976 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.25977 +                  <stretchingInsets top="0" bottom="1" left="0" right="0"/>
151.25978 +                  <layer name="Layer 1">
151.25979 +                     <opacity>1.0</opacity>
151.25980 +                     <fillOpacity>1.0</fillOpacity>
151.25981 +                     <blendingMode>NORMAL</blendingMode>
151.25982 +                     <locked>false</locked>
151.25983 +                     <visible>true</visible>
151.25984 +                     <shapes>
151.25985 +                        <rectangle x1="0.0" x2="30.0" y1="29.0" y2="30.0" rounding="0.0">
151.25986 +                           <matte red="146" green="151" blue="161" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.25987 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.25988 +                        </rectangle>
151.25989 +                     </shapes>
151.25990 +                     <effects/>
151.25991 +                  </layer>
151.25992 +               </canvas>
151.25993 +            </state>
151.25994 +         </borderStates>
151.25995 +         <regions>
151.25996 +            <uiIconRegion name="HandleIcon" subregion="true" key="handleIcon">
151.25997 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.25998 +               <style>
151.25999 +                  <textForeground/>
151.26000 +                  <textBackground/>
151.26001 +                  <background/>
151.26002 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.26003 +                  <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.26004 +                  <maxHozCachedImgScaling>2.0</maxHozCachedImgScaling>
151.26005 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.26006 +                  <uiproperties/>
151.26007 +               </style>
151.26008 +               <backgroundStates>
151.26009 +                  <state stateKeys="Enabled">
151.26010 +                     <style>
151.26011 +                        <textForeground/>
151.26012 +                        <textBackground/>
151.26013 +                        <background/>
151.26014 +                        <uiproperties/>
151.26015 +                     </style>
151.26016 +                     <canvas>
151.26017 +                        <size width="11" height="38"/>
151.26018 +                        <nextLayerNameIndex>4</nextLayerNameIndex>
151.26019 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.26020 +                        <layer name="Button">
151.26021 +                           <opacity>1.0</opacity>
151.26022 +                           <fillOpacity>1.0</fillOpacity>
151.26023 +                           <blendingMode>NORMAL</blendingMode>
151.26024 +                           <locked>false</locked>
151.26025 +                           <visible>true</visible>
151.26026 +                           <shapes>
151.26027 +                              <path>
151.26028 +                                 <matte red="159" green="164" blue="172" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.008547008" saturationOffset="-0.03494492" brightnessOffset="-0.07058823" alphaOffset="0"/>
151.26029 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.26030 +                                 <points>
151.26031 +                                    <point x="0.0" y="38.0" cp1x="0.0" cp1y="38.0" cp2x="0.0" cp2y="38.0"/>
151.26032 +                                    <point x="0.0" y="36.0" cp1x="0.0" cp1y="36.0" cp2x="0.0" cp2y="36.0"/>
151.26033 +                                    <point x="2.0" y="38.0" cp1x="2.0" cp1y="38.0" cp2x="2.0" cp2y="38.0"/>
151.26034 +                                 </points>
151.26035 +                              </path>
151.26036 +                              <path>
151.26037 +                                 <matte red="159" green="164" blue="172" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.008547008" saturationOffset="-0.03494492" brightnessOffset="-0.07058823" alphaOffset="0"/>
151.26038 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.26039 +                                 <points>
151.26040 +                                    <point x="0.0" y="0.0" cp1x="0.0" cp1y="0.0" cp2x="0.0" cp2y="0.0"/>
151.26041 +                                    <point x="0.0" y="2.0" cp1x="0.0" cp1y="2.0" cp2x="0.0" cp2y="2.0"/>
151.26042 +                                    <point x="2.0" y="0.0" cp1x="2.0" cp1y="0.0" cp2x="2.0" cp2y="0.0"/>
151.26043 +                                 </points>
151.26044 +                              </path>
151.26045 +                              <rectangle x1="10.0" x2="11.0" y1="0.0" y2="38.0" rounding="0.0">
151.26046 +                                 <matte red="177" green="181" blue="189" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="0.0" saturationOffset="-0.029675633" brightnessOffset="0.109803915" alphaOffset="0"/>
151.26047 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.26048 +                              </rectangle>
151.26049 +                              <rectangle x1="0.0" x2="10.0" y1="0.0" y2="38.0" rounding="0.0">
151.26050 +                                 <gradient cycleMethod="NO_CYCLE">
151.26051 +                                    <stop position="0.0" midpoint="0.5">
151.26052 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.26053 +                                    </stop>
151.26054 +                                    <stop position="1.0" midpoint="0.5">
151.26055 +                                       <matte red="211" green="214" blue="219" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.006944418" saturationOffset="-0.07399663" brightnessOffset="0.11372548" alphaOffset="0"/>
151.26056 +                                    </stop>
151.26057 +                                 </gradient>
151.26058 +                                 <paintPoints x1="0.0" y1="0.5" x2="1.0" y2="0.5"/>
151.26059 +                              </rectangle>
151.26060 +                           </shapes>
151.26061 +                           <effects/>
151.26062 +                        </layer>
151.26063 +                        <templateLayer fileName="114286d62c0.png">
151.26064 +                           <layer name="Template" type="template">
151.26065 +                              <opacity>1.0</opacity>
151.26066 +                              <fillOpacity>1.0</fillOpacity>
151.26067 +                              <blendingMode>NORMAL</blendingMode>
151.26068 +                              <locked>false</locked>
151.26069 +                              <visible>true</visible>
151.26070 +                              <shapes/>
151.26071 +                              <effects/>
151.26072 +                           </layer>
151.26073 +                        </templateLayer>
151.26074 +                     </canvas>
151.26075 +                  </state>
151.26076 +               </backgroundStates>
151.26077 +               <foregroundStates/>
151.26078 +               <borderStates/>
151.26079 +               <regions/>
151.26080 +            </uiIconRegion>
151.26081 +            <uiComponent opaque="false" type="javax.swing.JButton" name="Button" ui="ButtonUI" subregion="true">
151.26082 +               <stateTypes/>
151.26083 +               <contentMargins top="4" bottom="4" left="4" right="4"/>
151.26084 +               <style>
151.26085 +                  <textForeground/>
151.26086 +                  <textBackground/>
151.26087 +                  <background/>
151.26088 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.26089 +                  <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.26090 +                  <maxHozCachedImgScaling>2.0</maxHozCachedImgScaling>
151.26091 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.26092 +                  <uiproperties/>
151.26093 +               </style>
151.26094 +               <backgroundStates>
151.26095 +                  <state stateKeys="Enabled">
151.26096 +                     <style>
151.26097 +                        <textForeground/>
151.26098 +                        <textBackground/>
151.26099 +                        <background/>
151.26100 +                        <uiproperties/>
151.26101 +                     </style>
151.26102 +                     <canvas>
151.26103 +                        <size width="104" height="33"/>
151.26104 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.26105 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.26106 +                        <layer name="Button Layer">
151.26107 +                           <opacity>1.0</opacity>
151.26108 +                           <fillOpacity>1.0</fillOpacity>
151.26109 +                           <blendingMode>NORMAL</blendingMode>
151.26110 +                           <locked>false</locked>
151.26111 +                           <visible>true</visible>
151.26112 +                           <shapes/>
151.26113 +                           <effects/>
151.26114 +                        </layer>
151.26115 +                     </canvas>
151.26116 +                  </state>
151.26117 +                  <state stateKeys="Focused">
151.26118 +                     <style>
151.26119 +                        <textForeground/>
151.26120 +                        <textBackground/>
151.26121 +                        <background/>
151.26122 +                        <uiproperties/>
151.26123 +                     </style>
151.26124 +                     <canvas>
151.26125 +                        <size width="104" height="33"/>
151.26126 +                        <nextLayerNameIndex>4</nextLayerNameIndex>
151.26127 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.26128 +                        <layer name="Layer 3">
151.26129 +                           <opacity>1.0</opacity>
151.26130 +                           <fillOpacity>1.0</fillOpacity>
151.26131 +                           <blendingMode>NORMAL</blendingMode>
151.26132 +                           <locked>false</locked>
151.26133 +                           <visible>true</visible>
151.26134 +                           <shapes>
151.26135 +                              <path>
151.26136 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.26137 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.26138 +                                 <points>
151.26139 +                                    <point x="43.85714285714286" y="0.6" cp1x="43.85714285714286" cp1y="0.6" cp2x="43.85714285714286" cp2y="0.6"/>
151.26140 +                                    <point x="98.0" y="0.6" cp1x="98.0" cp1y="0.6" cp2x="101.0" cp2y="0.6"/>
151.26141 +                                    <point x="103.42857142857142" y="6.0" cp1x="103.42857142857142" cp1y="3.0" cp2x="103.42857142857142" cp2y="6.0"/>
151.26142 +                                    <point x="103.49999999999999" y="27.0" cp1x="103.49999999999999" cp1y="27.0" cp2x="103.49999999999999" cp2y="30.0"/>
151.26143 +                                    <point x="98.0" y="32.35714285714285" cp1x="101.0" cp1y="32.35714285714285" cp2x="98.0" cp2y="32.35714285714285"/>
151.26144 +                                    <point x="6.0" y="32.35714285714285" cp1x="6.0" cp1y="32.35714285714285" cp2x="3.0" cp2y="32.35714285714285"/>
151.26145 +                                    <point x="0.6" y="27.0" cp1x="0.6" cp1y="30.0" cp2x="0.6" cp2y="27.0"/>
151.26146 +                                    <point x="0.6" y="6.071428571428572" cp1x="0.6" cp1y="6.071428571428572" cp2x="0.6" cp2y="3.071428571428571"/>
151.26147 +                                    <point x="6.0" y="0.6" cp1x="3.0" cp1y="0.6" cp2x="6.0" cp2y="0.6"/>
151.26148 +                                    <point x="44.0" y="0.6" cp1x="44.0" cp1y="0.6" cp2x="44.0" cp2y="0.6"/>
151.26149 +                                    <point x="44.0" y="2.4285714285714297" cp1x="44.0" cp1y="2.4285714285714297" cp2x="44.0" cp2y="2.4285714285714297"/>
151.26150 +                                    <point x="6.0" y="2.4285714285714297" cp1x="6.0" cp1y="2.4285714285714297" cp2x="4.071428571428573" cp2y="2.4285714285714297"/>
151.26151 +                                    <point x="2.357142857142858" y="5.928571428571429" cp1x="2.312863373522748" cp1y="3.499353333829805" cp2x="2.357142857142858" cp2y="5.928571428571429"/>
151.26152 +                                    <point x="2.357142857142858" y="27.0" cp1x="2.357142857142858" cp1y="27.0" cp2x="2.357142857142858" cp2y="29.214285714285698"/>
151.26153 +                                    <point x="6.0" y="30.571428571428562" cp1x="4.214285714285715" cp1y="30.571428571428562" cp2x="6.0" cp2y="30.571428571428562"/>
151.26154 +                                    <point x="98.0" y="30.571428571428562" cp1x="98.0" cp1y="30.571428571428562" cp2x="100.0714285714286" cp2y="30.571428571428562"/>
151.26155 +                                    <point x="101.50000000000001" y="27.0" cp1x="101.50000000000001" cp1y="29.214285714285705" cp2x="101.50000000000001" cp2y="27.0"/>
151.26156 +                                    <point x="101.57142857142858" y="6.0" cp1x="101.57142857142858" cp1y="6.0" cp2x="101.57142857142858" cp2y="3.8571428571428594"/>
151.26157 +                                    <point x="98.07142857142857" y="2.357142857142858" cp1x="100.21428571428574" cp1y="2.357142857142858" cp2x="98.07142857142857" cp2y="2.357142857142858"/>
151.26158 +                                    <point x="44.0" y="2.4285714285714297" cp1x="44.0" cp1y="2.4285714285714297" cp2x="44.0" cp2y="2.4285714285714297"/>
151.26159 +                                 </points>
151.26160 +                              </path>
151.26161 +                           </shapes>
151.26162 +                           <effects/>
151.26163 +                        </layer>
151.26164 +                     </canvas>
151.26165 +                  </state>
151.26166 +                  <state stateKeys="MouseOver">
151.26167 +                     <style>
151.26168 +                        <textForeground/>
151.26169 +                        <textBackground/>
151.26170 +                        <background/>
151.26171 +                        <uiproperties/>
151.26172 +                     </style>
151.26173 +                     <canvas>
151.26174 +                        <size width="104" height="33"/>
151.26175 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.26176 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.26177 +                        <layer name="Button Layer">
151.26178 +                           <opacity>1.0</opacity>
151.26179 +                           <fillOpacity>1.0</fillOpacity>
151.26180 +                           <blendingMode>NORMAL</blendingMode>
151.26181 +                           <locked>false</locked>
151.26182 +                           <visible>true</visible>
151.26183 +                           <shapes>
151.26184 +                              <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="9.0">
151.26185 +                                 <gradient cycleMethod="NO_CYCLE">
151.26186 +                                    <stop position="0.0" midpoint="0.5">
151.26187 +                                       <matte red="253" green="253" blue="254" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10658931" brightnessOffset="0.25098038" alphaOffset="0"/>
151.26188 +                                    </stop>
151.26189 +                                    <stop position="0.06" midpoint="0.5">
151.26190 +                                       <matte red="247" green="248" blue="250" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.098526314" brightnessOffset="0.2352941" alphaOffset="0"/>
151.26191 +                                    </stop>
151.26192 +                                    <stop position="0.6" midpoint="0.5">
151.26193 +                                       <matte red="233" green="236" blue="242" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07333623" brightnessOffset="0.20392156" alphaOffset="0"/>
151.26194 +                                    </stop>
151.26195 +                                    <stop position="0.7" midpoint="0.5">
151.26196 +                                       <matte red="233" green="236" blue="242" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07333623" brightnessOffset="0.20392156" alphaOffset="0"/>
151.26197 +                                    </stop>
151.26198 +                                    <stop position="0.95" midpoint="0.5">
151.26199 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.26200 +                                    </stop>
151.26201 +                                    <stop position="1.0" midpoint="0.5">
151.26202 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.26203 +                                    </stop>
151.26204 +                                 </gradient>
151.26205 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.26206 +                              </rectangle>
151.26207 +                              <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="12.0">
151.26208 +                                 <gradient cycleMethod="NO_CYCLE">
151.26209 +                                    <stop position="0.09" midpoint="0.5">
151.26210 +                                       <matte red="122" green="126" blue="134" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.020974077" brightnessOffset="-0.21960783" alphaOffset="0"/>
151.26211 +                                    </stop>
151.26212 +                                    <stop position="0.95" midpoint="0.5">
151.26213 +                                       <matte red="42" green="46" blue="54" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.11169591" brightnessOffset="-0.53333336" alphaOffset="0"/>
151.26214 +                                    </stop>
151.26215 +                                 </gradient>
151.26216 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.26217 +                              </rectangle>
151.26218 +                           </shapes>
151.26219 +                           <effects/>
151.26220 +                        </layer>
151.26221 +                        <layer name="Shadow Layer">
151.26222 +                           <opacity>1.0</opacity>
151.26223 +                           <fillOpacity>1.0</fillOpacity>
151.26224 +                           <blendingMode>NORMAL</blendingMode>
151.26225 +                           <locked>false</locked>
151.26226 +                           <visible>true</visible>
151.26227 +                           <shapes>
151.26228 +                              <rectangle x1="2.0" x2="102.0" y1="3.0" y2="32.0" rounding="12.0">
151.26229 +                                 <matte red="92" green="94" blue="96" alpha="102" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.06885965" brightnessOffset="-0.36862746" alphaOffset="-153"/>
151.26230 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.26231 +                              </rectangle>
151.26232 +                           </shapes>
151.26233 +                           <effects/>
151.26234 +                        </layer>
151.26235 +                     </canvas>
151.26236 +                  </state>
151.26237 +                  <state stateKeys="MouseOver+Focused">
151.26238 +                     <style>
151.26239 +                        <textForeground/>
151.26240 +                        <textBackground/>
151.26241 +                        <background/>
151.26242 +                        <uiproperties/>
151.26243 +                     </style>
151.26244 +                     <canvas>
151.26245 +                        <size width="104" height="33"/>
151.26246 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.26247 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.26248 +                        <layer name="Button Layer">
151.26249 +                           <opacity>1.0</opacity>
151.26250 +                           <fillOpacity>1.0</fillOpacity>
151.26251 +                           <blendingMode>NORMAL</blendingMode>
151.26252 +                           <locked>false</locked>
151.26253 +                           <visible>true</visible>
151.26254 +                           <shapes>
151.26255 +                              <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="9.0">
151.26256 +                                 <gradient cycleMethod="NO_CYCLE">
151.26257 +                                    <stop position="0.0" midpoint="0.5">
151.26258 +                                       <matte red="253" green="253" blue="254" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10658931" brightnessOffset="0.25098038" alphaOffset="0"/>
151.26259 +                                    </stop>
151.26260 +                                    <stop position="0.06" midpoint="0.5">
151.26261 +                                       <matte red="247" green="248" blue="250" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.098526314" brightnessOffset="0.2352941" alphaOffset="0"/>
151.26262 +                                    </stop>
151.26263 +                                    <stop position="0.6" midpoint="0.5">
151.26264 +                                       <matte red="233" green="236" blue="242" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07333623" brightnessOffset="0.20392156" alphaOffset="0"/>
151.26265 +                                    </stop>
151.26266 +                                    <stop position="0.7" midpoint="0.5">
151.26267 +                                       <matte red="233" green="236" blue="242" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07333623" brightnessOffset="0.20392156" alphaOffset="0"/>
151.26268 +                                    </stop>
151.26269 +                                    <stop position="0.95" midpoint="0.5">
151.26270 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.26271 +                                    </stop>
151.26272 +                                    <stop position="1.0" midpoint="0.5">
151.26273 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.26274 +                                    </stop>
151.26275 +                                 </gradient>
151.26276 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.26277 +                              </rectangle>
151.26278 +                              <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="12.0">
151.26279 +                                 <gradient cycleMethod="NO_CYCLE">
151.26280 +                                    <stop position="0.09" midpoint="0.5">
151.26281 +                                       <matte red="122" green="126" blue="134" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.020974077" brightnessOffset="-0.21960783" alphaOffset="0"/>
151.26282 +                                    </stop>
151.26283 +                                    <stop position="0.95" midpoint="0.5">
151.26284 +                                       <matte red="42" green="46" blue="54" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.11169591" brightnessOffset="-0.53333336" alphaOffset="0"/>
151.26285 +                                    </stop>
151.26286 +                                 </gradient>
151.26287 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.26288 +                              </rectangle>
151.26289 +                              <rectangle x1="0.6" x2="103.4" y1="0.6" y2="32.4" rounding="13.0">
151.26290 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.26291 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.26292 +                              </rectangle>
151.26293 +                           </shapes>
151.26294 +                           <effects/>
151.26295 +                        </layer>
151.26296 +                     </canvas>
151.26297 +                  </state>
151.26298 +                  <state stateKeys="Pressed">
151.26299 +                     <style>
151.26300 +                        <textForeground/>
151.26301 +                        <textBackground/>
151.26302 +                        <background/>
151.26303 +                        <uiproperties/>
151.26304 +                     </style>
151.26305 +                     <canvas>
151.26306 +                        <size width="104" height="33"/>
151.26307 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.26308 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.26309 +                        <layer name="Button Layer">
151.26310 +                           <opacity>1.0</opacity>
151.26311 +                           <fillOpacity>1.0</fillOpacity>
151.26312 +                           <blendingMode>NORMAL</blendingMode>
151.26313 +                           <locked>false</locked>
151.26314 +                           <visible>true</visible>
151.26315 +                           <shapes>
151.26316 +                              <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="9.0">
151.26317 +                                 <gradient cycleMethod="NO_CYCLE">
151.26318 +                                    <stop position="0.0" midpoint="0.5">
151.26319 +                                       <matte red="205" green="209" blue="216" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.00505054" saturationOffset="-0.05960039" brightnessOffset="0.10196078" alphaOffset="0"/>
151.26320 +                                    </stop>
151.26321 +                                    <stop position="0.06" midpoint="0.5">
151.26322 +                                       <matte red="194" green="199" blue="207" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.008547008" saturationOffset="-0.04772438" brightnessOffset="0.06666666" alphaOffset="0"/>
151.26323 +                                    </stop>
151.26324 +                                    <stop position="0.6" midpoint="0.5">
151.26325 +                                       <matte red="164" green="171" blue="184" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0027777553" saturationOffset="-0.0018306673" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.26326 +                                    </stop>
151.26327 +                                    <stop position="0.7" midpoint="0.5">
151.26328 +                                       <matte red="164" green="171" blue="184" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0027777553" saturationOffset="-0.0018306673" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.26329 +                                    </stop>
151.26330 +                                    <stop position="0.95" midpoint="0.5">
151.26331 +                                       <matte red="204" green="211" blue="224" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0027777553" saturationOffset="-0.0212406" brightnessOffset="0.13333333" alphaOffset="0"/>
151.26332 +                                    </stop>
151.26333 +                                    <stop position="1.0" midpoint="0.5">
151.26334 +                                       <matte red="231" green="237" blue="251" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.030845039" brightnessOffset="0.23921567" alphaOffset="0"/>
151.26335 +                                    </stop>
151.26336 +                                 </gradient>
151.26337 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.26338 +                              </rectangle>
151.26339 +                              <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="12.0">
151.26340 +                                 <gradient cycleMethod="NO_CYCLE">
151.26341 +                                    <stop position="0.09" midpoint="0.5">
151.26342 +                                       <matte red="122" green="126" blue="134" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.020974077" brightnessOffset="-0.21960783" alphaOffset="0"/>
151.26343 +                                    </stop>
151.26344 +                                    <stop position="0.95" midpoint="0.5">
151.26345 +                                       <matte red="42" green="46" blue="54" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.11169591" brightnessOffset="-0.53333336" alphaOffset="0"/>
151.26346 +                                    </stop>
151.26347 +                                 </gradient>
151.26348 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.26349 +                              </rectangle>
151.26350 +                           </shapes>
151.26351 +                           <effects/>
151.26352 +                        </layer>
151.26353 +                        <layer name="Shadow Layer">
151.26354 +                           <opacity>1.0</opacity>
151.26355 +                           <fillOpacity>1.0</fillOpacity>
151.26356 +                           <blendingMode>NORMAL</blendingMode>
151.26357 +                           <locked>false</locked>
151.26358 +                           <visible>true</visible>
151.26359 +                           <shapes>
151.26360 +                              <rectangle x1="2.0" x2="102.0" y1="3.0" y2="32.0" rounding="12.0">
151.26361 +                                 <matte red="92" green="94" blue="96" alpha="102" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.06885965" brightnessOffset="-0.36862746" alphaOffset="-153"/>
151.26362 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.26363 +                              </rectangle>
151.26364 +                           </shapes>
151.26365 +                           <effects/>
151.26366 +                        </layer>
151.26367 +                     </canvas>
151.26368 +                  </state>
151.26369 +                  <state stateKeys="Pressed+Focused">
151.26370 +                     <style>
151.26371 +                        <textForeground/>
151.26372 +                        <textBackground/>
151.26373 +                        <background/>
151.26374 +                        <uiproperties/>
151.26375 +                     </style>
151.26376 +                     <canvas>
151.26377 +                        <size width="104" height="33"/>
151.26378 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.26379 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.26380 +                        <layer name="Button Layer">
151.26381 +                           <opacity>1.0</opacity>
151.26382 +                           <fillOpacity>1.0</fillOpacity>
151.26383 +                           <blendingMode>NORMAL</blendingMode>
151.26384 +                           <locked>false</locked>
151.26385 +                           <visible>true</visible>
151.26386 +                           <shapes>
151.26387 +                              <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="9.0">
151.26388 +                                 <gradient cycleMethod="NO_CYCLE">
151.26389 +                                    <stop position="0.0" midpoint="0.5">
151.26390 +                                       <matte red="205" green="209" blue="216" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.00505054" saturationOffset="-0.05960039" brightnessOffset="0.10196078" alphaOffset="0"/>
151.26391 +                                    </stop>
151.26392 +                                    <stop position="0.06" midpoint="0.5">
151.26393 +                                       <matte red="194" green="199" blue="207" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.008547008" saturationOffset="-0.04772438" brightnessOffset="0.06666666" alphaOffset="0"/>
151.26394 +                                    </stop>
151.26395 +                                    <stop position="0.6" midpoint="0.5">
151.26396 +                                       <matte red="164" green="171" blue="184" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0027777553" saturationOffset="-0.0018306673" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.26397 +                                    </stop>
151.26398 +                                    <stop position="0.7" midpoint="0.5">
151.26399 +                                       <matte red="164" green="171" blue="184" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0027777553" saturationOffset="-0.0018306673" brightnessOffset="-0.02352941" alphaOffset="0"/>
151.26400 +                                    </stop>
151.26401 +                                    <stop position="0.95" midpoint="0.5">
151.26402 +                                       <matte red="204" green="211" blue="224" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.0027777553" saturationOffset="-0.0212406" brightnessOffset="0.13333333" alphaOffset="0"/>
151.26403 +                                    </stop>
151.26404 +                                    <stop position="1.0" midpoint="0.5">
151.26405 +                                       <matte red="231" green="237" blue="251" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0055555105" saturationOffset="-0.030845039" brightnessOffset="0.23921567" alphaOffset="0"/>
151.26406 +                                    </stop>
151.26407 +                                 </gradient>
151.26408 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.26409 +                              </rectangle>
151.26410 +                              <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="12.0">
151.26411 +                                 <gradient cycleMethod="NO_CYCLE">
151.26412 +                                    <stop position="0.09" midpoint="0.5">
151.26413 +                                       <matte red="122" green="126" blue="134" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.020974077" brightnessOffset="-0.21960783" alphaOffset="0"/>
151.26414 +                                    </stop>
151.26415 +                                    <stop position="0.95" midpoint="0.5">
151.26416 +                                       <matte red="42" green="46" blue="54" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.11169591" brightnessOffset="-0.53333336" alphaOffset="0"/>
151.26417 +                                    </stop>
151.26418 +                                 </gradient>
151.26419 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.26420 +                              </rectangle>
151.26421 +                              <rectangle x1="0.6" x2="103.4" y1="0.6" y2="32.4" rounding="13.0">
151.26422 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.26423 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.26424 +                              </rectangle>
151.26425 +                           </shapes>
151.26426 +                           <effects/>
151.26427 +                        </layer>
151.26428 +                     </canvas>
151.26429 +                  </state>
151.26430 +               </backgroundStates>
151.26431 +               <foregroundStates/>
151.26432 +               <borderStates/>
151.26433 +               <regions/>
151.26434 +            </uiComponent>
151.26435 +            <uiComponent opaque="false" type="javax.swing.JToggleButton" name="ToggleButton" ui="ToggleButtonUI" subregion="true">
151.26436 +               <stateTypes/>
151.26437 +               <contentMargins top="4" bottom="4" left="4" right="4"/>
151.26438 +               <style>
151.26439 +                  <textForeground/>
151.26440 +                  <textBackground/>
151.26441 +                  <background/>
151.26442 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.26443 +                  <cacheMode>NINE_SQUARE_SCALE</cacheMode>
151.26444 +                  <maxHozCachedImgScaling>2.0</maxHozCachedImgScaling>
151.26445 +                  <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.26446 +                  <uiproperties/>
151.26447 +               </style>
151.26448 +               <backgroundStates>
151.26449 +                  <state stateKeys="Enabled">
151.26450 +                     <style>
151.26451 +                        <textForeground/>
151.26452 +                        <textBackground/>
151.26453 +                        <background/>
151.26454 +                        <uiproperties/>
151.26455 +                     </style>
151.26456 +                     <canvas>
151.26457 +                        <size width="104" height="34"/>
151.26458 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.26459 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.26460 +                        <layer name="Button Layer">
151.26461 +                           <opacity>1.0</opacity>
151.26462 +                           <fillOpacity>1.0</fillOpacity>
151.26463 +                           <blendingMode>NORMAL</blendingMode>
151.26464 +                           <locked>false</locked>
151.26465 +                           <visible>true</visible>
151.26466 +                           <shapes/>
151.26467 +                           <effects/>
151.26468 +                        </layer>
151.26469 +                     </canvas>
151.26470 +                  </state>
151.26471 +                  <state stateKeys="Focused">
151.26472 +                     <style>
151.26473 +                        <textForeground/>
151.26474 +                        <textBackground/>
151.26475 +                        <background/>
151.26476 +                        <uiproperties/>
151.26477 +                     </style>
151.26478 +                     <canvas>
151.26479 +                        <size width="104" height="34"/>
151.26480 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.26481 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.26482 +                        <layer name="Button Layer">
151.26483 +                           <opacity>1.0</opacity>
151.26484 +                           <fillOpacity>1.0</fillOpacity>
151.26485 +                           <blendingMode>NORMAL</blendingMode>
151.26486 +                           <locked>false</locked>
151.26487 +                           <visible>true</visible>
151.26488 +                           <shapes>
151.26489 +                              <path>
151.26490 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.26491 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.26492 +                                 <points>
151.26493 +                                    <point x="43.85714285714286" y="0.6" cp1x="43.85714285714286" cp1y="0.6" cp2x="43.85714285714286" cp2y="0.6"/>
151.26494 +                                    <point x="98.0" y="0.6" cp1x="98.0" cp1y="0.6" cp2x="101.0" cp2y="0.6"/>
151.26495 +                                    <point x="103.42857142857142" y="6.0" cp1x="103.42857142857142" cp1y="3.0" cp2x="103.42857142857142" cp2y="6.0"/>
151.26496 +                                    <point x="103.49999999999999" y="27.0" cp1x="103.49999999999999" cp1y="27.0" cp2x="103.49999999999999" cp2y="30.0"/>
151.26497 +                                    <point x="98.0" y="32.35714285714285" cp1x="101.0" cp1y="32.35714285714285" cp2x="98.0" cp2y="32.35714285714285"/>
151.26498 +                                    <point x="6.0" y="32.35714285714285" cp1x="6.0" cp1y="32.35714285714285" cp2x="3.0" cp2y="32.35714285714285"/>
151.26499 +                                    <point x="0.6" y="27.0" cp1x="0.6" cp1y="30.0" cp2x="0.6" cp2y="27.0"/>
151.26500 +                                    <point x="0.6" y="6.071428571428572" cp1x="0.6" cp1y="6.071428571428572" cp2x="0.6" cp2y="3.071428571428571"/>
151.26501 +                                    <point x="6.0" y="0.6" cp1x="3.0" cp1y="0.6" cp2x="6.0" cp2y="0.6"/>
151.26502 +                                    <point x="44.0" y="0.6" cp1x="44.0" cp1y="0.6" cp2x="44.0" cp2y="0.6"/>
151.26503 +                                    <point x="44.0" y="2.4285714285714297" cp1x="44.0" cp1y="2.4285714285714297" cp2x="44.0" cp2y="2.4285714285714297"/>
151.26504 +                                    <point x="6.0" y="2.4285714285714297" cp1x="6.0" cp1y="2.4285714285714297" cp2x="4.071428571428573" cp2y="2.4285714285714297"/>
151.26505 +                                    <point x="2.357142857142858" y="5.928571428571429" cp1x="2.312863373522748" cp1y="3.499353333829805" cp2x="2.357142857142858" cp2y="5.928571428571429"/>
151.26506 +                                    <point x="2.357142857142858" y="27.0" cp1x="2.357142857142858" cp1y="27.0" cp2x="2.357142857142858" cp2y="29.214285714285698"/>
151.26507 +                                    <point x="6.0" y="30.571428571428562" cp1x="4.214285714285715" cp1y="30.571428571428562" cp2x="6.0" cp2y="30.571428571428562"/>
151.26508 +                                    <point x="98.0" y="30.571428571428562" cp1x="98.0" cp1y="30.571428571428562" cp2x="100.0714285714286" cp2y="30.571428571428562"/>
151.26509 +                                    <point x="101.50000000000001" y="27.0" cp1x="101.50000000000001" cp1y="29.214285714285705" cp2x="101.50000000000001" cp2y="27.0"/>
151.26510 +                                    <point x="101.57142857142858" y="6.0" cp1x="101.57142857142858" cp1y="6.0" cp2x="101.57142857142858" cp2y="3.8571428571428594"/>
151.26511 +                                    <point x="98.07142857142857" y="2.357142857142858" cp1x="100.21428571428574" cp1y="2.357142857142858" cp2x="98.07142857142857" cp2y="2.357142857142858"/>
151.26512 +                                    <point x="44.0" y="2.4285714285714297" cp1x="44.0" cp1y="2.4285714285714297" cp2x="44.0" cp2y="2.4285714285714297"/>
151.26513 +                                 </points>
151.26514 +                              </path>
151.26515 +                           </shapes>
151.26516 +                           <effects/>
151.26517 +                        </layer>
151.26518 +                     </canvas>
151.26519 +                  </state>
151.26520 +                  <state stateKeys="MouseOver">
151.26521 +                     <style>
151.26522 +                        <textForeground/>
151.26523 +                        <textBackground/>
151.26524 +                        <background/>
151.26525 +                        <uiproperties/>
151.26526 +                     </style>
151.26527 +                     <canvas>
151.26528 +                        <size width="104" height="34"/>
151.26529 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.26530 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.26531 +                        <layer name="Button Layer">
151.26532 +                           <opacity>1.0</opacity>
151.26533 +                           <fillOpacity>1.0</fillOpacity>
151.26534 +                           <blendingMode>NORMAL</blendingMode>
151.26535 +                           <locked>false</locked>
151.26536 +                           <visible>true</visible>
151.26537 +                           <shapes>
151.26538 +                              <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="9.0">
151.26539 +                                 <gradient cycleMethod="NO_CYCLE">
151.26540 +                                    <stop position="0.0" midpoint="0.5">
151.26541 +                                       <matte red="253" green="253" blue="254" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10658931" brightnessOffset="0.25098038" alphaOffset="0"/>
151.26542 +                                    </stop>
151.26543 +                                    <stop position="0.06" midpoint="0.5">
151.26544 +                                       <matte red="247" green="248" blue="250" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.098526314" brightnessOffset="0.2352941" alphaOffset="0"/>
151.26545 +                                    </stop>
151.26546 +                                    <stop position="0.6" midpoint="0.5">
151.26547 +                                       <matte red="233" green="236" blue="242" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07333623" brightnessOffset="0.20392156" alphaOffset="0"/>
151.26548 +                                    </stop>
151.26549 +                                    <stop position="0.7" midpoint="0.5">
151.26550 +                                       <matte red="233" green="236" blue="242" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07333623" brightnessOffset="0.20392156" alphaOffset="0"/>
151.26551 +                                    </stop>
151.26552 +                                    <stop position="0.95" midpoint="0.5">
151.26553 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.26554 +                                    </stop>
151.26555 +                                    <stop position="1.0" midpoint="0.5">
151.26556 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.26557 +                                    </stop>
151.26558 +                                 </gradient>
151.26559 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.26560 +                              </rectangle>
151.26561 +                              <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="12.0">
151.26562 +                                 <gradient cycleMethod="NO_CYCLE">
151.26563 +                                    <stop position="0.09" midpoint="0.5">
151.26564 +                                       <matte red="122" green="126" blue="134" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.020974077" brightnessOffset="-0.21960783" alphaOffset="0"/>
151.26565 +                                    </stop>
151.26566 +                                    <stop position="0.95" midpoint="0.5">
151.26567 +                                       <matte red="42" green="46" blue="54" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.11169591" brightnessOffset="-0.53333336" alphaOffset="0"/>
151.26568 +                                    </stop>
151.26569 +                                 </gradient>
151.26570 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.26571 +                              </rectangle>
151.26572 +                           </shapes>
151.26573 +                           <effects/>
151.26574 +                        </layer>
151.26575 +                        <layer name="Shadow Layer">
151.26576 +                           <opacity>1.0</opacity>
151.26577 +                           <fillOpacity>1.0</fillOpacity>
151.26578 +                           <blendingMode>NORMAL</blendingMode>
151.26579 +                           <locked>false</locked>
151.26580 +                           <visible>true</visible>
151.26581 +                           <shapes>
151.26582 +                              <rectangle x1="2.0" x2="102.0" y1="3.0" y2="32.0" rounding="12.0">
151.26583 +                                 <matte red="92" green="94" blue="96" alpha="102" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.06885965" brightnessOffset="-0.36862746" alphaOffset="-153"/>
151.26584 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.26585 +                              </rectangle>
151.26586 +                           </shapes>
151.26587 +                           <effects/>
151.26588 +                        </layer>
151.26589 +                     </canvas>
151.26590 +                  </state>
151.26591 +                  <state stateKeys="MouseOver+Focused">
151.26592 +                     <style>
151.26593 +                        <textForeground/>
151.26594 +                        <textBackground/>
151.26595 +                        <background/>
151.26596 +                        <uiproperties/>
151.26597 +                     </style>
151.26598 +                     <canvas>
151.26599 +                        <size width="104" height="34"/>
151.26600 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.26601 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.26602 +                        <layer name="Button Layer">
151.26603 +                           <opacity>1.0</opacity>
151.26604 +                           <fillOpacity>1.0</fillOpacity>
151.26605 +                           <blendingMode>NORMAL</blendingMode>
151.26606 +                           <locked>false</locked>
151.26607 +                           <visible>true</visible>
151.26608 +                           <shapes>
151.26609 +                              <rectangle x1="3.0" x2="101.0" y1="3.0" y2="30.0" rounding="9.0">
151.26610 +                                 <gradient cycleMethod="NO_CYCLE">
151.26611 +                                    <stop position="0.0" midpoint="0.5">
151.26612 +                                       <matte red="253" green="253" blue="254" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.055555582" saturationOffset="-0.10658931" brightnessOffset="0.25098038" alphaOffset="0"/>
151.26613 +                                    </stop>
151.26614 +                                    <stop position="0.06" midpoint="0.5">
151.26615 +                                       <matte red="247" green="248" blue="250" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.098526314" brightnessOffset="0.2352941" alphaOffset="0"/>
151.26616 +                                    </stop>
151.26617 +                                    <stop position="0.6" midpoint="0.5">
151.26618 +                                       <matte red="233" green="236" blue="242" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07333623" brightnessOffset="0.20392156" alphaOffset="0"/>
151.26619 +                                    </stop>
151.26620 +                                    <stop position="0.7" midpoint="0.5">
151.26621 +                                       <matte red="233" green="236" blue="242" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.07333623" brightnessOffset="0.20392156" alphaOffset="0"/>
151.26622 +                                    </stop>
151.26623 +                                    <stop position="0.95" midpoint="0.5">
151.26624 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.26625 +                                    </stop>
151.26626 +                                    <stop position="1.0" midpoint="0.5">
151.26627 +                                       <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.26628 +                                    </stop>
151.26629 +                                 </gradient>
151.26630 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.26631 +                              </rectangle>
151.26632 +                              <rectangle x1="2.0" x2="102.0" y1="2.0" y2="31.0" rounding="12.0">
151.26633 +                                 <gradient cycleMethod="NO_CYCLE">
151.26634 +                                    <stop position="0.09" midpoint="0.5">
151.26635 +                                       <matte red="122" green="126" blue="134" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.020974077" brightnessOffset="-0.21960783" alphaOffset="0"/>
151.26636 +                                    </stop>
151.26637 +                                    <stop position="0.95" midpoint="0.5">
151.26638 +                                       <matte red="42" green="46" blue="54" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.11169591" brightnessOffset="-0.53333336" alphaOffset="0"/>
151.26639 +                                    </stop>
151.26640 +                                 </gradient>
151.26641 +                                 <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.26642 +                              </rectangle>
151.26643 +                              <rectangle x1="0.6" x2="103.4" y1="0.6" y2="32.4" rounding="13.0">
151.26644 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.26645 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.26646 +                              </rectangle>
151.26647 +                           </shapes>
151.26648 +                           <effects/>
151.26649 +                        </layer>
151.26650 +                     </canvas>
151.26651 +                  </state>
151.26652 +                  <state stateKeys="Pressed">
151.26653 +                     <style>
151.26654 +                        <textForeground/>
151.26655 +                        <textBackground/>
151.26656 +                        <background/>
151.26657 +                        <uiproperties/>
151.26658 +                     </style>
151.26659 +                     <canvas>
151.26660 +                        <size width="72" height="25"/>
151.26661 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.26662 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.26663 +                        <layer name="Layer 1">
151.26664 +                           <opacity>1.0</opacity>
151.26665 +                           <fillOpacity>1.0</fillOpacity>
151.26666 +                           <blendingMode>NORMAL</blendingMode>
151.26667 +                           <locked>false</locked>
151.26668 +                           <visible>true</visible>
151.26669 +                           <shapes>
151.26670 +                              <rectangle x1="3.0" x2="69.0" y1="3.0" y2="21.0" rounding="8.0">
151.26671 +                                 <gradient cycleMethod="NO_CYCLE">
151.26672 +                                    <stop position="0.0" midpoint="0.5">
151.26673 +                                       <matte red="149" green="152" blue="157" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.006944418" saturationOffset="-0.0595709" brightnessOffset="-0.12941176" alphaOffset="0"/>
151.26674 +                                    </stop>
151.26675 +                                    <stop position="0.13368984" midpoint="0.5">
151.26676 +                                       <matte red="173" green="176" blue="182" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.061075766" brightnessOffset="-0.031372547" alphaOffset="0"/>
151.26677 +                                    </stop>
151.26678 +                                    <stop position="1.0" midpoint="0.5">
151.26679 +                                       <matte red="172" green="175" blue="181" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06080256" brightnessOffset="-0.035294116" alphaOffset="0"/>
151.26680 +                                    </stop>
151.26681 +                                 </gradient>
151.26682 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.2512626262626261" y2="1.0092592592592593"/>
151.26683 +                              </rectangle>
151.26684 +                              <rectangle x1="2.0" x2="70.0" y1="2.0" y2="22.0" rounding="10.0">
151.26685 +                                 <gradient cycleMethod="NO_CYCLE">
151.26686 +                                    <stop position="0.0" midpoint="0.5">
151.26687 +                                       <matte red="95" green="97" blue="100" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.01111114" saturationOffset="-0.060526315" brightnessOffset="-0.3529412" alphaOffset="0"/>
151.26688 +                                    </stop>
151.26689 +                                    <stop position="1.0" midpoint="0.5">
151.26690 +                                       <matte red="124" green="126" blue="130" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.064372465" brightnessOffset="-0.2352941" alphaOffset="0"/>
151.26691 +                                    </stop>
151.26692 +                                 </gradient>
151.26693 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.24999999999999994" y2="1.0041666666666667"/>
151.26694 +                              </rectangle>
151.26695 +                              <rectangle x1="2.0" x2="70.0" y1="3.0" y2="23.0" rounding="10.0">
151.26696 +                                 <matte red="255" green="255" blue="255" alpha="169" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-86"/>
151.26697 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.26698 +                              </rectangle>
151.26699 +                           </shapes>
151.26700 +                           <effects/>
151.26701 +                        </layer>
151.26702 +                     </canvas>
151.26703 +                  </state>
151.26704 +                  <state stateKeys="Pressed+Focused">
151.26705 +                     <style>
151.26706 +                        <textForeground/>
151.26707 +                        <textBackground/>
151.26708 +                        <background/>
151.26709 +                        <uiproperties/>
151.26710 +                     </style>
151.26711 +                     <canvas>
151.26712 +                        <size width="72" height="25"/>
151.26713 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.26714 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.26715 +                        <layer name="Layer 1">
151.26716 +                           <opacity>1.0</opacity>
151.26717 +                           <fillOpacity>1.0</fillOpacity>
151.26718 +                           <blendingMode>NORMAL</blendingMode>
151.26719 +                           <locked>false</locked>
151.26720 +                           <visible>true</visible>
151.26721 +                           <shapes>
151.26722 +                              <rectangle x1="3.0" x2="69.0" y1="3.0" y2="21.0" rounding="8.0">
151.26723 +                                 <gradient cycleMethod="NO_CYCLE">
151.26724 +                                    <stop position="0.0" midpoint="0.5">
151.26725 +                                       <matte red="149" green="152" blue="157" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.006944418" saturationOffset="-0.0595709" brightnessOffset="-0.12941176" alphaOffset="0"/>
151.26726 +                                    </stop>
151.26727 +                                    <stop position="0.13368984" midpoint="0.5">
151.26728 +                                       <matte red="173" green="176" blue="182" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.061075766" brightnessOffset="-0.031372547" alphaOffset="0"/>
151.26729 +                                    </stop>
151.26730 +                                    <stop position="1.0" midpoint="0.5">
151.26731 +                                       <matte red="172" green="175" blue="181" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06080256" brightnessOffset="-0.035294116" alphaOffset="0"/>
151.26732 +                                    </stop>
151.26733 +                                 </gradient>
151.26734 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.2512626262626261" y2="1.0092592592592593"/>
151.26735 +                              </rectangle>
151.26736 +                              <rectangle x1="2.0" x2="70.0" y1="2.0" y2="22.0" rounding="10.0">
151.26737 +                                 <gradient cycleMethod="NO_CYCLE">
151.26738 +                                    <stop position="0.0" midpoint="0.5">
151.26739 +                                       <matte red="95" green="97" blue="100" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.01111114" saturationOffset="-0.060526315" brightnessOffset="-0.3529412" alphaOffset="0"/>
151.26740 +                                    </stop>
151.26741 +                                    <stop position="1.0" midpoint="0.5">
151.26742 +                                       <matte red="124" green="126" blue="130" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.064372465" brightnessOffset="-0.2352941" alphaOffset="0"/>
151.26743 +                                    </stop>
151.26744 +                                 </gradient>
151.26745 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.24999999999999994" y2="1.0041666666666667"/>
151.26746 +                              </rectangle>
151.26747 +                              <rectangle x1="0.6" x2="71.4" y1="0.6" y2="23.4" rounding="13.0">
151.26748 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.26749 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.26750 +                              </rectangle>
151.26751 +                           </shapes>
151.26752 +                           <effects/>
151.26753 +                        </layer>
151.26754 +                     </canvas>
151.26755 +                  </state>
151.26756 +                  <state stateKeys="Selected">
151.26757 +                     <style>
151.26758 +                        <textForeground/>
151.26759 +                        <textBackground/>
151.26760 +                        <background/>
151.26761 +                        <uiproperties/>
151.26762 +                     </style>
151.26763 +                     <canvas>
151.26764 +                        <size width="72" height="25"/>
151.26765 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.26766 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.26767 +                        <layer name="Layer 1">
151.26768 +                           <opacity>1.0</opacity>
151.26769 +                           <fillOpacity>1.0</fillOpacity>
151.26770 +                           <blendingMode>NORMAL</blendingMode>
151.26771 +                           <locked>false</locked>
151.26772 +                           <visible>true</visible>
151.26773 +                           <shapes>
151.26774 +                              <rectangle x1="3.0" x2="69.0" y1="3.0" y2="21.0" rounding="8.0">
151.26775 +                                 <gradient cycleMethod="NO_CYCLE">
151.26776 +                                    <stop position="0.0" midpoint="0.5">
151.26777 +                                       <matte red="164" green="166" blue="172" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0138888955" saturationOffset="-0.06401469" brightnessOffset="-0.07058823" alphaOffset="0"/>
151.26778 +                                    </stop>
151.26779 +                                    <stop position="0.13368984" midpoint="0.5">
151.26780 +                                       <matte red="190" green="193" blue="199" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06530018" brightnessOffset="0.035294116" alphaOffset="0"/>
151.26781 +                                    </stop>
151.26782 +                                    <stop position="1.0" midpoint="0.5">
151.26783 +                                       <matte red="189" green="192" blue="198" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06507177" brightnessOffset="0.031372547" alphaOffset="0"/>
151.26784 +                                    </stop>
151.26785 +                                 </gradient>
151.26786 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.2512626262626261" y2="1.0092592592592593"/>
151.26787 +                              </rectangle>
151.26788 +                              <rectangle x1="2.0" x2="70.0" y1="2.0" y2="22.0" rounding="10.0">
151.26789 +                                 <gradient cycleMethod="NO_CYCLE">
151.26790 +                                    <stop position="0.0" midpoint="0.5">
151.26791 +                                       <matte red="125" green="127" blue="131" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06472479" brightnessOffset="-0.23137254" alphaOffset="0"/>
151.26792 +                                    </stop>
151.26793 +                                    <stop position="1.0" midpoint="0.5">
151.26794 +                                       <matte red="164" green="166" blue="171" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.06959064" brightnessOffset="-0.0745098" alphaOffset="0"/>
151.26795 +                                    </stop>
151.26796 +                                 </gradient>
151.26797 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.24999999999999994" y2="1.0041666666666667"/>
151.26798 +                              </rectangle>
151.26799 +                              <rectangle x1="2.0" x2="70.0" y1="3.0" y2="23.0" rounding="10.0">
151.26800 +                                 <matte red="255" green="255" blue="255" alpha="169" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-86"/>
151.26801 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.26802 +                              </rectangle>
151.26803 +                           </shapes>
151.26804 +                           <effects/>
151.26805 +                        </layer>
151.26806 +                        <templateLayer fileName="1139ecfc04b.png">
151.26807 +                           <layer name="Template" type="template">
151.26808 +                              <opacity>1.0</opacity>
151.26809 +                              <fillOpacity>1.0</fillOpacity>
151.26810 +                              <blendingMode>NORMAL</blendingMode>
151.26811 +                              <locked>false</locked>
151.26812 +                              <visible>false</visible>
151.26813 +                              <shapes/>
151.26814 +                              <effects/>
151.26815 +                           </layer>
151.26816 +                        </templateLayer>
151.26817 +                     </canvas>
151.26818 +                  </state>
151.26819 +                  <state stateKeys="Selected+Focused">
151.26820 +                     <style>
151.26821 +                        <textForeground/>
151.26822 +                        <textBackground/>
151.26823 +                        <background/>
151.26824 +                        <uiproperties/>
151.26825 +                     </style>
151.26826 +                     <canvas>
151.26827 +                        <size width="72" height="25"/>
151.26828 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.26829 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.26830 +                        <layer name="Layer 1">
151.26831 +                           <opacity>1.0</opacity>
151.26832 +                           <fillOpacity>1.0</fillOpacity>
151.26833 +                           <blendingMode>NORMAL</blendingMode>
151.26834 +                           <locked>false</locked>
151.26835 +                           <visible>true</visible>
151.26836 +                           <shapes>
151.26837 +                              <rectangle x1="3.0" x2="69.0" y1="3.0" y2="21.0" rounding="8.0">
151.26838 +                                 <gradient cycleMethod="NO_CYCLE">
151.26839 +                                    <stop position="0.0" midpoint="0.5">
151.26840 +                                       <matte red="164" green="166" blue="172" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0138888955" saturationOffset="-0.06401469" brightnessOffset="-0.07058823" alphaOffset="0"/>
151.26841 +                                    </stop>
151.26842 +                                    <stop position="0.13368984" midpoint="0.5">
151.26843 +                                       <matte red="190" green="193" blue="199" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06530018" brightnessOffset="0.035294116" alphaOffset="0"/>
151.26844 +                                    </stop>
151.26845 +                                    <stop position="1.0" midpoint="0.5">
151.26846 +                                       <matte red="189" green="192" blue="198" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06507177" brightnessOffset="0.031372547" alphaOffset="0"/>
151.26847 +                                    </stop>
151.26848 +                                 </gradient>
151.26849 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.2512626262626261" y2="1.0092592592592593"/>
151.26850 +                              </rectangle>
151.26851 +                              <rectangle x1="2.0" x2="70.0" y1="2.0" y2="22.0" rounding="10.0">
151.26852 +                                 <gradient cycleMethod="NO_CYCLE">
151.26853 +                                    <stop position="0.0" midpoint="0.5">
151.26854 +                                       <matte red="125" green="127" blue="131" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06472479" brightnessOffset="-0.23137254" alphaOffset="0"/>
151.26855 +                                    </stop>
151.26856 +                                    <stop position="1.0" midpoint="0.5">
151.26857 +                                       <matte red="164" green="166" blue="171" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.06959064" brightnessOffset="-0.0745098" alphaOffset="0"/>
151.26858 +                                    </stop>
151.26859 +                                 </gradient>
151.26860 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.24999999999999994" y2="1.0041666666666667"/>
151.26861 +                              </rectangle>
151.26862 +                              <rectangle x1="0.6" x2="71.4" y1="0.6" y2="23.4" rounding="13.0">
151.26863 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.26864 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.26865 +                              </rectangle>
151.26866 +                           </shapes>
151.26867 +                           <effects/>
151.26868 +                        </layer>
151.26869 +                     </canvas>
151.26870 +                  </state>
151.26871 +                  <state stateKeys="Pressed+Selected">
151.26872 +                     <style>
151.26873 +                        <textForeground/>
151.26874 +                        <textBackground/>
151.26875 +                        <background/>
151.26876 +                        <uiproperties/>
151.26877 +                     </style>
151.26878 +                     <canvas>
151.26879 +                        <size width="72" height="25"/>
151.26880 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.26881 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.26882 +                        <layer name="Layer 1">
151.26883 +                           <opacity>1.0</opacity>
151.26884 +                           <fillOpacity>1.0</fillOpacity>
151.26885 +                           <blendingMode>NORMAL</blendingMode>
151.26886 +                           <locked>false</locked>
151.26887 +                           <visible>true</visible>
151.26888 +                           <shapes>
151.26889 +                              <rectangle x1="3.0" x2="69.0" y1="3.0" y2="21.0" rounding="8.0">
151.26890 +                                 <gradient cycleMethod="NO_CYCLE">
151.26891 +                                    <stop position="0.0" midpoint="0.5">
151.26892 +                                       <matte red="117" green="121" blue="126" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.018518567" saturationOffset="-0.03909774" brightnessOffset="-0.2509804" alphaOffset="0"/>
151.26893 +                                    </stop>
151.26894 +                                    <stop position="0.13368984" midpoint="0.5">
151.26895 +                                       <matte red="145" green="149" blue="156" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.00505054" saturationOffset="-0.040013492" brightnessOffset="-0.13333333" alphaOffset="0"/>
151.26896 +                                    </stop>
151.26897 +                                    <stop position="1.0" midpoint="0.5">
151.26898 +                                       <matte red="144" green="147" blue="155" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.01010108" saturationOffset="-0.039558575" brightnessOffset="-0.1372549" alphaOffset="0"/>
151.26899 +                                    </stop>
151.26900 +                                 </gradient>
151.26901 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.2512626262626261" y2="1.0092592592592593"/>
151.26902 +                              </rectangle>
151.26903 +                              <rectangle x1="2.0" x2="70.0" y1="2.0" y2="22.0" rounding="10.0">
151.26904 +                                 <gradient cycleMethod="NO_CYCLE">
151.26905 +                                    <stop position="0.0" midpoint="0.5">
151.26906 +                                       <matte red="66" green="68" blue="70" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.05338346" brightnessOffset="-0.47058824" alphaOffset="0"/>
151.26907 +                                    </stop>
151.26908 +                                    <stop position="1.0" midpoint="0.5">
151.26909 +                                       <matte red="92" green="94" blue="98" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.049301825" brightnessOffset="-0.36078432" alphaOffset="0"/>
151.26910 +                                    </stop>
151.26911 +                                 </gradient>
151.26912 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.24999999999999994" y2="1.0041666666666667"/>
151.26913 +                              </rectangle>
151.26914 +                              <rectangle x1="2.0" x2="70.0" y1="3.0" y2="23.0" rounding="10.0">
151.26915 +                                 <matte red="255" green="255" blue="255" alpha="169" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-86"/>
151.26916 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.26917 +                              </rectangle>
151.26918 +                           </shapes>
151.26919 +                           <effects/>
151.26920 +                        </layer>
151.26921 +                        <templateLayer fileName="1139ed92ed8.png">
151.26922 +                           <layer name="Template" type="template">
151.26923 +                              <opacity>1.0</opacity>
151.26924 +                              <fillOpacity>1.0</fillOpacity>
151.26925 +                              <blendingMode>NORMAL</blendingMode>
151.26926 +                              <locked>false</locked>
151.26927 +                              <visible>false</visible>
151.26928 +                              <shapes/>
151.26929 +                              <effects/>
151.26930 +                           </layer>
151.26931 +                        </templateLayer>
151.26932 +                     </canvas>
151.26933 +                  </state>
151.26934 +                  <state stateKeys="Pressed+Selected+Focused">
151.26935 +                     <style>
151.26936 +                        <textForeground/>
151.26937 +                        <textBackground/>
151.26938 +                        <background/>
151.26939 +                        <uiproperties/>
151.26940 +                     </style>
151.26941 +                     <canvas>
151.26942 +                        <size width="72" height="25"/>
151.26943 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.26944 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.26945 +                        <layer name="Layer 1">
151.26946 +                           <opacity>1.0</opacity>
151.26947 +                           <fillOpacity>1.0</fillOpacity>
151.26948 +                           <blendingMode>NORMAL</blendingMode>
151.26949 +                           <locked>false</locked>
151.26950 +                           <visible>true</visible>
151.26951 +                           <shapes>
151.26952 +                              <rectangle x1="3.0" x2="69.0" y1="3.0" y2="21.0" rounding="8.0">
151.26953 +                                 <gradient cycleMethod="NO_CYCLE">
151.26954 +                                    <stop position="0.0" midpoint="0.5">
151.26955 +                                       <matte red="117" green="121" blue="126" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.018518567" saturationOffset="-0.03909774" brightnessOffset="-0.2509804" alphaOffset="0"/>
151.26956 +                                    </stop>
151.26957 +                                    <stop position="0.13368984" midpoint="0.5">
151.26958 +                                       <matte red="145" green="149" blue="156" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.00505054" saturationOffset="-0.040013492" brightnessOffset="-0.13333333" alphaOffset="0"/>
151.26959 +                                    </stop>
151.26960 +                                    <stop position="1.0" midpoint="0.5">
151.26961 +                                       <matte red="144" green="147" blue="155" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.01010108" saturationOffset="-0.039558575" brightnessOffset="-0.1372549" alphaOffset="0"/>
151.26962 +                                    </stop>
151.26963 +                                 </gradient>
151.26964 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.2512626262626261" y2="1.0092592592592593"/>
151.26965 +                              </rectangle>
151.26966 +                              <rectangle x1="2.0" x2="70.0" y1="2.0" y2="22.0" rounding="10.0">
151.26967 +                                 <gradient cycleMethod="NO_CYCLE">
151.26968 +                                    <stop position="0.0" midpoint="0.5">
151.26969 +                                       <matte red="66" green="68" blue="70" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.027777791" saturationOffset="-0.05338346" brightnessOffset="-0.47058824" alphaOffset="0"/>
151.26970 +                                    </stop>
151.26971 +                                    <stop position="1.0" midpoint="0.5">
151.26972 +                                       <matte red="92" green="94" blue="98" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.049301825" brightnessOffset="-0.36078432" alphaOffset="0"/>
151.26973 +                                    </stop>
151.26974 +                                 </gradient>
151.26975 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.24999999999999994" y2="1.0041666666666667"/>
151.26976 +                              </rectangle>
151.26977 +                              <rectangle x1="0.6" x2="71.4" y1="0.6" y2="23.4" rounding="13.0">
151.26978 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.26979 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.26980 +                              </rectangle>
151.26981 +                           </shapes>
151.26982 +                           <effects/>
151.26983 +                        </layer>
151.26984 +                     </canvas>
151.26985 +                  </state>
151.26986 +                  <state stateKeys="MouseOver+Selected">
151.26987 +                     <style>
151.26988 +                        <textForeground/>
151.26989 +                        <textBackground/>
151.26990 +                        <background/>
151.26991 +                        <uiproperties/>
151.26992 +                     </style>
151.26993 +                     <canvas>
151.26994 +                        <size width="72" height="25"/>
151.26995 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.26996 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.26997 +                        <layer name="Layer 1">
151.26998 +                           <opacity>1.0</opacity>
151.26999 +                           <fillOpacity>1.0</fillOpacity>
151.27000 +                           <blendingMode>NORMAL</blendingMode>
151.27001 +                           <locked>false</locked>
151.27002 +                           <visible>true</visible>
151.27003 +                           <shapes>
151.27004 +                              <rectangle x1="3.0" x2="69.0" y1="3.0" y2="21.0" rounding="8.0">
151.27005 +                                 <gradient cycleMethod="NO_CYCLE">
151.27006 +                                    <stop position="0.0" midpoint="0.5">
151.27007 +                                       <matte red="149" green="152" blue="157" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.006944418" saturationOffset="-0.0595709" brightnessOffset="-0.12941176" alphaOffset="0"/>
151.27008 +                                    </stop>
151.27009 +                                    <stop position="0.13368984" midpoint="0.5">
151.27010 +                                       <matte red="173" green="176" blue="182" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.061075766" brightnessOffset="-0.031372547" alphaOffset="0"/>
151.27011 +                                    </stop>
151.27012 +                                    <stop position="1.0" midpoint="0.5">
151.27013 +                                       <matte red="172" green="175" blue="181" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06080256" brightnessOffset="-0.035294116" alphaOffset="0"/>
151.27014 +                                    </stop>
151.27015 +                                 </gradient>
151.27016 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.2512626262626261" y2="1.0092592592592593"/>
151.27017 +                              </rectangle>
151.27018 +                              <rectangle x1="2.0" x2="70.0" y1="2.0" y2="22.0" rounding="10.0">
151.27019 +                                 <gradient cycleMethod="NO_CYCLE">
151.27020 +                                    <stop position="0.0" midpoint="0.5">
151.27021 +                                       <matte red="95" green="97" blue="100" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.01111114" saturationOffset="-0.060526315" brightnessOffset="-0.3529412" alphaOffset="0"/>
151.27022 +                                    </stop>
151.27023 +                                    <stop position="1.0" midpoint="0.5">
151.27024 +                                       <matte red="124" green="126" blue="130" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.064372465" brightnessOffset="-0.2352941" alphaOffset="0"/>
151.27025 +                                    </stop>
151.27026 +                                 </gradient>
151.27027 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.24999999999999994" y2="1.0041666666666667"/>
151.27028 +                              </rectangle>
151.27029 +                              <rectangle x1="2.0" x2="70.0" y1="3.0" y2="23.0" rounding="10.0">
151.27030 +                                 <matte red="255" green="255" blue="255" alpha="169" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-86"/>
151.27031 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.27032 +                              </rectangle>
151.27033 +                           </shapes>
151.27034 +                           <effects/>
151.27035 +                        </layer>
151.27036 +                        <templateLayer fileName="1139eda6220.png">
151.27037 +                           <layer name="Template" type="template">
151.27038 +                              <opacity>1.0</opacity>
151.27039 +                              <fillOpacity>1.0</fillOpacity>
151.27040 +                              <blendingMode>NORMAL</blendingMode>
151.27041 +                              <locked>false</locked>
151.27042 +                              <visible>false</visible>
151.27043 +                              <shapes/>
151.27044 +                              <effects/>
151.27045 +                           </layer>
151.27046 +                        </templateLayer>
151.27047 +                     </canvas>
151.27048 +                  </state>
151.27049 +                  <state stateKeys="MouseOver+Selected+Focused">
151.27050 +                     <style>
151.27051 +                        <textForeground/>
151.27052 +                        <textBackground/>
151.27053 +                        <background/>
151.27054 +                        <uiproperties/>
151.27055 +                     </style>
151.27056 +                     <canvas>
151.27057 +                        <size width="72" height="25"/>
151.27058 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.27059 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.27060 +                        <layer name="Layer 1">
151.27061 +                           <opacity>1.0</opacity>
151.27062 +                           <fillOpacity>1.0</fillOpacity>
151.27063 +                           <blendingMode>NORMAL</blendingMode>
151.27064 +                           <locked>false</locked>
151.27065 +                           <visible>true</visible>
151.27066 +                           <shapes>
151.27067 +                              <rectangle x1="3.0" x2="69.0" y1="3.0" y2="21.0" rounding="8.0">
151.27068 +                                 <gradient cycleMethod="NO_CYCLE">
151.27069 +                                    <stop position="0.0" midpoint="0.5">
151.27070 +                                       <matte red="149" green="152" blue="157" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.006944418" saturationOffset="-0.0595709" brightnessOffset="-0.12941176" alphaOffset="0"/>
151.27071 +                                    </stop>
151.27072 +                                    <stop position="0.13368984" midpoint="0.5">
151.27073 +                                       <matte red="173" green="176" blue="182" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.061075766" brightnessOffset="-0.031372547" alphaOffset="0"/>
151.27074 +                                    </stop>
151.27075 +                                    <stop position="1.0" midpoint="0.5">
151.27076 +                                       <matte red="172" green="175" blue="181" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06080256" brightnessOffset="-0.035294116" alphaOffset="0"/>
151.27077 +                                    </stop>
151.27078 +                                 </gradient>
151.27079 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.2512626262626261" y2="1.0092592592592593"/>
151.27080 +                              </rectangle>
151.27081 +                              <rectangle x1="2.0" x2="70.0" y1="2.0" y2="22.0" rounding="10.0">
151.27082 +                                 <gradient cycleMethod="NO_CYCLE">
151.27083 +                                    <stop position="0.0" midpoint="0.5">
151.27084 +                                       <matte red="95" green="97" blue="100" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.01111114" saturationOffset="-0.060526315" brightnessOffset="-0.3529412" alphaOffset="0"/>
151.27085 +                                    </stop>
151.27086 +                                    <stop position="1.0" midpoint="0.5">
151.27087 +                                       <matte red="124" green="126" blue="130" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.064372465" brightnessOffset="-0.2352941" alphaOffset="0"/>
151.27088 +                                    </stop>
151.27089 +                                 </gradient>
151.27090 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.24999999999999994" y2="1.0041666666666667"/>
151.27091 +                              </rectangle>
151.27092 +                              <rectangle x1="0.6" x2="71.4" y1="0.6" y2="23.4" rounding="13.0">
151.27093 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.27094 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.27095 +                              </rectangle>
151.27096 +                           </shapes>
151.27097 +                           <effects/>
151.27098 +                        </layer>
151.27099 +                     </canvas>
151.27100 +                  </state>
151.27101 +                  <state stateKeys="Disabled+Selected">
151.27102 +                     <style>
151.27103 +                        <textForeground>
151.27104 +                           <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.27105 +                        </textForeground>
151.27106 +                        <textBackground/>
151.27107 +                        <background/>
151.27108 +                        <inherit-textForeground>false</inherit-textForeground>
151.27109 +                        <uiproperties/>
151.27110 +                     </style>
151.27111 +                     <canvas>
151.27112 +                        <size width="72" height="25"/>
151.27113 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.27114 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.27115 +                        <layer name="Layer 1">
151.27116 +                           <opacity>1.0</opacity>
151.27117 +                           <fillOpacity>1.0</fillOpacity>
151.27118 +                           <blendingMode>NORMAL</blendingMode>
151.27119 +                           <locked>false</locked>
151.27120 +                           <visible>true</visible>
151.27121 +                           <shapes>
151.27122 +                              <rectangle x1="3.0" x2="69.0" y1="3.0" y2="21.0" rounding="8.0">
151.27123 +                                 <gradient cycleMethod="NO_CYCLE">
151.27124 +                                    <stop position="0.0" midpoint="0.5">
151.27125 +                                       <matte red="203" green="206" blue="212" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06807348" brightnessOffset="0.086274505" alphaOffset="0"/>
151.27126 +                                    </stop>
151.27127 +                                    <stop position="0.13368984" midpoint="0.5">
151.27128 +                                       <matte red="209" green="212" blue="218" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06924191" brightnessOffset="0.109803915" alphaOffset="0"/>
151.27129 +                                    </stop>
151.27130 +                                    <stop position="1.0" midpoint="0.5">
151.27131 +                                       <matte red="209" green="212" blue="218" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06924191" brightnessOffset="0.109803915" alphaOffset="0"/>
151.27132 +                                    </stop>
151.27133 +                                 </gradient>
151.27134 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.2512626262626261" y2="1.0092592592592593"/>
151.27135 +                              </rectangle>
151.27136 +                              <rectangle x1="2.0" x2="70.0" y1="2.0" y2="22.0" rounding="10.0">
151.27137 +                                 <gradient cycleMethod="NO_CYCLE">
151.27138 +                                    <stop position="0.0" midpoint="0.5">
151.27139 +                                       <matte red="195" green="198" blue="204" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.066408664" brightnessOffset="0.054901958" alphaOffset="0"/>
151.27140 +                                    </stop>
151.27141 +                                    <stop position="1.0" midpoint="0.5">
151.27142 +                                       <matte red="203" green="206" blue="212" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.06807348" brightnessOffset="0.086274505" alphaOffset="0"/>
151.27143 +                                    </stop>
151.27144 +                                 </gradient>
151.27145 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.24999999999999994" y2="1.0041666666666667"/>
151.27146 +                              </rectangle>
151.27147 +                              <rectangle x1="2.0" x2="70.0" y1="3.0" y2="23.0" rounding="10.0">
151.27148 +                                 <matte red="255" green="255" blue="255" alpha="35" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="-220"/>
151.27149 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.27150 +                              </rectangle>
151.27151 +                           </shapes>
151.27152 +                           <effects/>
151.27153 +                        </layer>
151.27154 +                        <templateLayer fileName="1139edb5619.png">
151.27155 +                           <layer name="Template" type="template">
151.27156 +                              <opacity>1.0</opacity>
151.27157 +                              <fillOpacity>1.0</fillOpacity>
151.27158 +                              <blendingMode>NORMAL</blendingMode>
151.27159 +                              <locked>false</locked>
151.27160 +                              <visible>false</visible>
151.27161 +                              <shapes/>
151.27162 +                              <effects/>
151.27163 +                           </layer>
151.27164 +                        </templateLayer>
151.27165 +                     </canvas>
151.27166 +                  </state>
151.27167 +               </backgroundStates>
151.27168 +               <foregroundStates/>
151.27169 +               <borderStates/>
151.27170 +               <regions/>
151.27171 +            </uiComponent>
151.27172 +         </regions>
151.27173 +      </uiComponent>
151.27174 +      <uiComponent opaque="false" type="javax.swing.JToolBar$Separator" name="ToolBarSeparator" ui="ToolBarSeparatorUI" subregion="false">
151.27175 +         <stateTypes/>
151.27176 +         <contentMargins top="2" bottom="3" left="0" right="0"/>
151.27177 +         <style>
151.27178 +            <textForeground>
151.27179 +               <matte red="146" green="151" blue="161" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.27180 +            </textForeground>
151.27181 +            <textBackground/>
151.27182 +            <background/>
151.27183 +            <inherit-textForeground>false</inherit-textForeground>
151.27184 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.27185 +            <cacheMode>NO_CACHING</cacheMode>
151.27186 +            <maxHozCachedImgScaling>INF</maxHozCachedImgScaling>
151.27187 +            <maxVertCachedImgScaling>INF</maxVertCachedImgScaling>
151.27188 +            <uiproperties/>
151.27189 +         </style>
151.27190 +         <backgroundStates/>
151.27191 +         <foregroundStates/>
151.27192 +         <borderStates/>
151.27193 +         <regions/>
151.27194 +      </uiComponent>
151.27195 +      <uiComponent opaque="false" type="javax.swing.JToolTip" name="ToolTip" ui="ToolTipUI" subregion="false">
151.27196 +         <stateTypes/>
151.27197 +         <contentMargins top="4" bottom="4" left="4" right="4"/>
151.27198 +         <style>
151.27199 +            <textForeground/>
151.27200 +            <textBackground/>
151.27201 +            <background/>
151.27202 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.27203 +            <cacheMode>NO_CACHING</cacheMode>
151.27204 +            <uiproperties/>
151.27205 +         </style>
151.27206 +         <backgroundStates>
151.27207 +            <state stateKeys="Enabled">
151.27208 +               <style>
151.27209 +                  <textForeground/>
151.27210 +                  <textBackground/>
151.27211 +                  <background/>
151.27212 +                  <uiproperties/>
151.27213 +               </style>
151.27214 +               <canvas>
151.27215 +                  <size width="10" height="10"/>
151.27216 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.27217 +                  <stretchingInsets top="1" bottom="1" left="1" right="1"/>
151.27218 +                  <layer name="Layer 1">
151.27219 +                     <opacity>1.0</opacity>
151.27220 +                     <fillOpacity>1.0</fillOpacity>
151.27221 +                     <blendingMode>NORMAL</blendingMode>
151.27222 +                     <locked>false</locked>
151.27223 +                     <visible>true</visible>
151.27224 +                     <shapes>
151.27225 +                        <rectangle x1="1.0" x2="9.0" y1="1.0" y2="9.0" rounding="0.0">
151.27226 +                           <matte red="242" green="242" blue="189" alpha="255" uiDefaultParentName="info" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.27227 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.27228 +                        </rectangle>
151.27229 +                        <rectangle x1="0.0" x2="10.0" y1="0.0" y2="1.0" rounding="0.0">
151.27230 +                           <matte red="146" green="151" blue="161" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.27231 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.27232 +                        </rectangle>
151.27233 +                        <rectangle x1="0.0" x2="10.0" y1="9.0" y2="10.0" rounding="0.0">
151.27234 +                           <matte red="146" green="151" blue="161" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.27235 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.27236 +                        </rectangle>
151.27237 +                        <rectangle x1="0.0" x2="1.0" y1="1.0" y2="9.0" rounding="0.0">
151.27238 +                           <matte red="146" green="151" blue="161" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.27239 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.27240 +                        </rectangle>
151.27241 +                        <rectangle x1="9.0" x2="10.0" y1="1.0" y2="9.0" rounding="0.0">
151.27242 +                           <matte red="146" green="151" blue="161" alpha="255" uiDefaultParentName="nimbusBorder" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.27243 +                           <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.27244 +                        </rectangle>
151.27245 +                     </shapes>
151.27246 +                     <effects/>
151.27247 +                  </layer>
151.27248 +               </canvas>
151.27249 +            </state>
151.27250 +         </backgroundStates>
151.27251 +         <foregroundStates/>
151.27252 +         <borderStates/>
151.27253 +         <regions/>
151.27254 +      </uiComponent>
151.27255 +      <uiComponent opaque="true" type="javax.swing.JTree" name="Tree" ui="TreeUI" subregion="false">
151.27256 +         <stateTypes/>
151.27257 +         <contentMargins top="0" bottom="0" left="0" right="0"/>
151.27258 +         <style>
151.27259 +            <textForeground>
151.27260 +               <matte red="0" green="0" blue="0" alpha="0" uiDefaultParentName="text" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0" uiResource="false"/>
151.27261 +            </textForeground>
151.27262 +            <textBackground>
151.27263 +               <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0" uiResource="false"/>
151.27264 +            </textBackground>
151.27265 +            <background>
151.27266 +               <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.27267 +            </background>
151.27268 +            <inherit-textForeground>false</inherit-textForeground>
151.27269 +            <inherit-textBackground>false</inherit-textBackground>
151.27270 +            <inherit-background>false</inherit-background>
151.27271 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.27272 +            <cacheMode>NO_CACHING</cacheMode>
151.27273 +            <uiproperties>
151.27274 +               <uiProperty name="rendererFillBackground" type="BOOLEAN" value="false"/>
151.27275 +               <uiProperty name="leftChildIndent" type="INT" value="12"/>
151.27276 +               <uiProperty name="rightChildIndent" type="INT" value="4"/>
151.27277 +               <uiProperty name="drawHorizontalLines" type="BOOLEAN" value="false"/>
151.27278 +               <uiProperty name="drawVerticalLines" type="BOOLEAN" value="false"/>
151.27279 +               <uiProperty name="showRootHandles" type="BOOLEAN" value="false"/>
151.27280 +               <uiProperty name="rendererUseTreeColors" type="BOOLEAN" value="true"/>
151.27281 +               <uiProperty name="repaintWholeRow" type="BOOLEAN" value="true"/>
151.27282 +               <uiProperty name="rowHeight" type="INT" value="0"/>
151.27283 +               <uiProperty name="rendererMargins" type="INSETS">
151.27284 +                   <insets top="2" left="0" bottom="1" right="5"/>
151.27285 +               </uiProperty>
151.27286 +               <uiProperty name="selectionForeground" type="COLOR">
151.27287 +                  <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusSelectedText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0" uiResource="false"/>
151.27288 +               </uiProperty>
151.27289 +               <uiProperty name="selectionBackground" type="COLOR">
151.27290 +                  <matte red="57" green="105" blue="138" alpha="255" uiDefaultParentName="nimbusSelectionBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0" uiResource="false"/>
151.27291 +               </uiProperty>
151.27292 +               <uiProperty name="dropLineColor" type="COLOR">
151.27293 +                  <matte red="242" green="242" blue="242" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0" alphaOffset="0"/>
151.27294 +               </uiProperty>
151.27295 +            </uiproperties>
151.27296 +         </style>
151.27297 +         <backgroundStates>
151.27298 +            <state stateKeys="Disabled">
151.27299 +               <style>
151.27300 +                  <textForeground/>
151.27301 +                  <textBackground/>
151.27302 +                  <background/>
151.27303 +                  <uiproperties/>
151.27304 +               </style>
151.27305 +               <canvas>
151.27306 +                  <size width="100" height="30"/>
151.27307 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.27308 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.27309 +                  <layer name="Layer 1">
151.27310 +                     <opacity>1.0</opacity>
151.27311 +                     <fillOpacity>1.0</fillOpacity>
151.27312 +                     <blendingMode>NORMAL</blendingMode>
151.27313 +                     <locked>false</locked>
151.27314 +                     <visible>true</visible>
151.27315 +                     <shapes/>
151.27316 +                     <effects/>
151.27317 +                  </layer>
151.27318 +               </canvas>
151.27319 +            </state>
151.27320 +            <state stateKeys="Enabled">
151.27321 +               <style>
151.27322 +                  <textForeground/>
151.27323 +                  <textBackground/>
151.27324 +                  <background/>
151.27325 +                  <uiproperties/>
151.27326 +               </style>
151.27327 +               <canvas>
151.27328 +                  <size width="100" height="30"/>
151.27329 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.27330 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.27331 +                  <layer name="Layer 1">
151.27332 +                     <opacity>1.0</opacity>
151.27333 +                     <fillOpacity>1.0</fillOpacity>
151.27334 +                     <blendingMode>NORMAL</blendingMode>
151.27335 +                     <locked>false</locked>
151.27336 +                     <visible>true</visible>
151.27337 +                     <shapes/>
151.27338 +                     <effects/>
151.27339 +                  </layer>
151.27340 +               </canvas>
151.27341 +            </state>
151.27342 +            <state stateKeys="Enabled+Selected">
151.27343 +               <style>
151.27344 +                  <textForeground/>
151.27345 +                  <textBackground/>
151.27346 +                  <background/>
151.27347 +                  <uiproperties/>
151.27348 +               </style>
151.27349 +               <canvas>
151.27350 +                  <size width="100" height="30"/>
151.27351 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.27352 +                  <stretchingInsets top="1" bottom="1" left="1" right="1"/>
151.27353 +                  <layer name="Layer 1">
151.27354 +                     <opacity>1.0</opacity>
151.27355 +                     <fillOpacity>1.0</fillOpacity>
151.27356 +                     <blendingMode>NORMAL</blendingMode>
151.27357 +                     <locked>false</locked>
151.27358 +                     <visible>true</visible>
151.27359 +                     <shapes/>
151.27360 +                     <effects/>
151.27361 +                  </layer>
151.27362 +               </canvas>
151.27363 +            </state>
151.27364 +         </backgroundStates>
151.27365 +         <foregroundStates/>
151.27366 +         <borderStates/>
151.27367 +         <regions>
151.27368 +            <region name="TreeCell" subregion="true" title="Tree Cell">
151.27369 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.27370 +               <style>
151.27371 +                  <textForeground/>
151.27372 +                  <textBackground/>
151.27373 +                  <background/>
151.27374 +                  <uiproperties/>
151.27375 +               </style>
151.27376 +               <backgroundStates>
151.27377 +                  <state stateKeys="Enabled">
151.27378 +                     <style>
151.27379 +                        <textForeground/>
151.27380 +                        <textBackground/>
151.27381 +                        <background>
151.27382 +                           <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.27383 +                        </background>
151.27384 +                        <inherit-background>false</inherit-background>
151.27385 +                        <uiproperties/>
151.27386 +                     </style>
151.27387 +                     <canvas>
151.27388 +                        <size width="100" height="30"/>
151.27389 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.27390 +                        <stretchingInsets top="0" bottom="0" left="15" right="15"/>
151.27391 +                        <layer name="Layer 1">
151.27392 +                           <opacity>1.0</opacity>
151.27393 +                           <fillOpacity>1.0</fillOpacity>
151.27394 +                           <blendingMode>NORMAL</blendingMode>
151.27395 +                           <locked>false</locked>
151.27396 +                           <visible>true</visible>
151.27397 +                           <shapes/>
151.27398 +                           <effects/>
151.27399 +                        </layer>
151.27400 +                     </canvas>
151.27401 +                  </state>
151.27402 +                  <state stateKeys="Enabled+Focused">
151.27403 +                     <style>
151.27404 +                        <textForeground/>
151.27405 +                        <textBackground/>
151.27406 +                        <background>
151.27407 +                           <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.27408 +                        </background>
151.27409 +                        <inherit-background>false</inherit-background>
151.27410 +                        <uiproperties/>
151.27411 +                     </style>
151.27412 +                     <canvas>
151.27413 +                        <size width="100" height="30"/>
151.27414 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.27415 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.27416 +                        <layer name="Layer 1">
151.27417 +                           <opacity>1.0</opacity>
151.27418 +                           <fillOpacity>1.0</fillOpacity>
151.27419 +                           <blendingMode>NORMAL</blendingMode>
151.27420 +                           <locked>false</locked>
151.27421 +                           <visible>true</visible>
151.27422 +                           <shapes>
151.27423 +                              <path>
151.27424 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.27425 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.27426 +                                 <points>
151.27427 +                                   <point x="0" y="0" cp1x="0" cp1y="0" cp2x="0" cp2y="0"/>
151.27428 +                                   <point x="0" y="30" cp1x="0" cp1y="30" cp2x="0" cp2y="30"/>
151.27429 +                                   <point x="100" y="30" cp1x="100" cp1y="30" cp2x="100" cp2y="30"/>
151.27430 +                                   <point x="100" y="0" cp1x="100" cp1y="0" cp2x="100" cp2y="0"/>
151.27431 +                                   <point x="1.2" y="0" cp1x="1.2" cp1y="0" cp2x="1.2" cp2y="0"/>
151.27432 +                                   <point x="1.2" y="1.2" cp1x="1.2" cp1y="1.2" cp2x="1.2" cp2y="1.2"/>
151.27433 +                                   <point x="98.8" y="1.2" cp1x="98.8" cp1y="1.2" cp2x="98.8" cp2y="1.2"/>
151.27434 +                                   <point x="98.8" y="28.8" cp1x="98.8" cp1y="28.8" cp2x="98.8" cp2y="28.8"/>
151.27435 +                                   <point x="1.2" y="28.8" cp1x="1.2" cp1y="28.8" cp2x="1.2" cp2y="28.8"/>
151.27436 +                                   <point x="1.2" y="0" cp1x="1.2" cp1y="0" cp2x="1.2" cp2y="0"/>
151.27437 +                                </points>
151.27438 +                              </path>
151.27439 +                           </shapes>
151.27440 +                           <effects/>
151.27441 +                        </layer>
151.27442 +                     </canvas>
151.27443 +                  </state>
151.27444 +                  <state stateKeys="Enabled+Selected">
151.27445 +                     <style>
151.27446 +                        <textForeground>
151.27447 +                           <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.27448 +                        </textForeground>
151.27449 +                        <textBackground/>
151.27450 +                        <background/>
151.27451 +                        <inherit-textForeground>false</inherit-textForeground>
151.27452 +                        <uiproperties/>
151.27453 +                     </style>
151.27454 +                     <canvas>
151.27455 +                        <size width="100" height="30"/>
151.27456 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.27457 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.27458 +                        <layer name="Layer 1">
151.27459 +                           <opacity>1.0</opacity>
151.27460 +                           <fillOpacity>1.0</fillOpacity>
151.27461 +                           <blendingMode>NORMAL</blendingMode>
151.27462 +                           <locked>false</locked>
151.27463 +                           <visible>true</visible>
151.27464 +                           <shapes>
151.27465 +                              <rectangle x1="0.0" x2="100.0" y1="0.0" y2="30.0" rounding="0.0">
151.27466 +                                 <matte red="129" green="129" blue="129" alpha="255" uiDefaultParentName="nimbusSelectionBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.27467 +                                 <paintPoints x1="1.0" y1="0.0" x2="1.0" y2="1.0"/>
151.27468 +                              </rectangle>
151.27469 +                           </shapes>
151.27470 +                           <effects/>
151.27471 +                        </layer>
151.27472 +                     </canvas>
151.27473 +                  </state>
151.27474 +                  <state stateKeys="Selected+Focused">
151.27475 +                     <style>
151.27476 +                        <textForeground>
151.27477 +                           <matte red="255" green="255" blue="255" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.27478 +                        </textForeground>
151.27479 +                        <textBackground/>
151.27480 +                        <background/>
151.27481 +                        <inherit-textForeground>false</inherit-textForeground>
151.27482 +                        <uiproperties/>
151.27483 +                     </style>
151.27484 +                     <canvas>
151.27485 +                        <size width="100" height="30"/>
151.27486 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.27487 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.27488 +                        <layer name="Layer 1">
151.27489 +                           <opacity>1.0</opacity>
151.27490 +                           <fillOpacity>1.0</fillOpacity>
151.27491 +                           <blendingMode>NORMAL</blendingMode>
151.27492 +                           <locked>false</locked>
151.27493 +                           <visible>true</visible>
151.27494 +                           <shapes>
151.27495 +                              <path>
151.27496 +                                 <matte red="115" green="164" blue="209" alpha="255" uiDefaultParentName="nimbusFocus" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.27497 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.27498 +                                 <points>
151.27499 +                                   <point x="0" y="0" cp1x="0" cp1y="0" cp2x="0" cp2y="0"/>
151.27500 +                                   <point x="0" y="30" cp1x="0" cp1y="30" cp2x="0" cp2y="30"/>
151.27501 +                                   <point x="100" y="30" cp1x="100" cp1y="30" cp2x="100" cp2y="30"/>
151.27502 +                                   <point x="100" y="0" cp1x="100" cp1y="0" cp2x="100" cp2y="0"/>
151.27503 +                                   <point x="1.2" y="0" cp1x="1.2" cp1y="0" cp2x="1.2" cp2y="0"/>
151.27504 +                                   <point x="1.2" y="1.2" cp1x="1.2" cp1y="1.2" cp2x="1.2" cp2y="1.2"/>
151.27505 +                                   <point x="98.8" y="1.2" cp1x="98.8" cp1y="1.2" cp2x="98.8" cp2y="1.2"/>
151.27506 +                                   <point x="98.8" y="28.8" cp1x="98.8" cp1y="28.8" cp2x="98.8" cp2y="28.8"/>
151.27507 +                                   <point x="1.2" y="28.8" cp1x="1.2" cp1y="28.8" cp2x="1.2" cp2y="28.8"/>
151.27508 +                                   <point x="1.2" y="0" cp1x="1.2" cp1y="0" cp2x="1.2" cp2y="0"/>
151.27509 +                                </points>
151.27510 +                              </path>
151.27511 +                              <rectangle x1="0.0" x2="100.0" y1="0.0" y2="30.0" rounding="0.0">
151.27512 +                                 <matte red="57" green="105" blue="138" alpha="255" uiDefaultParentName="nimbusSelectionBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.27513 +                                 <paintPoints x1="1.0" y1="0.0" x2="1.0" y2="1.0"/>
151.27514 +                              </rectangle>
151.27515 +                           </shapes>
151.27516 +                           <effects/>
151.27517 +                        </layer>
151.27518 +                     </canvas>
151.27519 +                  </state>
151.27520 +               </backgroundStates>
151.27521 +               <foregroundStates/>
151.27522 +               <borderStates/>
151.27523 +               <regions/>
151.27524 +            </region>
151.27525 +            <uiComponent opaque="false" componentName="Tree.cellRenderer" type="javax.swing.JLabel" name="Label" ui="LabelUI" subregion="true">
151.27526 +               <stateTypes/>
151.27527 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.27528 +               <style>
151.27529 +                  <textForeground/>
151.27530 +                  <textBackground/>
151.27531 +                  <background/>
151.27532 +                  <uiproperties/>
151.27533 +               </style>
151.27534 +               <backgroundStates>
151.27535 +                  <state stateKeys="Disabled">
151.27536 +                     <style>
151.27537 +                        <textForeground>
151.27538 +                           <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.27539 +                        </textForeground>
151.27540 +                        <textBackground/>
151.27541 +                        <background/>
151.27542 +                        <inherit-textForeground>false</inherit-textForeground>
151.27543 +                        <uiproperties/>
151.27544 +                     </style>
151.27545 +                     <canvas>
151.27546 +                        <size width="100" height="30"/>
151.27547 +                        <nextLayerNameIndex>2</nextLayerNameIndex>
151.27548 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.27549 +                        <layer name="Layer 1">
151.27550 +                           <opacity>1.0</opacity>
151.27551 +                           <fillOpacity>1.0</fillOpacity>
151.27552 +                           <blendingMode>NORMAL</blendingMode>
151.27553 +                           <locked>false</locked>
151.27554 +                           <visible>true</visible>
151.27555 +                           <shapes/>
151.27556 +                           <effects/>
151.27557 +                        </layer>
151.27558 +                     </canvas>
151.27559 +                  </state>
151.27560 +               </backgroundStates>
151.27561 +               <foregroundStates/>
151.27562 +               <borderStates/>
151.27563 +               <regions/>
151.27564 +            </uiComponent>
151.27565 +            <uiIconRegion name="leafIcon" subregion="true" key="leafIcon" basicKey="Tree.leafIcon">
151.27566 +                <contentMargins top="0" bottom="0" left="0" right="0"/>
151.27567 +                <style>
151.27568 +                    <textForeground/>
151.27569 +                    <textBackground/>
151.27570 +                    <background/>
151.27571 +                    <cacheSettingsInherited>false</cacheSettingsInherited>
151.27572 +                    <uiproperties/>
151.27573 +                </style>
151.27574 +                <backgroundStates>
151.27575 +                    <state stateKeys="Enabled">
151.27576 +                        <style>
151.27577 +                            <textForeground/>
151.27578 +                            <textBackground/>
151.27579 +                            <background/>
151.27580 +                            <uiproperties/>
151.27581 +                        </style>
151.27582 +                        <canvas>
151.27583 +                            <size width="16" height="16"/>
151.27584 +                            <nextLayerNameIndex>3</nextLayerNameIndex>
151.27585 +                            <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.27586 +                            <layer name="Button">
151.27587 +                                <opacity>1.0</opacity>
151.27588 +                                <fillOpacity>1.0</fillOpacity>
151.27589 +                                <blendingMode>NORMAL</blendingMode>
151.27590 +                                <locked>false</locked>
151.27591 +                                <visible>true</visible>
151.27592 +                                <shapes>
151.27593 +                                <path>
151.27594 +                                    <matte red="255" green="255" blue="255" alpha="128" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="-127"/>
151.27595 +                                    <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.27596 +                                    <points>
151.27597 +                                        <point x="10.0" y="2.0" cp1x="10.0" cp1y="2.0" cp2x="10.0" cp2y="2.0"/>
151.27598 +                                        <point x="10.0" y="1.0" cp1x="10.0" cp1y="1.0" cp2x="10.0" cp2y="1.0"/>
151.27599 +                                        <point x="2.0" y="1.0" cp1x="2.0" cp1y="1.0" cp2x="2.0" cp2y="1.0"/>
151.27600 +                                        <point x="2.0" y="15.0" cp1x="2.0" cp1y="15.0" cp2x="2.0" cp2y="15.0"/>
151.27601 +                                        <point x="14.0" y="15.0" cp1x="14.0" cp1y="15.0" cp2x="14.0" cp2y="15.0"/>
151.27602 +                                        <point x="14.0" y="5.0" cp1x="14.0" cp1y="5.0" cp2x="14.0" cp2y="5.0"/>
151.27603 +                                        <point x="13.0" y="5.0" cp1x="13.0" cp1y="5.0" cp2x="13.0" cp2y="5.0"/>
151.27604 +                                        <point x="13.0" y="14.0" cp1x="13.0" cp1y="14.0" cp2x="13.0" cp2y="14.0"/>
151.27605 +                                        <point x="3.0" y="14.0" cp1x="3.0" cp1y="14.0" cp2x="3.0" cp2y="14.0"/>
151.27606 +                                        <point x="3.0" y="2.0" cp1x="3.0" cp1y="2.0" cp2x="3.0" cp2y="2.0"/>
151.27607 +                                    </points>
151.27608 +                                </path>
151.27609 +                                <path>
151.27610 +                                    <matte red="138" green="157" blue="176" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.4198052" brightnessOffset="0.14117646" alphaOffset="0"/>
151.27611 +                                    <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.27612 +                                    <points>
151.27613 +                                        <point x="10.0" y="1.0" cp1x="10.0" cp1y="1.0" cp2x="10.0" cp2y="1.0"/>
151.27614 +                                        <point x="8.74074074074074" y="1.0" cp1x="8.74074074074074" cp1y="1.0" cp2x="8.74074074074074" cp2y="1.0"/>
151.27615 +                                        <point x="8.777777777777777" y="6.222222222222219" cp1x="8.777777777777777" cp1y="6.222222222222219" cp2x="8.777777777777777" cp2y="6.222222222222219"/>
151.27616 +                                        <point x="14.0" y="6.2037037037037" cp1x="14.0" cp1y="6.2037037037037" cp2x="14.0" cp2y="6.2037037037037"/>
151.27617 +                                        <point x="14.0" y="5.0" cp1x="14.0" cp1y="5.0" cp2x="14.0" cp2y="5.0"/>
151.27618 +                                        <point x="10.0" y="5.0" cp1x="10.0" cp1y="5.0" cp2x="10.0" cp2y="5.0"/>
151.27619 +                                    </points>
151.27620 +                                </path>
151.27621 +                                <path>
151.27622 +                                    <gradient cycleMethod="NO_CYCLE">
151.27623 +                                        <stop position="0.0" midpoint="0.5">
151.27624 +                                            <matte red="202" green="215" blue="229" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0077680945" saturationOffset="-0.51781034" brightnessOffset="0.3490196" alphaOffset="0"/>
151.27625 +                                        </stop>
151.27626 +                                        <stop position="1.0" midpoint="0.5">
151.27627 +                                            <matte red="238" green="242" blue="247" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.013940871" saturationOffset="-0.599277" brightnessOffset="0.41960782" alphaOffset="0"/>
151.27628 +                                        </stop>
151.27629 +                                    </gradient>
151.27630 +                                    <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.27631 +                                    <points>
151.27632 +                                        <point x="10.0" y="1.0" cp1x="10.0" cp1y="1.0" cp2x="10.0" cp2y="1.0"/>
151.27633 +                                        <point x="2.0" y="1.0" cp1x="2.0" cp1y="1.0" cp2x="2.0" cp2y="1.0"/>
151.27634 +                                        <point x="2.0" y="15.0" cp1x="2.0" cp1y="15.0" cp2x="2.0" cp2y="15.0"/>
151.27635 +                                        <point x="14.0" y="15.0" cp1x="14.0" cp1y="15.0" cp2x="14.0" cp2y="15.0"/>
151.27636 +                                        <point x="14.0" y="5.0" cp1x="14.0" cp1y="5.0" cp2x="14.0" cp2y="5.0"/>
151.27637 +                                        <point x="10.0" y="5.0" cp1x="10.0" cp1y="5.0" cp2x="10.0" cp2y="5.0"/>
151.27638 +                                    </points>
151.27639 +                                </path>
151.27640 +                                <path>
151.27641 +                                    <gradient cycleMethod="NO_CYCLE">
151.27642 +                                        <stop position="0.0" midpoint="0.5">
151.27643 +                                            <matte red="236" green="245" blue="253" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.032679737" saturationOffset="-0.043332636" brightnessOffset="0.24705881" alphaOffset="0"/>
151.27644 +                                        </stop>
151.27645 +                                        <stop position="1.0" midpoint="0.5">
151.27646 +                                            <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.27647 +                                        </stop>
151.27648 +                                    </gradient>
151.27649 +                                    <paintPoints x1="0.04629629629629636" y1="0.9675925925925929" x2="0.48611111111111094" y2="0.5324074074074074"/>
151.27650 +                                    <points>
151.27651 +                                        <point x="10.0" y="1.0" cp1x="10.0" cp1y="1.0" cp2x="10.0" cp2y="1.0"/>
151.27652 +                                        <point x="10.0" y="5.0" cp1x="10.0" cp1y="5.0" cp2x="10.0" cp2y="5.0"/>
151.27653 +                                        <point x="14.0" y="5.0" cp1x="14.0" cp1y="5.0" cp2x="14.0" cp2y="5.0"/>
151.27654 +                                    </points>
151.27655 +                                </path>
151.27656 +                                <rectangle x1="2.0" x2="14.0" y1="15.0" y2="16.0" rounding="0.0">
151.27657 +                                    <matte red="97" green="98" blue="102" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.27658 +                                    <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.27659 +                                </rectangle>
151.27660 +                                <path>
151.27661 +                                    <matte red="149" green="151" blue="156" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.007936537" saturationOffset="-0.065654516" brightnessOffset="-0.13333333" alphaOffset="0"/>
151.27662 +                                    <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.27663 +                                    <points>
151.27664 +                                        <point x="1.0" y="0.0" cp1x="1.0" cp1y="0.0" cp2x="1.0" cp2y="0.0"/>
151.27665 +                                        <point x="1.0" y="16.0" cp1x="1.0" cp1y="16.0" cp2x="1.0" cp2y="16.0"/>
151.27666 +                                        <point x="2.0" y="16.0" cp1x="2.0" cp1y="16.0" cp2x="2.0" cp2y="16.0"/>
151.27667 +                                        <point x="2.0" y="1.0" cp1x="2.0" cp1y="1.0" cp2x="2.0" cp2y="1.0"/>
151.27668 +                                        <point x="10.518518518518523" y="0.9999999999999999" cp1x="10.518518518518523" cp1y="0.9999999999999999" cp2x="10.518518518518523" cp2y="0.9999999999999999"/>
151.27669 +                                        <point x="14.000000000000002" y="4.5" cp1x="14.000000000000002" cp1y="4.5" cp2x="14.000000000000002" cp2y="4.5"/>
151.27670 +                                        <point x="14.0" y="16.0" cp1x="14.0" cp1y="16.0" cp2x="14.0" cp2y="16.0"/>
151.27671 +                                        <point x="15.0" y="16.0" cp1x="15.0" cp1y="16.0" cp2x="15.0" cp2y="16.0"/>
151.27672 +                                        <point x="15.0" y="4.444444444444441" cp1x="15.0" cp1y="4.444444444444441" cp2x="15.0" cp2y="4.444444444444441"/>
151.27673 +                                        <point x="10.722222222222225" y="0.0" cp1x="10.722222222222225" cp1y="0.0" cp2x="10.722222222222225" cp2y="0.0"/>
151.27674 +                                    </points>
151.27675 +                                </path>
151.27676 +                                </shapes>
151.27677 +                                <effects/>
151.27678 +                            </layer>
151.27679 +                            <templateLayer fileName="113fe634ff9.png">
151.27680 +                                <layer name="Template" type="template">
151.27681 +                                <opacity>1.0</opacity>
151.27682 +                                <fillOpacity>1.0</fillOpacity>
151.27683 +                                <blendingMode>NORMAL</blendingMode>
151.27684 +                                <locked>false</locked>
151.27685 +                                <visible>false</visible>
151.27686 +                                <shapes/>
151.27687 +                                <effects/>
151.27688 +                                </layer>
151.27689 +                            </templateLayer>
151.27690 +                        </canvas>
151.27691 +                    </state>
151.27692 +                </backgroundStates>
151.27693 +                <foregroundStates/>
151.27694 +                <borderStates/>
151.27695 +                <regions/>
151.27696 +            </uiIconRegion>
151.27697 +            <uiIconRegion name="closedIcon" subregion="true" key="closedIcon" basicKey="Tree.closedIcon">
151.27698 +                <contentMargins top="0" bottom="0" left="0" right="0"/>
151.27699 +                <style>
151.27700 +                    <textForeground/>
151.27701 +                    <textBackground/>
151.27702 +                    <background/>
151.27703 +                    <cacheSettingsInherited>false</cacheSettingsInherited>
151.27704 +                    <uiproperties/>
151.27705 +                </style>
151.27706 +                <backgroundStates>
151.27707 +                    <state stateKeys="Enabled">
151.27708 +                        <style>
151.27709 +                            <textForeground/>
151.27710 +                            <textBackground/>
151.27711 +                            <background/>
151.27712 +                            <uiproperties/>
151.27713 +                        </style>
151.27714 +                        <canvas>
151.27715 +                            <size width="16" height="16"/>
151.27716 +                            <nextLayerNameIndex>4</nextLayerNameIndex>
151.27717 +                            <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.27718 +                            <layer name="Button">
151.27719 +                                <opacity>1.0</opacity>
151.27720 +                                <fillOpacity>1.0</fillOpacity>
151.27721 +                                <blendingMode>NORMAL</blendingMode>
151.27722 +                                <locked>false</locked>
151.27723 +                                <visible>true</visible>
151.27724 +                                <shapes>
151.27725 +                                <path>
151.27726 +                                    <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.27727 +                                    <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.27728 +                                    <points>
151.27729 +                                        <point x="12.0" y="12.0" cp1x="12.0" cp1y="12.0" cp2x="12.0" cp2y="12.0"/>
151.27730 +                                    </points>
151.27731 +                                </path>
151.27732 +                                <path>
151.27733 +                                    <gradient cycleMethod="NO_CYCLE">
151.27734 +                                        <stop position="0.0" midpoint="0.5">
151.27735 +                                            <matte red="100" green="122" blue="143" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0027436614" saturationOffset="-0.335015" brightnessOffset="0.011764705" alphaOffset="0"/>
151.27736 +                                        </stop>
151.27737 +                                        <stop position="0.25449103" midpoint="0.5">
151.27738 +                                            <matte red="111" green="130" blue="148" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0024294257" saturationOffset="-0.3857143" brightnessOffset="0.031372547" alphaOffset="0"/>
151.27739 +                                        </stop>
151.27740 +                                        <stop position="1.0" midpoint="0.5">
151.27741 +                                            <matte red="76" green="91" blue="105" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0018081069" saturationOffset="-0.3595238" brightnessOffset="-0.13725492" alphaOffset="0"/>
151.27742 +                                        </stop>
151.27743 +                                    </gradient>
151.27744 +                                    <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.27745 +                                    <points>
151.27746 +                                        <point x="13.0" y="5.0" cp1x="13.0" cp1y="5.0" cp2x="13.0" cp2y="5.0"/>
151.27747 +                                        <point x="13.0" y="4.0" cp1x="13.0" cp1y="4.0" cp2x="13.0" cp2y="4.0"/>
151.27748 +                                        <point x="3.7407407407407405" y="3.9999999999999996" cp1x="3.7407407407407405" cp1y="3.9999999999999996" cp2x="3.7407407407407405" cp2y="3.9999999999999996"/>
151.27749 +                                        <point x="2.0185185185185137" y="10.05555555555555" cp1x="2.0185185185185137" cp1y="10.05555555555555" cp2x="2.0185185185185137" cp2y="10.05555555555555"/>
151.27750 +                                        <point x="2.0" y="14.0" cp1x="2.0" cp1y="14.0" cp2x="2.0" cp2y="14.0"/>
151.27751 +                                        <point x="3.0" y="14.0" cp1x="3.0" cp1y="14.0" cp2x="3.0" cp2y="14.0"/>
151.27752 +                                        <point x="2.9629629629629632" y="12.129629629629632" cp1x="2.9629629629629632" cp1y="12.129629629629632" cp2x="2.9629629629629632" cp2y="12.129629629629632"/>
151.27753 +                                        <point x="4.579999999999991" y="4.98" cp1x="4.579999999999991" cp1y="4.98" cp2x="4.579999999999991" cp2y="4.98"/>
151.27754 +                                    </points>
151.27755 +                                </path>
151.27756 +                                <path>
151.27757 +                                    <gradient cycleMethod="NO_CYCLE">
151.27758 +                                        <stop position="0.0" midpoint="0.5">
151.27759 +                                            <matte red="72" green="97" blue="120" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0012094378" saturationOffset="-0.23571429" brightnessOffset="-0.0784314" alphaOffset="0"/>
151.27760 +                                        </stop>
151.27761 +                                        <stop position="1.0" midpoint="0.5">
151.27762 +                                            <matte red="35" green="55" blue="73" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="-0.115166366" brightnessOffset="-0.2627451" alphaOffset="0"/>
151.27763 +                                        </stop>
151.27764 +                                    </gradient>
151.27765 +                                    <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.27766 +                                    <points>
151.27767 +                                        <point x="16.0" y="4.0" cp1x="16.0" cp1y="4.0" cp2x="16.0" cp2y="4.0"/>
151.27768 +                                        <point x="16.0" y="5.0" cp1x="16.0" cp1y="5.0" cp2x="16.0" cp2y="5.0"/>
151.27769 +                                        <point x="13.0" y="5.0" cp1x="13.0" cp1y="5.0" cp2x="13.0" cp2y="5.0"/>
151.27770 +                                        <point x="13.0" y="3.0" cp1x="13.0" cp1y="3.0" cp2x="13.0" cp2y="3.0"/>
151.27771 +                                        <point x="8.0" y="3.0" cp1x="8.0" cp1y="3.0" cp2x="8.0" cp2y="3.0"/>
151.27772 +                                        <point x="7.0" y="2.0" cp1x="7.0" cp1y="2.0" cp2x="7.0" cp2y="2.0"/>
151.27773 +                                        <point x="7.0" y="1.0" cp1x="7.0" cp1y="1.0" cp2x="7.0" cp2y="1.0"/>
151.27774 +                                        <point x="2.9444444444444438" y="1.0185185185185186" cp1x="2.9444444444444438" cp1y="1.0185185185185186" cp2x="2.9444444444444438" cp2y="1.0185185185185186"/>
151.27775 +                                        <point x="2.9814814814814814" y="1.7407407407407403" cp1x="2.9814814814814814" cp1y="1.7407407407407403" cp2x="2.9814814814814814" cp2y="1.7407407407407403"/>
151.27776 +                                        <point x="1.7407407407407407" y="3.0" cp1x="1.7407407407407407" cp1y="3.0" cp2x="1.7407407407407407" cp2y="3.0"/>
151.27777 +                                        <point x="1.0" y="3.0" cp1x="1.0" cp1y="3.0" cp2x="1.0" cp2y="3.0"/>
151.27778 +                                        <point x="1.0" y="14.0" cp1x="1.0" cp1y="14.0" cp2x="1.0" cp2y="14.0"/>
151.27779 +                                        <point x="14.0" y="14.0" cp1x="14.0" cp1y="14.0" cp2x="14.0" cp2y="14.0"/>
151.27780 +                                        <point x="14.0" y="7.0" cp1x="14.0" cp1y="7.0" cp2x="14.0" cp2y="7.0"/>
151.27781 +                                        <point x="14.87037037037037" y="5.962962962962965" cp1x="14.87037037037037" cp1y="5.962962962962965" cp2x="14.87037037037037" cp2y="5.962962962962965"/>
151.27782 +                                        <point x="15.0" y="5.0" cp1x="15.0" cp1y="5.0" cp2x="15.0" cp2y="5.0"/>
151.27783 +                                        <point x="16.0" y="5.0" cp1x="16.0" cp1y="5.0" cp2x="16.0" cp2y="5.0"/>
151.27784 +                                        <point x="15.462962962962967" y="6.129629629629629" cp1x="15.462962962962967" cp1y="6.129629629629629" cp2x="15.462962962962967" cp2y="6.129629629629629"/>
151.27785 +                                        <point x="15.0" y="7.0" cp1x="15.0" cp1y="7.0" cp2x="15.0" cp2y="7.0"/>
151.27786 +                                        <point x="15.0" y="14.0" cp1x="15.0" cp1y="14.0" cp2x="15.0" cp2y="14.0"/>
151.27787 +                                        <point x="14.0" y="15.0" cp1x="14.0" cp1y="15.0" cp2x="14.0" cp2y="15.0"/>
151.27788 +                                        <point x="1.0" y="15.0" cp1x="1.0" cp1y="15.0" cp2x="1.0" cp2y="15.0"/>
151.27789 +                                        <point x="0.0" y="14.0" cp1x="0.0" cp1y="14.0" cp2x="0.0" cp2y="14.0"/>
151.27790 +                                        <point x="0.0" y="3.25925925925926" cp1x="0.0" cp1y="3.25925925925926" cp2x="0.0" cp2y="3.25925925925926"/>
151.27791 +                                        <point x="3.1851851851851856" y="0.0" cp1x="3.1851851851851856" cp1y="0.0" cp2x="3.1851851851851856" cp2y="0.0"/>
151.27792 +                                        <point x="7.0" y="0.0" cp1x="7.0" cp1y="0.0" cp2x="7.0" cp2y="0.0"/>
151.27793 +                                        <point x="8.55555555555555" y="2.0000000000000004" cp1x="8.55555555555555" cp1y="2.0000000000000004" cp2x="8.55555555555555" cp2y="2.0000000000000004"/>
151.27794 +                                        <point x="13.0" y="2.0" cp1x="13.0" cp1y="2.0" cp2x="13.0" cp2y="2.0"/>
151.27795 +                                        <point x="14.0" y="3.0" cp1x="14.0" cp1y="3.0" cp2x="14.0" cp2y="3.0"/>
151.27796 +                                        <point x="14.0" y="4.0" cp1x="14.0" cp1y="4.0" cp2x="14.0" cp2y="4.0"/>
151.27797 +                                    </points>
151.27798 +                                </path>
151.27799 +                                </shapes>
151.27800 +                                <effects/>
151.27801 +                            </layer>
151.27802 +                            <layer name="Layer 3">
151.27803 +                                <opacity>1.0</opacity>
151.27804 +                                <fillOpacity>1.0</fillOpacity>
151.27805 +                                <blendingMode>NORMAL</blendingMode>
151.27806 +                                <locked>false</locked>
151.27807 +                                <visible>true</visible>
151.27808 +                                <shapes>
151.27809 +                                <rectangle x1="8.0" x2="13.0" y1="3.0" y2="4.0" rounding="0.0">
151.27810 +                                    <matte red="255" green="255" blue="255" alpha="155" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="-100"/>
151.27811 +                                    <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.27812 +                                </rectangle>
151.27813 +                                <rectangle x1="3.0" x2="7.0" y1="1.0" y2="2.0" rounding="0.0">
151.27814 +                                    <matte red="255" green="255" blue="255" alpha="205" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="-50"/>
151.27815 +                                    <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.27816 +                                </rectangle>
151.27817 +                                <rectangle x1="1.0" x2="2.0" y1="3.0" y2="4.0" rounding="0.0">
151.27818 +                                    <matte red="255" green="255" blue="255" alpha="130" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="-125"/>
151.27819 +                                    <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.27820 +                                </rectangle>
151.27821 +                                <path>
151.27822 +                                    <gradient cycleMethod="NO_CYCLE">
151.27823 +                                        <stop position="0.0" midpoint="0.5">
151.27824 +                                            <matte red="202" green="215" blue="229" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0077680945" saturationOffset="-0.51781034" brightnessOffset="0.3490196" alphaOffset="0"/>
151.27825 +                                        </stop>
151.27826 +                                        <stop position="1.0" midpoint="0.5">
151.27827 +                                            <matte red="248" green="250" blue="252" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6198413" brightnessOffset="0.43921566" alphaOffset="0"/>
151.27828 +                                        </stop>
151.27829 +                                    </gradient>
151.27830 +                                    <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.27831 +                                    <points>
151.27832 +                                        <point x="1.0" y="14.0" cp1x="1.0" cp1y="14.0" cp2x="1.0" cp2y="14.0"/>
151.27833 +                                        <point x="2.0" y="14.0" cp1x="2.0" cp1y="14.0" cp2x="2.0" cp2y="14.0"/>
151.27834 +                                        <point x="2.041666666666667" y="10.187499999999998" cp1x="2.041666666666667" cp1y="10.187499999999998" cp2x="2.041666666666667" cp2y="10.187499999999998"/>
151.27835 +                                        <point x="3.979166666666668" y="4.0" cp1x="3.979166666666668" cp1y="4.0" cp2x="3.979166666666668" cp2y="4.0"/>
151.27836 +                                        <point x="13.0" y="4.0" cp1x="13.0" cp1y="4.0" cp2x="13.0" cp2y="4.0"/>
151.27837 +                                        <point x="13.0" y="3.0" cp1x="13.0" cp1y="3.0" cp2x="13.0" cp2y="3.0"/>
151.27838 +                                        <point x="8.0" y="3.0" cp1x="8.0" cp1y="3.0" cp2x="8.0" cp2y="3.0"/>
151.27839 +                                        <point x="7.0" y="2.0" cp1x="7.0" cp1y="2.0" cp2x="7.0" cp2y="2.0"/>
151.27840 +                                        <point x="7.0" y="1.0" cp1x="7.0" cp1y="1.0" cp2x="7.0" cp2y="1.0"/>
151.27841 +                                        <point x="3.0" y="1.0" cp1x="3.0" cp1y="1.0" cp2x="3.0" cp2y="1.0"/>
151.27842 +                                        <point x="3.0" y="2.0" cp1x="3.0" cp1y="2.0" cp2x="3.0" cp2y="2.0"/>
151.27843 +                                        <point x="2.0" y="3.0" cp1x="2.0" cp1y="3.0" cp2x="2.0" cp2y="3.0"/>
151.27844 +                                        <point x="1.0" y="3.0" cp1x="1.0" cp1y="3.0" cp2x="1.0" cp2y="3.0"/>
151.27845 +                                    </points>
151.27846 +                                </path>
151.27847 +                                <path>
151.27848 +                                    <gradient cycleMethod="NO_CYCLE">
151.27849 +                                        <stop position="0.04191617" midpoint="0.5">
151.27850 +                                            <matte red="178" green="198" blue="216" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="-0.45978838" brightnessOffset="0.2980392" alphaOffset="0"/>
151.27851 +                                        </stop>
151.27852 +                                        <stop position="0.16467066" midpoint="0.5">
151.27853 +                                            <matte red="134" green="162" blue="188" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0015952587" saturationOffset="-0.34848025" brightnessOffset="0.18823528" alphaOffset="0"/>
151.27854 +                                        </stop>
151.27855 +                                        <stop position="0.3263473" midpoint="0.5">
151.27856 +                                            <matte red="111" green="139" blue="165" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0015952587" saturationOffset="-0.30844158" brightnessOffset="0.09803921" alphaOffset="0"/>
151.27857 +                                        </stop>
151.27858 +                                        <stop position="1.0" midpoint="0.5">
151.27859 +                                            <matte red="95" green="123" blue="149" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0015952587" saturationOffset="-0.27329817" brightnessOffset="0.035294116" alphaOffset="0"/>
151.27860 +                                        </stop>
151.27861 +                                    </gradient>
151.27862 +                                    <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.27863 +                                    <points>
151.27864 +                                        <point x="3.0" y="14.0" cp1x="3.0" cp1y="14.0" cp2x="3.0" cp2y="14.0"/>
151.27865 +                                        <point x="3.0185185185185186" y="10.055555555555559" cp1x="3.0185185185185186" cp1y="10.055555555555559" cp2x="3.0185185185185186" cp2y="10.055555555555559"/>
151.27866 +                                        <point x="4.0" y="5.0" cp1x="4.0" cp1y="5.0" cp2x="4.0" cp2y="5.0"/>
151.27867 +                                        <point x="15.0" y="5.0" cp1x="15.0" cp1y="5.0" cp2x="15.0" cp2y="5.0"/>
151.27868 +                                        <point x="15.0" y="7.0" cp1x="15.0" cp1y="7.0" cp2x="15.0" cp2y="7.0"/>
151.27869 +                                        <point x="14.0" y="14.0" cp1x="14.0" cp1y="14.0" cp2x="14.0" cp2y="14.0"/>
151.27870 +                                    </points>
151.27871 +                                </path>
151.27872 +                                <path>
151.27873 +                                    <matte red="121" green="126" blue="136" alpha="156" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="-0.21" alphaOffset="-99"/>
151.27874 +                                    <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.27875 +                                    <points>
151.27876 +                                        <point x="0.0" y="13.0" cp1x="0.0" cp1y="13.0" cp2x="0.0" cp2y="13.0"/>
151.27877 +                                        <point x="0.0" y="14.0" cp1x="0.0" cp1y="14.0" cp2x="0.0" cp2y="14.0"/>
151.27878 +                                        <point x="1.0" y="16.0" cp1x="1.0" cp1y="16.0" cp2x="1.0" cp2y="16.0"/>
151.27879 +                                        <point x="14.0" y="16.0" cp1x="14.0" cp1y="16.0" cp2x="14.0" cp2y="16.0"/>
151.27880 +                                        <point x="15.0" y="14.0" cp1x="15.0" cp1y="14.0" cp2x="15.0" cp2y="14.0"/>
151.27881 +                                        <point x="15.0" y="13.0" cp1x="15.0" cp1y="13.0" cp2x="15.0" cp2y="13.0"/>
151.27882 +                                    </points>
151.27883 +                                </path>
151.27884 +                                </shapes>
151.27885 +                                <effects/>
151.27886 +                            </layer>
151.27887 +                            <templateLayer fileName="113fe6c9b39.png">
151.27888 +                                <layer name="Template" type="template">
151.27889 +                                <opacity>1.0</opacity>
151.27890 +                                <fillOpacity>1.0</fillOpacity>
151.27891 +                                <blendingMode>NORMAL</blendingMode>
151.27892 +                                <locked>false</locked>
151.27893 +                                <visible>false</visible>
151.27894 +                                <shapes/>
151.27895 +                                <effects/>
151.27896 +                                </layer>
151.27897 +                            </templateLayer>
151.27898 +                        </canvas>
151.27899 +                    </state>
151.27900 +                </backgroundStates>
151.27901 +                <foregroundStates/>
151.27902 +                <borderStates/>
151.27903 +                <regions/>
151.27904 +            </uiIconRegion>
151.27905 +                <uiIconRegion name="openIcon" subregion="true" key="openIcon" basicKey="Tree.openIcon">
151.27906 +                    <contentMargins top="0" bottom="0" left="0" right="0"/>
151.27907 +                    <style>
151.27908 +                        <textForeground/>
151.27909 +                        <textBackground/>
151.27910 +                        <background/>
151.27911 +                        <cacheSettingsInherited>false</cacheSettingsInherited>
151.27912 +                        <uiproperties/>
151.27913 +                    </style>
151.27914 +                    <backgroundStates>
151.27915 +                        <state stateKeys="Enabled">
151.27916 +                           <style>
151.27917 +                              <textForeground/>
151.27918 +                              <textBackground/>
151.27919 +                              <background/>
151.27920 +                              <uiproperties/>
151.27921 +                           </style>
151.27922 +                           <canvas>
151.27923 +                              <size width="16" height="16"/>
151.27924 +                              <nextLayerNameIndex>4</nextLayerNameIndex>
151.27925 +                              <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.27926 +                              <layer name="Button">
151.27927 +                                 <opacity>1.0</opacity>
151.27928 +                                 <fillOpacity>1.0</fillOpacity>
151.27929 +                                 <blendingMode>NORMAL</blendingMode>
151.27930 +                                 <locked>false</locked>
151.27931 +                                 <visible>true</visible>
151.27932 +                                 <shapes>
151.27933 +                                    <path>
151.27934 +                                       <matte red="255" green="200" blue="0" alpha="255" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.27935 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.27936 +                                       <points>
151.27937 +                                          <point x="12.0" y="12.0" cp1x="12.0" cp1y="12.0" cp2x="12.0" cp2y="12.0"/>
151.27938 +                                       </points>
151.27939 +                                    </path>
151.27940 +                                    <path>
151.27941 +                                       <gradient cycleMethod="NO_CYCLE">
151.27942 +                                          <stop position="0.0" midpoint="0.5">
151.27943 +                                             <matte red="93" green="113" blue="133" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.33496243" brightnessOffset="-0.027450979" alphaOffset="0"/>
151.27944 +                                          </stop>
151.27945 +                                          <stop position="1.0" midpoint="0.5">
151.27946 +                                             <matte red="82" green="98" blue="113" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0019934773" saturationOffset="-0.361378" brightnessOffset="-0.10588238" alphaOffset="0"/>
151.27947 +                                          </stop>
151.27948 +                                       </gradient>
151.27949 +                                       <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.27950 +                                       <points>
151.27951 +                                          <point x="13.0" y="7.0" cp1x="13.0" cp1y="7.0" cp2x="13.0" cp2y="7.0"/>
151.27952 +                                          <point x="13.0" y="6.0" cp1x="13.0" cp1y="6.0" cp2x="13.0" cp2y="6.0"/>
151.27953 +                                          <point x="3.6999999999999997" y="6.0" cp1x="3.6999999999999997" cp1y="6.0" cp2x="3.6999999999999997" cp2y="6.0"/>
151.27954 +                                          <point x="2.0" y="11.0" cp1x="2.0" cp1y="11.0" cp2x="2.0" cp2y="11.0"/>
151.27955 +                                          <point x="2.0" y="14.0" cp1x="2.0" cp1y="14.0" cp2x="2.0" cp2y="14.0"/>
151.27956 +                                          <point x="3.0" y="14.0" cp1x="3.0" cp1y="14.0" cp2x="3.0" cp2y="14.0"/>
151.27957 +                                          <point x="2.9629629629629632" y="12.129629629629632" cp1x="2.9629629629629632" cp1y="12.129629629629632" cp2x="2.9629629629629632" cp2y="12.129629629629632"/>
151.27958 +                                          <point x="4.0" y="7.0" cp1x="4.0" cp1y="7.0" cp2x="4.0" cp2y="7.0"/>
151.27959 +                                       </points>
151.27960 +                                    </path>
151.27961 +                                    <path>
151.27962 +                                       <gradient cycleMethod="NO_CYCLE">
151.27963 +                                          <stop position="0.0" midpoint="0.5">
151.27964 +                                             <matte red="72" green="97" blue="120" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0012094378" saturationOffset="-0.23571429" brightnessOffset="-0.0784314" alphaOffset="0"/>
151.27965 +                                          </stop>
151.27966 +                                          <stop position="1.0" midpoint="0.5">
151.27967 +                                             <matte red="35" green="55" blue="73" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="-0.115166366" brightnessOffset="-0.2627451" alphaOffset="0"/>
151.27968 +                                          </stop>
151.27969 +                                       </gradient>
151.27970 +                                       <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.27971 +                                       <points>
151.27972 +                                          <point x="16.0" y="6.0" cp1x="16.0" cp1y="6.0" cp2x="16.0" cp2y="6.0"/>
151.27973 +                                          <point x="16.0" y="7.0" cp1x="16.0" cp1y="7.0" cp2x="16.0" cp2y="7.0"/>
151.27974 +                                          <point x="13.0" y="7.0" cp1x="13.0" cp1y="7.0" cp2x="13.0" cp2y="7.0"/>
151.27975 +                                          <point x="13.0" y="3.0" cp1x="13.0" cp1y="3.0" cp2x="13.0" cp2y="3.0"/>
151.27976 +                                          <point x="8.0" y="3.0" cp1x="8.0" cp1y="3.0" cp2x="8.0" cp2y="3.0"/>
151.27977 +                                          <point x="7.0" y="2.0" cp1x="7.0" cp1y="2.0" cp2x="7.0" cp2y="2.0"/>
151.27978 +                                          <point x="7.0" y="1.0" cp1x="7.0" cp1y="1.0" cp2x="7.0" cp2y="1.0"/>
151.27979 +                                          <point x="2.9444444444444438" y="1.0185185185185186" cp1x="2.9444444444444438" cp1y="1.0185185185185186" cp2x="2.9444444444444438" cp2y="1.0185185185185186"/>
151.27980 +                                          <point x="2.9814814814814814" y="1.7407407407407403" cp1x="2.9814814814814814" cp1y="1.7407407407407403" cp2x="2.9814814814814814" cp2y="1.7407407407407403"/>
151.27981 +                                          <point x="1.7407407407407407" y="3.0" cp1x="1.7407407407407407" cp1y="3.0" cp2x="1.7407407407407407" cp2y="3.0"/>
151.27982 +                                          <point x="1.0" y="3.0" cp1x="1.0" cp1y="3.0" cp2x="1.0" cp2y="3.0"/>
151.27983 +                                          <point x="1.0" y="14.0" cp1x="1.0" cp1y="14.0" cp2x="1.0" cp2y="14.0"/>
151.27984 +                                          <point x="14.0" y="14.0" cp1x="14.0" cp1y="14.0" cp2x="14.0" cp2y="14.0"/>
151.27985 +                                          <point x="14.0" y="11.0" cp1x="14.0" cp1y="11.0" cp2x="14.0" cp2y="11.0"/>
151.27986 +                                          <point x="14.0" y="10.0" cp1x="14.0" cp1y="10.0" cp2x="14.0" cp2y="10.0"/>
151.27987 +                                          <point x="15.579999999999997" y="7.120000000000004" cp1x="15.579999999999997" cp1y="7.120000000000004" cp2x="15.579999999999997" cp2y="7.120000000000004"/>
151.27988 +                                          <point x="15.900000000000007" y="7.260000000000004" cp1x="15.900000000000007" cp1y="7.260000000000004" cp2x="15.900000000000007" cp2y="7.260000000000004"/>
151.27989 +                                          <point x="15.0" y="10.0" cp1x="15.0" cp1y="10.0" cp2x="15.0" cp2y="10.0"/>
151.27990 +                                          <point x="15.0" y="11.0" cp1x="15.0" cp1y="11.0" cp2x="15.0" cp2y="11.0"/>
151.27991 +                                          <point x="15.0" y="14.0" cp1x="15.0" cp1y="14.0" cp2x="15.0" cp2y="14.0"/>
151.27992 +                                          <point x="14.0" y="15.0" cp1x="14.0" cp1y="15.0" cp2x="14.0" cp2y="15.0"/>
151.27993 +                                          <point x="1.0" y="15.0" cp1x="1.0" cp1y="15.0" cp2x="1.0" cp2y="15.0"/>
151.27994 +                                          <point x="0.0" y="14.0" cp1x="0.0" cp1y="14.0" cp2x="0.0" cp2y="14.0"/>
151.27995 +                                          <point x="0.0" y="3.25925925925926" cp1x="0.0" cp1y="3.25925925925926" cp2x="0.0" cp2y="3.25925925925926"/>
151.27996 +                                          <point x="3.1851851851851856" y="0.0" cp1x="3.1851851851851856" cp1y="0.0" cp2x="3.1851851851851856" cp2y="0.0"/>
151.27997 +                                          <point x="7.0" y="0.0" cp1x="7.0" cp1y="0.0" cp2x="7.0" cp2y="0.0"/>
151.27998 +                                          <point x="8.55555555555555" y="2.0000000000000004" cp1x="8.55555555555555" cp1y="2.0000000000000004" cp2x="8.55555555555555" cp2y="2.0000000000000004"/>
151.27999 +                                          <point x="13.0" y="2.0" cp1x="13.0" cp1y="2.0" cp2x="13.0" cp2y="2.0"/>
151.28000 +                                          <point x="14.0" y="3.0" cp1x="14.0" cp1y="3.0" cp2x="14.0" cp2y="3.0"/>
151.28001 +                                          <point x="14.0" y="6.0" cp1x="14.0" cp1y="6.0" cp2x="14.0" cp2y="6.0"/>
151.28002 +                                       </points>
151.28003 +                                    </path>
151.28004 +                                 </shapes>
151.28005 +                                 <effects/>
151.28006 +                              </layer>
151.28007 +                              <layer name="Layer 3">
151.28008 +                                 <opacity>1.0</opacity>
151.28009 +                                 <fillOpacity>1.0</fillOpacity>
151.28010 +                                 <blendingMode>NORMAL</blendingMode>
151.28011 +                                 <locked>false</locked>
151.28012 +                                 <visible>true</visible>
151.28013 +                                 <shapes>
151.28014 +                                    <rectangle x1="8.0" x2="13.0" y1="3.0" y2="4.0" rounding="0.0">
151.28015 +                                       <matte red="255" green="255" blue="255" alpha="155" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="-100"/>
151.28016 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.28017 +                                    </rectangle>
151.28018 +                                    <rectangle x1="3.0" x2="7.0" y1="1.0" y2="2.0" rounding="0.0">
151.28019 +                                       <matte red="255" green="255" blue="255" alpha="205" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="-50"/>
151.28020 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.28021 +                                    </rectangle>
151.28022 +                                    <rectangle x1="1.0" x2="2.0" y1="3.0" y2="4.0" rounding="0.0">
151.28023 +                                       <matte red="255" green="255" blue="255" alpha="130" uiDefaultParentName="nimbusBase" hueOffset="0.0" saturationOffset="-0.6357143" brightnessOffset="0.45098037" alphaOffset="-125"/>
151.28024 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.28025 +                                    </rectangle>
151.28026 +                                    <path>
151.28027 +                                       <gradient cycleMethod="NO_CYCLE">
151.28028 +                                          <stop position="0.0" midpoint="0.5">
151.28029 +                                             <matte red="202" green="215" blue="229" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0077680945" saturationOffset="-0.51781034" brightnessOffset="0.3490196" alphaOffset="0"/>
151.28030 +                                          </stop>
151.28031 +                                          <stop position="1.0" midpoint="0.5">
151.28032 +                                             <matte red="248" green="250" blue="252" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.004681647" saturationOffset="-0.6198413" brightnessOffset="0.43921566" alphaOffset="0"/>
151.28033 +                                          </stop>
151.28034 +                                       </gradient>
151.28035 +                                       <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.28036 +                                       <points>
151.28037 +                                          <point x="1.0" y="14.0" cp1x="1.0" cp1y="14.0" cp2x="1.0" cp2y="14.0"/>
151.28038 +                                          <point x="2.0" y="14.0" cp1x="2.0" cp1y="14.0" cp2x="2.0" cp2y="14.0"/>
151.28039 +                                          <point x="2.0" y="11.0" cp1x="2.0" cp1y="11.0" cp2x="2.0" cp2y="11.0"/>
151.28040 +                                          <point x="4.0" y="6.0" cp1x="4.0" cp1y="6.0" cp2x="4.0" cp2y="6.0"/>
151.28041 +                                          <point x="13.0" y="6.0" cp1x="13.0" cp1y="6.0" cp2x="13.0" cp2y="6.0"/>
151.28042 +                                          <point x="13.0" y="3.0" cp1x="13.0" cp1y="3.0" cp2x="13.0" cp2y="3.0"/>
151.28043 +                                          <point x="8.0" y="3.0" cp1x="8.0" cp1y="3.0" cp2x="8.0" cp2y="3.0"/>
151.28044 +                                          <point x="7.0" y="2.0" cp1x="7.0" cp1y="2.0" cp2x="7.0" cp2y="2.0"/>
151.28045 +                                          <point x="7.0" y="1.0" cp1x="7.0" cp1y="1.0" cp2x="7.0" cp2y="1.0"/>
151.28046 +                                          <point x="3.0" y="1.0" cp1x="3.0" cp1y="1.0" cp2x="3.0" cp2y="1.0"/>
151.28047 +                                          <point x="3.0" y="2.0" cp1x="3.0" cp1y="2.0" cp2x="3.0" cp2y="2.0"/>
151.28048 +                                          <point x="2.0" y="3.0" cp1x="2.0" cp1y="3.0" cp2x="2.0" cp2y="3.0"/>
151.28049 +                                          <point x="1.0" y="3.0" cp1x="1.0" cp1y="3.0" cp2x="1.0" cp2y="3.0"/>
151.28050 +                                       </points>
151.28051 +                                    </path>
151.28052 +                                    <path>
151.28053 +                                       <gradient cycleMethod="NO_CYCLE">
151.28054 +                                          <stop position="0.04191617" midpoint="0.5">
151.28055 +                                             <matte red="178" green="198" blue="216" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="2.9569864E-4" saturationOffset="-0.45978838" brightnessOffset="0.2980392" alphaOffset="0"/>
151.28056 +                                          </stop>
151.28057 +                                          <stop position="0.16467066" midpoint="0.5">
151.28058 +                                             <matte red="134" green="162" blue="188" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0015952587" saturationOffset="-0.34848025" brightnessOffset="0.18823528" alphaOffset="0"/>
151.28059 +                                          </stop>
151.28060 +                                          <stop position="0.3263473" midpoint="0.5">
151.28061 +                                             <matte red="111" green="139" blue="165" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0015952587" saturationOffset="-0.30844158" brightnessOffset="0.09803921" alphaOffset="0"/>
151.28062 +                                          </stop>
151.28063 +                                          <stop position="1.0" midpoint="0.5">
151.28064 +                                             <matte red="95" green="123" blue="149" alpha="255" uiDefaultParentName="nimbusBase" hueOffset="0.0015952587" saturationOffset="-0.27329817" brightnessOffset="0.035294116" alphaOffset="0"/>
151.28065 +                                          </stop>
151.28066 +                                       </gradient>
151.28067 +                                       <paintPoints x1="0.5" y1="0.0" x2="0.5" y2="1.0"/>
151.28068 +                                       <points>
151.28069 +                                          <point x="3.0" y="14.0" cp1x="3.0" cp1y="14.0" cp2x="3.0" cp2y="14.0"/>
151.28070 +                                          <point x="3.0" y="12.0" cp1x="3.0" cp1y="12.0" cp2x="3.0" cp2y="12.0"/>
151.28071 +                                          <point x="4.0" y="7.0" cp1x="4.0" cp1y="7.0" cp2x="4.0" cp2y="7.0"/>
151.28072 +                                          <point x="15.0" y="7.0" cp1x="15.0" cp1y="7.0" cp2x="15.0" cp2y="7.0"/>
151.28073 +                                          <point x="15.0" y="9.0" cp1x="15.0" cp1y="9.0" cp2x="15.0" cp2y="9.0"/>
151.28074 +                                          <point x="14.0" y="14.0" cp1x="14.0" cp1y="14.0" cp2x="14.0" cp2y="14.0"/>
151.28075 +                                       </points>
151.28076 +                                    </path>
151.28077 +                                    <path>
151.28078 +                                       <matte red="121" green="126" blue="136" alpha="156" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="-0.21" alphaOffset="-99"/>
151.28079 +                                       <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.28080 +                                       <points>
151.28081 +                                          <point x="0.0" y="13.0" cp1x="0.0" cp1y="13.0" cp2x="0.0" cp2y="13.0"/>
151.28082 +                                          <point x="0.0" y="14.0" cp1x="0.0" cp1y="14.0" cp2x="0.0" cp2y="14.0"/>
151.28083 +                                          <point x="1.0" y="16.0" cp1x="1.0" cp1y="16.0" cp2x="1.0" cp2y="16.0"/>
151.28084 +                                          <point x="14.0" y="16.0" cp1x="14.0" cp1y="16.0" cp2x="14.0" cp2y="16.0"/>
151.28085 +                                          <point x="15.0" y="14.0" cp1x="15.0" cp1y="14.0" cp2x="15.0" cp2y="14.0"/>
151.28086 +                                          <point x="15.0" y="13.0" cp1x="15.0" cp1y="13.0" cp2x="15.0" cp2y="13.0"/>
151.28087 +                                       </points>
151.28088 +                                    </path>
151.28089 +                                 </shapes>
151.28090 +                                 <effects/>
151.28091 +                              </layer>
151.28092 +                              <templateLayer fileName="113fe83f65c.png">
151.28093 +                                 <layer name="Template" type="template">
151.28094 +                                    <opacity>1.0</opacity>
151.28095 +                                    <fillOpacity>1.0</fillOpacity>
151.28096 +                                    <blendingMode>NORMAL</blendingMode>
151.28097 +                                    <locked>false</locked>
151.28098 +                                    <visible>false</visible>
151.28099 +                                    <shapes/>
151.28100 +                                    <effects/>
151.28101 +                                 </layer>
151.28102 +                              </templateLayer>
151.28103 +                           </canvas>
151.28104 +                    </state>
151.28105 +                </backgroundStates>
151.28106 +                <foregroundStates/>
151.28107 +                <borderStates/>
151.28108 +                <regions/>
151.28109 +            </uiIconRegion>
151.28110 +            <uiIconRegion name="collapsedIcon" subregion="true" key="collapsedIcon">
151.28111 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.28112 +               <style>
151.28113 +                  <textForeground/>
151.28114 +                  <textBackground/>
151.28115 +                  <background/>
151.28116 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.28117 +                  <uiproperties/>
151.28118 +               </style>
151.28119 +               <backgroundStates>
151.28120 +                  <state stateKeys="Enabled">
151.28121 +                     <style>
151.28122 +                        <textForeground/>
151.28123 +                        <textBackground/>
151.28124 +                        <background/>
151.28125 +                        <uiproperties/>
151.28126 +                     </style>
151.28127 +                     <canvas>
151.28128 +                        <size width="18" height="7"/>
151.28129 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.28130 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.28131 +                        <layer name="Button">
151.28132 +                           <opacity>1.0</opacity>
151.28133 +                           <fillOpacity>1.0</fillOpacity>
151.28134 +                           <blendingMode>NORMAL</blendingMode>
151.28135 +                           <locked>false</locked>
151.28136 +                           <visible>true</visible>
151.28137 +                           <shapes>
151.28138 +                              <path>
151.28139 +                                 <matte red="102" green="102" blue="102" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.34509805" alphaOffset="0"/>
151.28140 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.28141 +                                 <points>
151.28142 +                                    <point x="0.0" y="0.0" cp1x="0.0" cp1y="0.0" cp2x="0.0" cp2y="0.0"/>
151.28143 +                                    <point x="6.918032786885245" y="3.5081967213114753" cp1x="6.918032786885245" cp1y="3.5081967213114753" cp2x="6.918032786885245" cp2y="3.5081967213114753"/>
151.28144 +                                    <point x="0.0" y="7.0" cp1x="0.0" cp1y="7.0" cp2x="0.0" cp2y="7.0"/>
151.28145 +                                 </points>
151.28146 +                              </path>
151.28147 +                           </shapes>
151.28148 +                           <effects/>
151.28149 +                        </layer>
151.28150 +                        <templateLayer fileName="113fe61c072.png">
151.28151 +                           <layer name="Template" type="template">
151.28152 +                              <opacity>1.0</opacity>
151.28153 +                              <fillOpacity>1.0</fillOpacity>
151.28154 +                              <blendingMode>NORMAL</blendingMode>
151.28155 +                              <locked>false</locked>
151.28156 +                              <visible>false</visible>
151.28157 +                              <shapes/>
151.28158 +                              <effects/>
151.28159 +                           </layer>
151.28160 +                        </templateLayer>
151.28161 +                     </canvas>
151.28162 +                  </state>
151.28163 +                  <state stateKeys="Enabled+Selected">
151.28164 +                     <style>
151.28165 +                        <textForeground/>
151.28166 +                        <textBackground/>
151.28167 +                        <background/>
151.28168 +                        <uiproperties/>
151.28169 +                     </style>
151.28170 +                     <canvas>
151.28171 +                        <size width="18" height="7"/>
151.28172 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.28173 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.28174 +                        <layer name="Button">
151.28175 +                           <opacity>1.0</opacity>
151.28176 +                           <fillOpacity>1.0</fillOpacity>
151.28177 +                           <blendingMode>NORMAL</blendingMode>
151.28178 +                           <locked>false</locked>
151.28179 +                           <visible>true</visible>
151.28180 +                           <shapes>
151.28181 +                              <path>
151.28182 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.28183 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.28184 +                                 <points>
151.28185 +                                    <point x="0.0" y="0.0" cp1x="0.0" cp1y="0.0" cp2x="0.0" cp2y="0.0"/>
151.28186 +                                    <point x="6.918032786885245" y="3.5081967213114753" cp1x="6.918032786885245" cp1y="3.5081967213114753" cp2x="6.918032786885245" cp2y="3.5081967213114753"/>
151.28187 +                                    <point x="0.0" y="7.0" cp1x="0.0" cp1y="7.0" cp2x="0.0" cp2y="7.0"/>
151.28188 +                                 </points>
151.28189 +                              </path>
151.28190 +                           </shapes>
151.28191 +                           <effects/>
151.28192 +                        </layer>
151.28193 +                     </canvas>
151.28194 +                  </state>
151.28195 +               </backgroundStates>
151.28196 +               <foregroundStates/>
151.28197 +               <borderStates/>
151.28198 +               <regions/>
151.28199 +            </uiIconRegion>
151.28200 +            <uiIconRegion name="expandedIcon" subregion="true" key="expandedIcon">
151.28201 +               <contentMargins top="0" bottom="0" left="0" right="0"/>
151.28202 +               <style>
151.28203 +                  <textForeground/>
151.28204 +                  <textBackground/>
151.28205 +                  <background/>
151.28206 +                  <cacheSettingsInherited>false</cacheSettingsInherited>
151.28207 +                  <uiproperties/>
151.28208 +               </style>
151.28209 +               <backgroundStates>
151.28210 +                  <state stateKeys="Enabled">
151.28211 +                     <style>
151.28212 +                        <textForeground/>
151.28213 +                        <textBackground/>
151.28214 +                        <background/>
151.28215 +                        <uiproperties/>
151.28216 +                     </style>
151.28217 +                     <canvas>
151.28218 +                        <size width="18" height="7"/>
151.28219 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.28220 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.28221 +                        <layer name="Button">
151.28222 +                           <opacity>1.0</opacity>
151.28223 +                           <fillOpacity>1.0</fillOpacity>
151.28224 +                           <blendingMode>NORMAL</blendingMode>
151.28225 +                           <locked>false</locked>
151.28226 +                           <visible>true</visible>
151.28227 +                           <shapes>
151.28228 +                              <path>
151.28229 +                                 <matte red="102" green="102" blue="102" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="-0.6111111" saturationOffset="-0.110526316" brightnessOffset="-0.34509805" alphaOffset="0"/>
151.28230 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.28231 +                                 <points>
151.28232 +                                    <point x="0.0" y="0.0" cp1x="0.0" cp1y="0.0" cp2x="0.0" cp2y="0.0"/>
151.28233 +                                    <point x="7.0" y="0.0" cp1x="7.0" cp1y="0.0" cp2x="7.0" cp2y="0.0"/>
151.28234 +                                    <point x="3.5409836065573774" y="6.950819672131146" cp1x="3.5409836065573774" cp1y="6.950819672131146" cp2x="3.5409836065573774" cp2y="6.950819672131146"/>
151.28235 +                                 </points>
151.28236 +                              </path>
151.28237 +                           </shapes>
151.28238 +                           <effects/>
151.28239 +                        </layer>
151.28240 +                        <templateLayer fileName="113fe6289fa.png">
151.28241 +                           <layer name="Template" type="template">
151.28242 +                              <opacity>1.0</opacity>
151.28243 +                              <fillOpacity>1.0</fillOpacity>
151.28244 +                              <blendingMode>NORMAL</blendingMode>
151.28245 +                              <locked>false</locked>
151.28246 +                              <visible>false</visible>
151.28247 +                              <shapes/>
151.28248 +                              <effects/>
151.28249 +                           </layer>
151.28250 +                        </templateLayer>
151.28251 +                     </canvas>
151.28252 +                  </state>
151.28253 +                  <state stateKeys="Enabled+Selected">
151.28254 +                     <style>
151.28255 +                        <textForeground/>
151.28256 +                        <textBackground/>
151.28257 +                        <background/>
151.28258 +                        <uiproperties/>
151.28259 +                     </style>
151.28260 +                     <canvas>
151.28261 +                        <size width="18" height="7"/>
151.28262 +                        <nextLayerNameIndex>3</nextLayerNameIndex>
151.28263 +                        <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.28264 +                        <layer name="Button">
151.28265 +                           <opacity>1.0</opacity>
151.28266 +                           <fillOpacity>1.0</fillOpacity>
151.28267 +                           <blendingMode>NORMAL</blendingMode>
151.28268 +                           <locked>false</locked>
151.28269 +                           <visible>true</visible>
151.28270 +                           <shapes>
151.28271 +                              <path>
151.28272 +                                 <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusBlueGrey" hueOffset="0.0" saturationOffset="-0.110526316" brightnessOffset="0.25490195" alphaOffset="0"/>
151.28273 +                                 <paintPoints x1="0.25" y1="0.0" x2="0.75" y2="1.0"/>
151.28274 +                                 <points>
151.28275 +                                    <point x="0.0" y="0.0" cp1x="0.0" cp1y="0.0" cp2x="0.0" cp2y="0.0"/>
151.28276 +                                    <point x="7.0" y="0.0" cp1x="7.0" cp1y="0.0" cp2x="7.0" cp2y="0.0"/>
151.28277 +                                    <point x="3.5409836065573774" y="6.950819672131146" cp1x="3.5409836065573774" cp1y="6.950819672131146" cp2x="3.5409836065573774" cp2y="6.950819672131146"/>
151.28278 +                                 </points>
151.28279 +                              </path>
151.28280 +                           </shapes>
151.28281 +                           <effects/>
151.28282 +                        </layer>
151.28283 +                     </canvas>
151.28284 +                  </state>
151.28285 +               </backgroundStates>
151.28286 +               <foregroundStates/>
151.28287 +               <borderStates/>
151.28288 +               <regions/>
151.28289 +            </uiIconRegion>
151.28290 +         </regions>
151.28291 +      </uiComponent>
151.28292 +      <uiComponent opaque="true" type="javax.swing.JRootPane" name="RootPane" ui="RootPaneUI" subregion="false">
151.28293 +         <stateTypes/>
151.28294 +         <contentMargins top="0" bottom="0" left="0" right="0"/>
151.28295 +         <style>
151.28296 +            <textForeground/>
151.28297 +            <textBackground/>
151.28298 +            <background>
151.28299 +               <matte red="214" green="217" blue="223" alpha="255" uiDefaultParentName="control" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
151.28300 +            </background>
151.28301 +            <inherit-background>false</inherit-background>
151.28302 +            <cacheSettingsInherited>false</cacheSettingsInherited>
151.28303 +            <cacheMode>NO_CACHING</cacheMode>
151.28304 +            <uiproperties/>
151.28305 +         </style>
151.28306 +         <backgroundStates>
151.28307 +            <state stateKeys="Enabled">
151.28308 +               <style>
151.28309 +                  <textForeground/>
151.28310 +                  <textBackground/>
151.28311 +                  <background/>
151.28312 +                  <uiproperties/>
151.28313 +               </style>
151.28314 +               <canvas>
151.28315 +                  <size width="100" height="30"/>
151.28316 +                  <nextLayerNameIndex>2</nextLayerNameIndex>
151.28317 +                  <stretchingInsets top="5" bottom="5" left="5" right="5"/>
151.28318 +                  <layer name="Layer 1">
151.28319 +                     <opacity>1.0</opacity>
151.28320 +                     <fillOpacity>1.0</fillOpacity>
151.28321 +                     <blendingMode>NORMAL</blendingMode>
151.28322 +                     <locked>false</locked>
151.28323 +                     <visible>true</visible>
151.28324 +                     <shapes/>
151.28325 +                     <effects/>
151.28326 +                  </layer>
151.28327 +               </canvas>
151.28328 +            </state>
151.28329 +         </backgroundStates>
151.28330 +         <foregroundStates/>
151.28331 +         <borderStates/>
151.28332 +         <regions/>
151.28333 +      </uiComponent>
151.28334 +   </components>
151.28335 +</synthModel>
   152.1 --- a/src/share/classes/javax/swing/plaf/synth/SynthArrowButton.java	Tue Apr 28 14:43:44 2009 -0700
   152.2 +++ b/src/share/classes/javax/swing/plaf/synth/SynthArrowButton.java	Wed Apr 29 00:27:46 2009 -0700
   152.3 @@ -113,6 +113,31 @@
   152.4                      context.getStyle().getInt(context, "ArrowButton.size", 16);
   152.5                  dim = new Dimension(size, size);
   152.6              }
   152.7 +
   152.8 +            // handle scaling for sizeVarients for special case components. The
   152.9 +            // key "JComponent.sizeVariant" scales for large/small/mini
  152.10 +            // components are based on Apples LAF
  152.11 +            Container parent = context.getComponent().getParent();
  152.12 +            if (parent instanceof JComponent && !(parent instanceof JComboBox)) {
  152.13 +                Object scaleKey = ((JComponent)parent).
  152.14 +                                    getClientProperty("JComponent.sizeVariant");
  152.15 +                if (scaleKey != null){
  152.16 +                    if ("large".equals(scaleKey)){
  152.17 +                        dim = new Dimension(
  152.18 +                                (int)(dim.width * 1.15),
  152.19 +                                (int)(dim.height * 1.15));
  152.20 +                    } else if ("small".equals(scaleKey)){
  152.21 +                        dim = new Dimension(
  152.22 +                                (int)(dim.width * 0.857),
  152.23 +                                (int)(dim.height * 0.857));
  152.24 +                    } else if ("mini".equals(scaleKey)){
  152.25 +                        dim = new Dimension(
  152.26 +                                (int)(dim.width * 0.714),
  152.27 +                                (int)(dim.height * 0.714));
  152.28 +                    }
  152.29 +                }
  152.30 +            }
  152.31 +
  152.32              context.dispose();
  152.33              return dim;
  152.34          }
   153.1 --- a/src/share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java	Tue Apr 28 14:43:44 2009 -0700
   153.2 +++ b/src/share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java	Wed Apr 29 00:27:46 2009 -0700
   153.3 @@ -29,16 +29,11 @@
   153.4  import java.awt.event.*;
   153.5  import java.lang.reflect.*;
   153.6  import javax.swing.*;
   153.7 -import javax.accessibility.*;
   153.8 -import javax.swing.FocusManager;
   153.9  import javax.swing.plaf.*;
  153.10 -import javax.swing.border.*;
  153.11 -import javax.swing.text.*;
  153.12  import javax.swing.event.*;
  153.13  import javax.swing.plaf.basic.*;
  153.14  import java.beans.PropertyChangeListener;
  153.15  import java.beans.PropertyChangeEvent;
  153.16 -import sun.awt.AppContext;
  153.17  import sun.swing.plaf.synth.SynthUI;
  153.18  
  153.19  /**
  153.20 @@ -51,11 +46,93 @@
  153.21      private SynthStyle style;
  153.22      private boolean useListColors;
  153.23  
  153.24 +    /**
  153.25 +     * Used to adjust the location and size of the popup. Very useful for
  153.26 +     * situations such as we find in Nimbus where part of the border is used
  153.27 +     * to paint the focus. In such cases, the border is empty space, and not
  153.28 +     * part of the "visual" border, and in these cases, you'd like the popup
  153.29 +     * to be adjusted such that it looks as if it were next to the visual border.
  153.30 +     * You may want to use negative insets to get the right look.
  153.31 +     */
  153.32 +    Insets popupInsets;
  153.33 +
  153.34 +    /**
  153.35 +     * This flag may be set via UIDefaults. By default, it is false, to
  153.36 +     * preserve backwards compatibility. If true, then the combo will
  153.37 +     * "act as a button" when it is not editable.
  153.38 +     */
  153.39 +    private boolean buttonWhenNotEditable;
  153.40 +
  153.41 +    /**
  153.42 +     * A flag to indicate that the combo box and combo box button should
  153.43 +     * remain in the PRESSED state while the combo popup is visible.
  153.44 +     */
  153.45 +    private boolean pressedWhenPopupVisible;
  153.46 +
  153.47 +    /**
  153.48 +     * When buttonWhenNotEditable is true, this field is used to help make
  153.49 +     * the combo box appear and function as a button when the combo box is
  153.50 +     * not editable. In such a state, you can click anywhere on the button
  153.51 +     * to get it to open the popup. Also, anywhere you hover over the combo
  153.52 +     * will cause the entire combo to go into "rollover" state, and anywhere
  153.53 +     * you press will go into "pressed" state. This also keeps in sync the
  153.54 +     * state of the combo and the arrowButton.
  153.55 +     */
  153.56 +    private ButtonHandler buttonHandler;
  153.57 +
  153.58 +    /**
  153.59 +     * Handler for repainting combo when editor component gains/looses focus
  153.60 +     */
  153.61 +    private EditorFocusHandler editorFocusHandler;
  153.62 +
  153.63 +    /**
  153.64 +     * If true, then the cell renderer will be forced to be non-opaque when
  153.65 +     * used for rendering the selected item in the combo box (not in the list),
  153.66 +     * and forced to opaque after rendering the selected value.
  153.67 +     */
  153.68 +    private boolean forceOpaque = false;
  153.69 +
  153.70 +    /**
  153.71 +     * NOTE: This serves the same purpose as the same field in BasicComboBoxUI.
  153.72 +     * It is here because I could not give the padding field in
  153.73 +     * BasicComboBoxUI protected access in an update release.
  153.74 +     */
  153.75 +    private Insets padding;
  153.76 +
  153.77      public static ComponentUI createUI(JComponent c) {
  153.78          return new SynthComboBoxUI();
  153.79      }
  153.80  
  153.81 +    /**
  153.82 +     * @inheritDoc
  153.83 +     *
  153.84 +     * Overridden to ensure that ButtonHandler is created prior to any of
  153.85 +     * the other installXXX methods, since several of them reference
  153.86 +     * buttonHandler.
  153.87 +     */
  153.88 +    @Override
  153.89 +    public void installUI(JComponent c) {
  153.90 +        buttonHandler = new ButtonHandler();
  153.91 +        super.installUI(c);
  153.92 +    }
  153.93 +
  153.94 +    @Override
  153.95      protected void installDefaults() {
  153.96 +        //NOTE: This next line of code was added because, since squareButton in
  153.97 +        //BasicComboBoxUI is private, I need to have some way of reading it from UIManager.
  153.98 +        //This is an incomplete solution (since it implies that squareButons,
  153.99 +        //once set, cannot be reset per state. Probably ok, but not always ok).
 153.100 +        //This line of code should be removed at the same time that squareButton
 153.101 +        //is made protected in the super class.
 153.102 +        super.installDefaults();
 153.103 +
 153.104 +        //This is here instead of in updateStyle because the value for padding
 153.105 +        //needs to remain consistent with the value for padding in
 153.106 +        //BasicComboBoxUI. I wouldn't have this value here at all if not
 153.107 +        //for the fact that I cannot make "padding" protected in any way
 153.108 +        //for an update release. This *should* be fixed in Java 7
 153.109 +        padding = UIManager.getInsets("ComboBox.padding");
 153.110 +
 153.111          updateStyle(comboBox);
 153.112      }
 153.113  
 153.114 @@ -65,12 +142,20 @@
 153.115  
 153.116          style = SynthLookAndFeel.updateStyle(context, this);
 153.117          if (style != oldStyle) {
 153.118 +            popupInsets = (Insets)style.get(context, "ComboBox.popupInsets");
 153.119              useListColors = style.getBoolean(context,
 153.120 -                                  "ComboBox.rendererUseListColors", true);
 153.121 +                    "ComboBox.rendererUseListColors", true);
 153.122 +            buttonWhenNotEditable = style.getBoolean(context,
 153.123 +                    "ComboBox.buttonWhenNotEditable", false);
 153.124 +            pressedWhenPopupVisible = style.getBoolean(context,
 153.125 +                    "ComboBox.pressedWhenPopupVisible", false);
 153.126 +
 153.127              if (oldStyle != null) {
 153.128                  uninstallKeyboardActions();
 153.129                  installKeyboardActions();
 153.130              }
 153.131 +            forceOpaque = style.getBoolean(context,
 153.132 +                    "ComboBox.forceOpaque", false);
 153.133          }
 153.134          context.dispose();
 153.135  
 153.136 @@ -79,11 +164,24 @@
 153.137          }
 153.138      }
 153.139  
 153.140 +    @Override
 153.141      protected void installListeners() {
 153.142          comboBox.addPropertyChangeListener(this);
 153.143 +        comboBox.addMouseListener(buttonHandler);
 153.144 +        editorFocusHandler = new EditorFocusHandler(comboBox);
 153.145          super.installListeners();
 153.146      }
 153.147  
 153.148 +    @Override
 153.149 +    public void uninstallUI(JComponent c) {
 153.150 +        if (popup instanceof SynthComboPopup) {
 153.151 +            ((SynthComboPopup)popup).removePopupMenuListener(buttonHandler);
 153.152 +        }
 153.153 +        super.uninstallUI(c);
 153.154 +        buttonHandler = null;
 153.155 +    }
 153.156 +
 153.157 +    @Override
 153.158      protected void uninstallDefaults() {
 153.159          SynthContext context = getContext(comboBox, ENABLED);
 153.160  
 153.161 @@ -92,11 +190,17 @@
 153.162          style = null;
 153.163      }
 153.164  
 153.165 +    @Override
 153.166      protected void uninstallListeners() {
 153.167 +        editorFocusHandler.unregister();
 153.168          comboBox.removePropertyChangeListener(this);
 153.169 +        comboBox.removeMouseListener(buttonHandler);
 153.170 +        buttonHandler.pressed = false;
 153.171 +        buttonHandler.over = false;
 153.172          super.uninstallListeners();
 153.173      }
 153.174  
 153.175 +    @Override
 153.176      public SynthContext getContext(JComponent c) {
 153.177          return getContext(c, getComponentState(c));
 153.178      }
 153.179 @@ -111,18 +215,56 @@
 153.180      }
 153.181  
 153.182      private int getComponentState(JComponent c) {
 153.183 -        return SynthLookAndFeel.getComponentState(c);
 153.184 +        // currently we have a broken situation where if a developer
 153.185 +        // takes the border from a JComboBox and sets it on a JTextField
 153.186 +        // then the codepath will eventually lead back to this method
 153.187 +        // but pass in a JTextField instead of JComboBox! In case this
 153.188 +        // happens, we just return the normal synth state for the component
 153.189 +        // instead of doing anything special
 153.190 +        if (!(c instanceof JComboBox)) return SynthLookAndFeel.getComponentState(c);
 153.191 +
 153.192 +        JComboBox box = (JComboBox)c;
 153.193 +        if (shouldActLikeButton()) {
 153.194 +            int state = ENABLED;
 153.195 +            if ((!c.isEnabled())) {
 153.196 +                state = DISABLED;
 153.197 +            }
 153.198 +            if (buttonHandler.isPressed()) {
 153.199 +                state |= PRESSED;
 153.200 +            }
 153.201 +            if (buttonHandler.isRollover()) {
 153.202 +                state |= MOUSE_OVER;
 153.203 +            }
 153.204 +            if (box.isFocusOwner()) {
 153.205 +                state |= FOCUSED;
 153.206 +            }
 153.207 +            return state;
 153.208 +        } else {
 153.209 +            // for editable combos the editor component has the focus not the
 153.210 +            // combo box its self, so we should make the combo paint focused
 153.211 +            // when its editor has focus
 153.212 +            int basicState = SynthLookAndFeel.getComponentState(c);
 153.213 +            if (box.isEditable() &&
 153.214 +                     box.getEditor().getEditorComponent().isFocusOwner()) {
 153.215 +                basicState |= FOCUSED;
 153.216 +            }
 153.217 +            return basicState;
 153.218 +        }
 153.219      }
 153.220  
 153.221 +    @Override
 153.222      protected ComboPopup createPopup() {
 153.223 -        SynthComboPopup popup = new SynthComboPopup( comboBox );
 153.224 -        return popup;
 153.225 +        SynthComboPopup p = new SynthComboPopup(comboBox);
 153.226 +        p.addPopupMenuListener(buttonHandler);
 153.227 +        return p;
 153.228      }
 153.229  
 153.230 +    @Override
 153.231      protected ListCellRenderer createRenderer() {
 153.232          return new SynthComboBoxRenderer();
 153.233      }
 153.234  
 153.235 +    @Override
 153.236      protected ComboBoxEditor createEditor() {
 153.237          return new SynthComboBoxEditor();
 153.238      }
 153.239 @@ -131,22 +273,25 @@
 153.240      // end UI Initialization
 153.241      //======================
 153.242  
 153.243 -
 153.244 +    @Override
 153.245      public void propertyChange(PropertyChangeEvent e) {
 153.246          if (SynthLookAndFeel.shouldUpdateStyle(e)) {
 153.247              updateStyle(comboBox);
 153.248          }
 153.249      }
 153.250  
 153.251 +    @Override
 153.252      protected JButton createArrowButton() {
 153.253          SynthArrowButton button = new SynthArrowButton(SwingConstants.SOUTH);
 153.254          button.setName("ComboBox.arrowButton");
 153.255 +        button.setModel(buttonHandler);
 153.256          return button;
 153.257      }
 153.258  
 153.259      //=================================
 153.260      // begin ComponentUI Implementation
 153.261  
 153.262 +    @Override
 153.263      public void update(Graphics g, JComponent c) {
 153.264          SynthContext context = getContext(c);
 153.265  
 153.266 @@ -157,6 +302,7 @@
 153.267          context.dispose();
 153.268      }
 153.269  
 153.270 +    @Override
 153.271      public void paint(Graphics g, JComponent c) {
 153.272          SynthContext context = getContext(c);
 153.273  
 153.274 @@ -172,33 +318,23 @@
 153.275          }
 153.276      }
 153.277  
 153.278 +    @Override
 153.279      public void paintBorder(SynthContext context, Graphics g, int x,
 153.280                              int y, int w, int h) {
 153.281          context.getPainter().paintComboBoxBorder(context, g, x, y, w, h);
 153.282      }
 153.283  
 153.284 -
 153.285      /**
 153.286       * Paints the currently selected item.
 153.287       */
 153.288 +    @Override
 153.289      public void paintCurrentValue(Graphics g,Rectangle bounds,boolean hasFocus) {
 153.290          ListCellRenderer renderer = comboBox.getRenderer();
 153.291          Component c;
 153.292  
 153.293 -        if ( hasFocus && !isPopupVisible(comboBox) ) {
 153.294 -            c = renderer.getListCellRendererComponent( listBox,
 153.295 -                                                       comboBox.getSelectedItem(),
 153.296 -                                                       -1,
 153.297 -                                                       false,
 153.298 -                                                       false );
 153.299 -        }
 153.300 -        else {
 153.301 -            c = renderer.getListCellRendererComponent( listBox,
 153.302 -                                                       comboBox.getSelectedItem(),
 153.303 -                                                       -1,
 153.304 -                                                       false,
 153.305 -                                                       false );
 153.306 -        }
 153.307 +        c = renderer.getListCellRendererComponent(
 153.308 +                listBox, comboBox.getSelectedItem(), -1, false, false );
 153.309 +
 153.310          // Fix for 4238829: should lay out the JPanel.
 153.311          boolean shouldValidate = false;
 153.312          if (c instanceof JPanel)  {
 153.313 @@ -207,36 +343,88 @@
 153.314  
 153.315          if (c instanceof UIResource) {
 153.316              c.setName("ComboBox.renderer");
 153.317 -            currentValuePane.paintComponent(g,c,comboBox,bounds.x,bounds.y,
 153.318 -                                        bounds.width,bounds.height, shouldValidate);
 153.319          }
 153.320 -        else {
 153.321 -            currentValuePane.paintComponent(g,c,comboBox,bounds.x,bounds.y,
 153.322 -                                        bounds.width,bounds.height, shouldValidate);
 153.323 +
 153.324 +        boolean force = forceOpaque && c instanceof JComponent;
 153.325 +        if (force) {
 153.326 +            ((JComponent)c).setOpaque(false);
 153.327 +        }
 153.328 +
 153.329 +        int x = bounds.x, y = bounds.y, w = bounds.width, h = bounds.height;
 153.330 +        if (padding != null) {
 153.331 +            x = bounds.x + padding.left;
 153.332 +            y = bounds.y + padding.top;
 153.333 +            w = bounds.width - (padding.left + padding.right);
 153.334 +            h = bounds.height - (padding.top + padding.bottom);
 153.335 +        }
 153.336 +
 153.337 +        currentValuePane.paintComponent(g, c, comboBox, x, y, w, h, shouldValidate);
 153.338 +
 153.339 +        if (force) {
 153.340 +            ((JComponent)c).setOpaque(true);
 153.341          }
 153.342      }
 153.343  
 153.344      /**
 153.345 +     * @return true if this combo box should act as one big button. Typically
 153.346 +     * only happens when buttonWhenNotEditable is true, and comboBox.isEditable
 153.347 +     * is false.
 153.348 +     */
 153.349 +    private boolean shouldActLikeButton() {
 153.350 +        return buttonWhenNotEditable && !comboBox.isEditable();
 153.351 +    }
 153.352 +
 153.353 +    /**
 153.354 +     * Return the default size of an empty display area of the combo box using
 153.355 +     * the current renderer and font.
 153.356 +     *
 153.357 +     * This method was overridden to use SynthComboBoxRenderer instead of
 153.358 +     * DefaultListCellRenderer as the default renderer when calculating the
 153.359 +     * size of the combo box. This is used in the case of the combo not having
 153.360 +     * any data.
 153.361 +     *
 153.362 +     * @return the size of an empty display area
 153.363 +     * @see #getDisplaySize
 153.364 +     */
 153.365 +    @Override
 153.366 +    protected Dimension getDefaultSize() {
 153.367 +        SynthComboBoxRenderer r = new SynthComboBoxRenderer();
 153.368 +        Dimension d = getSizeForComponent(r.getListCellRendererComponent(listBox, " ", -1, false, false));
 153.369 +        return new Dimension(d.width, d.height);
 153.370 +    }
 153.371 +
 153.372 +    /**
 153.373 +     * This has been refactored out in hopes that it may be investigated and
 153.374 +     * simplified for the next major release. adding/removing
 153.375 +     * the component to the currentValuePane and changing the font may be
 153.376 +     * redundant operations.
 153.377 +     *
 153.378 +     * NOTE: This method was copied in its entirety from BasicComboBoxUI. Might
 153.379 +     * want to make it protected in BasicComboBoxUI in Java 7
 153.380 +     */
 153.381 +    private Dimension getSizeForComponent(Component comp) {
 153.382 +        currentValuePane.add(comp);
 153.383 +        comp.setFont(comboBox.getFont());
 153.384 +        Dimension d = comp.getPreferredSize();
 153.385 +        currentValuePane.remove(comp);
 153.386 +        return d;
 153.387 +    }
 153.388 +
 153.389 +    /**
 153.390       * From BasicComboBoxRenderer v 1.18.
 153.391 +     *
 153.392 +     * Be aware that SynthFileChooserUIImpl relies on the fact that the default
 153.393 +     * renderer installed on a Synth combo box is a JLabel. If this is changed,
 153.394 +     * then an assert will fail in SynthFileChooserUIImpl
 153.395       */
 153.396      private class SynthComboBoxRenderer extends JLabel implements ListCellRenderer, UIResource {
 153.397          public SynthComboBoxRenderer() {
 153.398              super();
 153.399 +            setName("ComboBox.renderer");
 153.400              setText(" ");
 153.401          }
 153.402  
 153.403 -        public String getName() {
 153.404 -            // As SynthComboBoxRenderer's are asked for a size BEFORE they
 153.405 -            // are parented getName is overriden to force the name to be
 153.406 -            // ComboBox.renderer if it isn't set. If we didn't do this the
 153.407 -            // wrong style could be used for size calculations.
 153.408 -            String name = super.getName();
 153.409 -            if (name == null) {
 153.410 -                return "ComboBox.renderer";
 153.411 -            }
 153.412 -            return name;
 153.413 -        }
 153.414 -
 153.415 +        @Override
 153.416          public Component getListCellRendererComponent(JList list, Object value,
 153.417                           int index, boolean isSelected, boolean cellHasFocus) {
 153.418              setName("ComboBox.listRenderer");
 153.419 @@ -250,8 +438,7 @@
 153.420                           SynthLabelUI.class), isSelected, cellHasFocus,
 153.421                           list.isEnabled(), false);
 153.422                  }
 153.423 -            }
 153.424 -            else {
 153.425 +            } else {
 153.426                  setBackground(list.getBackground());
 153.427                  setForeground(list.getForeground());
 153.428              }
 153.429 @@ -261,8 +448,7 @@
 153.430              if (value instanceof Icon) {
 153.431                  setIcon((Icon)value);
 153.432                  setText("");
 153.433 -            }
 153.434 -            else {
 153.435 +            } else {
 153.436                  String text = (value == null) ? " " : value.toString();
 153.437  
 153.438                  if ("".equals(text)) {
 153.439 @@ -276,12 +462,15 @@
 153.440              // especially needed for GTK comboboxes, where the
 153.441              // ListCellRenderer's state determines the visual state
 153.442              // of the combobox.
 153.443 -            setEnabled(comboBox.isEnabled());
 153.444 -            setComponentOrientation(comboBox.getComponentOrientation());
 153.445 +            if (comboBox != null){
 153.446 +                setEnabled(comboBox.isEnabled());
 153.447 +                setComponentOrientation(comboBox.getComponentOrientation());
 153.448 +            }
 153.449  
 153.450              return this;
 153.451          }
 153.452  
 153.453 +        @Override
 153.454          public void paint(Graphics g) {
 153.455              super.paint(g);
 153.456              SynthLookAndFeel.resetSelectedUI();
 153.457 @@ -302,6 +491,7 @@
 153.458              editor.setName("ComboBox.textField");
 153.459          }
 153.460  
 153.461 +        @Override
 153.462          public Component getEditorComponent() {
 153.463              return editor;
 153.464          }
 153.465 @@ -311,6 +501,7 @@
 153.466           *
 153.467           * @param anObject the displayed value of the editor
 153.468           */
 153.469 +        @Override
 153.470          public void setItem(Object anObject) {
 153.471              String text;
 153.472  
 153.473 @@ -326,6 +517,7 @@
 153.474              }
 153.475          }
 153.476  
 153.477 +        @Override
 153.478          public Object getItem() {
 153.479              Object newValue = editor.getText();
 153.480  
 153.481 @@ -348,17 +540,261 @@
 153.482              return newValue;
 153.483          }
 153.484  
 153.485 +        @Override
 153.486          public void selectAll() {
 153.487              editor.selectAll();
 153.488              editor.requestFocus();
 153.489          }
 153.490  
 153.491 +        @Override
 153.492          public void addActionListener(ActionListener l) {
 153.493              editor.addActionListener(l);
 153.494          }
 153.495  
 153.496 +        @Override
 153.497          public void removeActionListener(ActionListener l) {
 153.498              editor.removeActionListener(l);
 153.499          }
 153.500      }
 153.501 +
 153.502 +    /**
 153.503 +     * Handles all the logic for treating the combo as a button when it is
 153.504 +     * not editable, and when shouldActLikeButton() is true. This class is a
 153.505 +     * special ButtonModel, and installed on the arrowButton when appropriate.
 153.506 +     * It also is installed as a mouse listener and mouse motion listener on
 153.507 +     * the combo box. In this way, the state between the button and combo
 153.508 +     * are in sync. Whenever one is "over" both are. Whenever one is pressed,
 153.509 +     * both are.
 153.510 +     */
 153.511 +    private final class ButtonHandler extends DefaultButtonModel
 153.512 +            implements MouseListener, PopupMenuListener {
 153.513 +        /**
 153.514 +         * Indicates that the mouse is over the combo or the arrow button.
 153.515 +         * This field only has meaning if buttonWhenNotEnabled is true.
 153.516 +         */
 153.517 +        private boolean over;
 153.518 +        /**
 153.519 +         * Indicates that the combo or arrow button has been pressed. This
 153.520 +         * field only has meaning if buttonWhenNotEnabled is true.
 153.521 +         */
 153.522 +        private boolean pressed;
 153.523 +
 153.524 +        //------------------------------------------------------------------
 153.525 +        // State Methods
 153.526 +        //------------------------------------------------------------------
 153.527 +
 153.528 +        /**
 153.529 +         * <p>Updates the internal "pressed" state. If shouldActLikeButton()
 153.530 +         * is true, and if this method call will change the internal state,
 153.531 +         * then the combo and button will be repainted.</p>
 153.532 +         *
 153.533 +         * <p>Note that this method is called either when a press event
 153.534 +         * occurs on the combo box, or on the arrow button.</p>
 153.535 +         */
 153.536 +        private void updatePressed(boolean p) {
 153.537 +            this.pressed = p && isEnabled();
 153.538 +            if (shouldActLikeButton()) {
 153.539 +                comboBox.repaint();
 153.540 +            }
 153.541 +        }
 153.542 +
 153.543 +        /**
 153.544 +         * <p>Updates the internal "over" state. If shouldActLikeButton()
 153.545 +         * is true, and if this method call will change the internal state,
 153.546 +         * then the combo and button will be repainted.</p>
 153.547 +         *
 153.548 +         * <p>Note that this method is called either when a mouseover/mouseoff event
 153.549 +         * occurs on the combo box, or on the arrow button.</p>
 153.550 +         */
 153.551 +        private void updateOver(boolean o) {
 153.552 +            boolean old = isRollover();
 153.553 +            this.over = o && isEnabled();
 153.554 +            boolean newo = isRollover();
 153.555 +            if (shouldActLikeButton() && old != newo) {
 153.556 +                comboBox.repaint();
 153.557 +            }
 153.558 +        }
 153.559 +
 153.560 +        //------------------------------------------------------------------
 153.561 +        // DefaultButtonModel Methods
 153.562 +        //------------------------------------------------------------------
 153.563 +
 153.564 +        /**
 153.565 +         * {@inheritDoc}
 153.566 +         *
 153.567 +         * Ensures that isPressed() will return true if the combo is pressed,
 153.568 +         * or the arrowButton is pressed, <em>or</em> if the combo popup is
 153.569 +         * visible. This is the case because a combo box looks pressed when
 153.570 +         * the popup is visible, and so should the arrow button.
 153.571 +         */
 153.572 +        @Override
 153.573 +        public boolean isPressed() {
 153.574 +            boolean b = shouldActLikeButton() ? pressed : super.isPressed();
 153.575 +            return b || (pressedWhenPopupVisible && comboBox.isPopupVisible());
 153.576 +        }
 153.577 +
 153.578 +        /**
 153.579 +         * {@inheritDoc}
 153.580 +         *
 153.581 +         * Ensures that the armed state is in sync with the pressed state
 153.582 +         * if shouldActLikeButton is true. Without this method, the arrow
 153.583 +         * button will not look pressed when the popup is open, regardless
 153.584 +         * of the result of isPressed() alone.
 153.585 +         */
 153.586 +        @Override
 153.587 +        public boolean isArmed() {
 153.588 +            boolean b = shouldActLikeButton() ||
 153.589 +                        (pressedWhenPopupVisible && comboBox.isPopupVisible());
 153.590 +            return b ? isPressed() : super.isArmed();
 153.591 +        }
 153.592 +
 153.593 +        /**
 153.594 +         * {@inheritDoc}
 153.595 +         *
 153.596 +         * Ensures that isRollover() will return true if the combo is
 153.597 +         * rolled over, or the arrowButton is rolled over.
 153.598 +         */
 153.599 +        @Override
 153.600 +        public boolean isRollover() {
 153.601 +            return shouldActLikeButton() ? over : super.isRollover();
 153.602 +        }
 153.603 +
 153.604 +        /**
 153.605 +         * {@inheritDoc}
 153.606 +         *
 153.607 +         * Forwards pressed states to the internal "pressed" field
 153.608 +         */
 153.609 +        @Override
 153.610 +        public void setPressed(boolean b) {
 153.611 +            super.setPressed(b);
 153.612 +            updatePressed(b);
 153.613 +        }
 153.614 +
 153.615 +        /**
 153.616 +         * {@inheritDoc}
 153.617 +         *
 153.618 +         * Forwards rollover states to the internal "over" field
 153.619 +         */
 153.620 +        @Override
 153.621 +        public void setRollover(boolean b) {
 153.622 +            super.setRollover(b);
 153.623 +            updateOver(b);
 153.624 +        }
 153.625 +
 153.626 +        //------------------------------------------------------------------
 153.627 +        // MouseListener/MouseMotionListener Methods
 153.628 +        //------------------------------------------------------------------
 153.629 +
 153.630 +        @Override
 153.631 +        public void mouseEntered(MouseEvent mouseEvent) {
 153.632 +            updateOver(true);
 153.633 +        }
 153.634 +
 153.635 +        @Override
 153.636 +        public void mouseExited(MouseEvent mouseEvent) {
 153.637 +            updateOver(false);
 153.638 +        }
 153.639 +
 153.640 +        @Override
 153.641 +        public void mousePressed(MouseEvent mouseEvent) {
 153.642 +            updatePressed(true);
 153.643 +        }
 153.644 +
 153.645 +        @Override
 153.646 +        public void mouseReleased(MouseEvent mouseEvent) {
 153.647 +            updatePressed(false);
 153.648 +        }
 153.649 +
 153.650 +        @Override
 153.651 +        public void mouseClicked(MouseEvent e) {}
 153.652 +
 153.653 +        //------------------------------------------------------------------
 153.654 +        // PopupMenuListener Methods
 153.655 +        //------------------------------------------------------------------
 153.656 +
 153.657 +        /**
 153.658 +         * @inheritDoc
 153.659 +         *
 153.660 +         * Ensures that the combo box is repainted when the popup is closed.
 153.661 +         * This avoids a bug where clicking off the combo wasn't causing a repaint,
 153.662 +         * and thus the combo box still looked pressed even when it was not.
 153.663 +         *
 153.664 +         * This bug was only noticed when acting as a button, but may be generally
 153.665 +         * present. If so, remove the if() block
 153.666 +         */
 153.667 +        @Override
 153.668 +        public void popupMenuCanceled(PopupMenuEvent e) {
 153.669 +            if (shouldActLikeButton() || pressedWhenPopupVisible) {
 153.670 +                comboBox.repaint();
 153.671 +            }
 153.672 +        }
 153.673 +
 153.674 +        @Override
 153.675 +        public void popupMenuWillBecomeVisible(PopupMenuEvent e) {}
 153.676 +        @Override
 153.677 +        public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {}
 153.678 +    }
 153.679 +
 153.680 +    /**
 153.681 +     * Handler for repainting combo when editor component gains/looses focus
 153.682 +     */
 153.683 +    private static class EditorFocusHandler implements FocusListener,
 153.684 +            PropertyChangeListener {
 153.685 +        private JComboBox comboBox;
 153.686 +        private ComboBoxEditor editor = null;
 153.687 +        private Component editorComponent = null;
 153.688 +
 153.689 +        private EditorFocusHandler(JComboBox comboBox) {
 153.690 +            this.comboBox = comboBox;
 153.691 +            editor = comboBox.getEditor();
 153.692 +            if (editor != null){
 153.693 +                editorComponent = editor.getEditorComponent();
 153.694 +                if (editorComponent != null){
 153.695 +                    editorComponent.addFocusListener(this);
 153.696 +                }
 153.697 +            }
 153.698 +            comboBox.addPropertyChangeListener("editor",this);
 153.699 +        }
 153.700 +
 153.701 +        public void unregister(){
 153.702 +            comboBox.removePropertyChangeListener(this);
 153.703 +            if (editorComponent!=null){
 153.704 +                editorComponent.removeFocusListener(this);
 153.705 +            }
 153.706 +        }
 153.707 +
 153.708 +        /** Invoked when a component gains the keyboard focus. */
 153.709 +        public void focusGained(FocusEvent e) {
 153.710 +            // repaint whole combo on focus gain
 153.711 +            comboBox.repaint();
 153.712 +        }
 153.713 +
 153.714 +        /** Invoked when a component loses the keyboard focus. */
 153.715 +        public void focusLost(FocusEvent e) {
 153.716 +            // repaint whole combo on focus loss
 153.717 +            comboBox.repaint();
 153.718 +        }
 153.719 +
 153.720 +        /**
 153.721 +         * Called when the combos editor changes
 153.722 +         *
 153.723 +         * @param evt A PropertyChangeEvent object describing the event source and
 153.724 +         *            the property that has changed.
 153.725 +         */
 153.726 +        public void propertyChange(PropertyChangeEvent evt) {
 153.727 +            ComboBoxEditor newEditor = comboBox.getEditor();
 153.728 +            if (editor != newEditor){
 153.729 +                if (editorComponent!=null){
 153.730 +                    editorComponent.removeFocusListener(this);
 153.731 +                }
 153.732 +                editor = newEditor;
 153.733 +                if (editor != null){
 153.734 +                    editorComponent = editor.getEditorComponent();
 153.735 +                    if (editorComponent != null){
 153.736 +                        editorComponent.addFocusListener(this);
 153.737 +                    }
 153.738 +                }
 153.739 +            }
 153.740 +        }
 153.741 +    }
 153.742  }
   154.1 --- a/src/share/classes/javax/swing/plaf/synth/SynthLookAndFeel.java	Tue Apr 28 14:43:44 2009 -0700
   154.2 +++ b/src/share/classes/javax/swing/plaf/synth/SynthLookAndFeel.java	Wed Apr 29 00:27:46 2009 -0700
   154.3 @@ -138,9 +138,9 @@
   154.4              }
   154.5          }
   154.6          else {
   154.7 -            selectedUIState = SynthConstants.FOCUSED;
   154.8              if (enabled) {
   154.9                  selectedUIState |= SynthConstants.ENABLED;
  154.10 +                selectedUIState = SynthConstants.FOCUSED;
  154.11              }
  154.12              else {
  154.13                  selectedUIState |= SynthConstants.DISABLED;
  154.14 @@ -251,6 +251,26 @@
  154.15                      ((SynthLookAndFeel)laf).
  154.16                       shouldUpdateStyleOnAncestorChanged());
  154.17          }
  154.18 +        // Note: The following two nimbus based overrides should be refactored
  154.19 +        // to be in the Nimbus LAF. Due to constraints in an update release,
  154.20 +        // we couldn't actually provide the public API necessary to allow
  154.21 +        // NimbusLookAndFeel (a subclass of SynthLookAndFeel) to provide its
  154.22 +        // own rules for shouldUpdateStyle.
  154.23 +        else if ("Nimbus.Overrides" == eName) {
  154.24 +            // Always update when the Nimbus.Overrides client property has
  154.25 +            // been changed
  154.26 +            return true;
  154.27 +        }
  154.28 +        else if ("Nimbus.Overrides.InheritDefaults" == eName) {
  154.29 +            // Always update when the Nimbus.Overrides.InheritDefaults
  154.30 +            // client property has changed
  154.31 +            return true;
  154.32 +        }
  154.33 +        else if ("JComponent.sizeVariant" == eName) {
  154.34 +            // Always update when the JComponent.sizeVariant
  154.35 +            // client property has changed
  154.36 +            return true;
  154.37 +        }
  154.38          return false;
  154.39      }
  154.40  
  154.41 @@ -622,6 +642,7 @@
  154.42      /**
  154.43       * Called by UIManager when this look and feel is installed.
  154.44       */
  154.45 +    @Override
  154.46      public void initialize() {
  154.47          super.initialize();
  154.48          DefaultLookup.setDefaultLookup(new SynthDefaultLookup());
  154.49 @@ -633,6 +654,7 @@
  154.50      /**
  154.51       * Called by UIManager when this look and feel is uninstalled.
  154.52       */
  154.53 +    @Override
  154.54      public void uninitialize() {
  154.55          KeyboardFocusManager.getCurrentKeyboardFocusManager().
  154.56              removePropertyChangeListener(_handler);
  154.57 @@ -647,6 +669,7 @@
  154.58       *
  154.59       * @return Defaults table.
  154.60       */
  154.61 +    @Override
  154.62      public UIDefaults getDefaults() {
  154.63          UIDefaults table = new UIDefaults(60, 0.75f);
  154.64  
  154.65 @@ -704,6 +727,7 @@
  154.66       *
  154.67       * @return true.
  154.68       */
  154.69 +    @Override
  154.70      public boolean isSupportedLookAndFeel() {
  154.71          return true;
  154.72      }
  154.73 @@ -713,6 +737,7 @@
  154.74       *
  154.75       * @return false
  154.76       */
  154.77 +    @Override
  154.78      public boolean isNativeLookAndFeel() {
  154.79          return false;
  154.80      }
  154.81 @@ -722,6 +747,7 @@
  154.82       *
  154.83       * @return textual description of synth.
  154.84       */
  154.85 +    @Override
  154.86      public String getDescription() {
  154.87          return "Synth look and feel";
  154.88      }
  154.89 @@ -731,6 +757,7 @@
  154.90       *
  154.91       * @return a short string identifying this look and feel.
  154.92       */
  154.93 +    @Override
  154.94      public String getName() {
  154.95          return "Synth look and feel";
  154.96      }
  154.97 @@ -740,6 +767,7 @@
  154.98       *
  154.99       * @return a short string identifying this look and feel.
 154.100       */
 154.101 +    @Override
 154.102      public String getID() {
 154.103          return "Synth";
 154.104      }
 154.105 @@ -805,6 +833,7 @@
 154.106              tk.addPropertyChangeListener(key, this);
 154.107          }
 154.108  
 154.109 +        @Override
 154.110          public void propertyChange(PropertyChangeEvent pce) {
 154.111              UIDefaults defaults = UIManager.getLookAndFeelDefaults();
 154.112              if (defaults.getBoolean("Synth.doNotSetTextAA")) {
 154.113 @@ -873,6 +902,7 @@
 154.114              if (!isUpdatePending()) {
 154.115                  setUpdatePending(true);
 154.116                  Runnable uiUpdater = new Runnable() {
 154.117 +                    @Override
 154.118                      public void run() {
 154.119                          updateAllUIs();
 154.120                          setUpdatePending(false);
 154.121 @@ -889,6 +919,7 @@
 154.122      }
 154.123  
 154.124      private class Handler implements PropertyChangeListener {
 154.125 +        @Override
 154.126          public void propertyChange(PropertyChangeEvent evt) {
 154.127              String propertyName = evt.getPropertyName();
 154.128              Object newValue = evt.getNewValue();
   155.1 --- a/src/share/classes/javax/swing/plaf/synth/SynthProgressBarUI.java	Tue Apr 28 14:43:44 2009 -0700
   155.2 +++ b/src/share/classes/javax/swing/plaf/synth/SynthProgressBarUI.java	Wed Apr 29 00:27:46 2009 -0700
   155.3 @@ -27,14 +27,11 @@
   155.4  
   155.5  import java.awt.*;
   155.6  import java.awt.geom.AffineTransform;
   155.7 -import java.awt.event.*;
   155.8  import javax.swing.*;
   155.9 -import javax.swing.event.*;
  155.10  import javax.swing.plaf.*;
  155.11  import javax.swing.plaf.basic.BasicProgressBarUI;
  155.12  import java.beans.PropertyChangeListener;
  155.13  import java.beans.PropertyChangeEvent;
  155.14 -import java.io.Serializable;
  155.15  import sun.swing.plaf.synth.SynthUI;
  155.16  import sun.swing.SwingUtilities2;
  155.17  
  155.18 @@ -46,24 +43,29 @@
  155.19  class SynthProgressBarUI extends BasicProgressBarUI implements SynthUI,
  155.20          PropertyChangeListener {
  155.21      private SynthStyle style;
  155.22 -
  155.23      private int progressPadding;
  155.24 +    private boolean rotateText; // added for Nimbus LAF
  155.25      private boolean paintOutsideClip;
  155.26 +    private boolean tileWhenIndeterminate; //whether to tile indeterminate painting
  155.27 +    private int tileWidth; //the width of each tile
  155.28  
  155.29      public static ComponentUI createUI(JComponent x) {
  155.30          return new SynthProgressBarUI();
  155.31      }
  155.32  
  155.33 +    @Override
  155.34      protected void installListeners() {
  155.35          super.installListeners();
  155.36          progressBar.addPropertyChangeListener(this);
  155.37      }
  155.38  
  155.39 +    @Override
  155.40      protected void uninstallListeners() {
  155.41          super.uninstallListeners();
  155.42          progressBar.removePropertyChangeListener(this);
  155.43      }
  155.44  
  155.45 +    @Override
  155.46      protected void installDefaults() {
  155.47          updateStyle(progressBar);
  155.48      }
  155.49 @@ -72,17 +74,34 @@
  155.50          SynthContext context = getContext(c, ENABLED);
  155.51          SynthStyle oldStyle = style;
  155.52          style = SynthLookAndFeel.updateStyle(context, this);
  155.53 -        if (style != oldStyle) {
  155.54 -            setCellLength(style.getInt(context, "ProgressBar.cellLength", 1));
  155.55 -            setCellSpacing(style.getInt(context, "ProgressBar.cellSpacing", 0));
  155.56 -            progressPadding = style.getInt(context,
  155.57 -                    "ProgressBar.progressPadding", 0);
  155.58 -            paintOutsideClip = style.getBoolean(context,
  155.59 -                    "ProgressBar.paintOutsideClip", false);
  155.60 +        setCellLength(style.getInt(context, "ProgressBar.cellLength", 1));
  155.61 +        setCellSpacing(style.getInt(context, "ProgressBar.cellSpacing", 0));
  155.62 +        progressPadding = style.getInt(context,
  155.63 +                "ProgressBar.progressPadding", 0);
  155.64 +        paintOutsideClip = style.getBoolean(context,
  155.65 +                "ProgressBar.paintOutsideClip", false);
  155.66 +        rotateText = style.getBoolean(context,
  155.67 +                "ProgressBar.rotateText", false);
  155.68 +        tileWhenIndeterminate = style.getBoolean(context, "ProgressBar.tileWhenIndeterminate", false);
  155.69 +        tileWidth = style.getInt(context, "ProgressBar.tileWidth", 15);
  155.70 +        // handle scaling for sizeVarients for special case components. The
  155.71 +        // key "JComponent.sizeVariant" scales for large/small/mini
  155.72 +        // components are based on Apples LAF
  155.73 +        String scaleKey = (String)progressBar.getClientProperty(
  155.74 +                "JComponent.sizeVariant");
  155.75 +        if (scaleKey != null){
  155.76 +            if ("large".equals(scaleKey)){
  155.77 +                tileWidth *= 1.15;
  155.78 +            } else if ("small".equals(scaleKey)){
  155.79 +                tileWidth *= 0.857;
  155.80 +            } else if ("mini".equals(scaleKey)){
  155.81 +                tileWidth *= 0.784;
  155.82 +            }
  155.83          }
  155.84          context.dispose();
  155.85      }
  155.86  
  155.87 +    @Override
  155.88      protected void uninstallDefaults() {
  155.89          SynthContext context = getContext(progressBar, ENABLED);
  155.90  
  155.91 @@ -108,6 +127,7 @@
  155.92          return SynthLookAndFeel.getComponentState(c);
  155.93      }
  155.94  
  155.95 +    @Override
  155.96      public int getBaseline(JComponent c, int width, int height) {
  155.97          super.getBaseline(c, width, height);
  155.98          if (progressBar.isStringPainted() &&
  155.99 @@ -122,6 +142,16 @@
 155.100          return -1;
 155.101      }
 155.102  
 155.103 +    @Override
 155.104 +    protected Rectangle getBox(Rectangle r) {
 155.105 +        if (tileWhenIndeterminate) {
 155.106 +            return SwingUtilities.calculateInnerArea(progressBar, r);
 155.107 +        } else {
 155.108 +            return super.getBox(r);
 155.109 +        }
 155.110 +    }
 155.111 +
 155.112 +    @Override
 155.113      protected void setAnimationIndex(int newValue) {
 155.114          if (paintOutsideClip) {
 155.115              if (getAnimationIndex() == newValue) {
 155.116 @@ -134,6 +164,7 @@
 155.117          }
 155.118      }
 155.119  
 155.120 +    @Override
 155.121      public void update(Graphics g, JComponent c) {
 155.122          SynthContext context = getContext(c);
 155.123  
 155.124 @@ -145,6 +176,7 @@
 155.125          context.dispose();
 155.126      }
 155.127  
 155.128 +    @Override
 155.129      public void paint(Graphics g, JComponent c) {
 155.130          SynthContext context = getContext(c);
 155.131  
 155.132 @@ -196,44 +228,98 @@
 155.133              width = boxRect.width - progressPadding - progressPadding;
 155.134              height = boxRect.height - progressPadding - progressPadding;
 155.135          }
 155.136 -        context.getPainter().paintProgressBarForeground(context, g,
 155.137 -                x, y, width, height, pBar.getOrientation());
 155.138  
 155.139 -        if (pBar.isStringPainted() && !pBar.isIndeterminate()) {
 155.140 +        //if tiling and indeterminate, then paint the progress bar foreground a
 155.141 +        //bit wider than it should be. Shift as needed to ensure that there is
 155.142 +        //an animated effect
 155.143 +        if (tileWhenIndeterminate && pBar.isIndeterminate()) {
 155.144 +            double percentComplete = (double)getAnimationIndex() / (double)getFrameCount();
 155.145 +            int offset = (int)(percentComplete * tileWidth);
 155.146 +            Shape clip = g.getClip();
 155.147 +            g.clipRect(x, y, width, height);
 155.148 +            if (pBar.getOrientation() == JProgressBar.HORIZONTAL) {
 155.149 +                //paint each tile horizontally
 155.150 +                for (int i=x-tileWidth+offset; i<=width; i+=tileWidth) {
 155.151 +                    context.getPainter().paintProgressBarForeground(
 155.152 +                            context, g, i, y, tileWidth, height, pBar.getOrientation());
 155.153 +                }
 155.154 +            } else { //JProgressBar.VERTICAL
 155.155 +                //paint each tile vertically
 155.156 +                for (int i=y-offset; i<height+tileWidth; i+=tileWidth) {
 155.157 +                    context.getPainter().paintProgressBarForeground(
 155.158 +                            context, g, x, i, width, tileWidth, pBar.getOrientation());
 155.159 +                }
 155.160 +            }
 155.161 +            g.setClip(clip);
 155.162 +        } else {
 155.163 +            context.getPainter().paintProgressBarForeground(context, g,
 155.164 +                    x, y, width, height, pBar.getOrientation());
 155.165 +        }
 155.166 +
 155.167 +        if (pBar.isStringPainted()) {
 155.168              paintText(context, g, pBar.getString());
 155.169          }
 155.170      }
 155.171  
 155.172      protected void paintText(SynthContext context, Graphics g,
 155.173              String title) {
 155.174 -        Font font = context.getStyle().getFont(context);
 155.175 -        FontMetrics metrics = SwingUtilities2.getFontMetrics(progressBar, g,
 155.176 -                                                             font);
 155.177 +        if (progressBar.isStringPainted()) {
 155.178 +            SynthStyle style = context.getStyle();
 155.179 +            Font font = style.getFont(context);
 155.180 +            FontMetrics fm = SwingUtilities2.getFontMetrics(
 155.181 +                    progressBar, g, font);
 155.182 +            int strLength = style.getGraphicsUtils(context).
 155.183 +                computeStringWidth(context, font, fm, title);
 155.184 +            Rectangle bounds = progressBar.getBounds();
 155.185  
 155.186 -        if (progressBar.isStringPainted()) {
 155.187 -            String pBarString = progressBar.getString();
 155.188 -            Rectangle bounds = progressBar.getBounds();
 155.189 -            int strLength = context.getStyle().getGraphicsUtils(context).
 155.190 -                computeStringWidth(context, font, metrics, pBarString);
 155.191 +            if (rotateText &&
 155.192 +                    progressBar.getOrientation() == JProgressBar.VERTICAL){
 155.193 +                Graphics2D g2 = (Graphics2D)g;
 155.194 +                // Calculate the position for the text.
 155.195 +                Point textPos;
 155.196 +                AffineTransform rotation;
 155.197 +                if (progressBar.getComponentOrientation().isLeftToRight()){
 155.198 +                    rotation = AffineTransform.getRotateInstance(-Math.PI/2);
 155.199 +                    textPos = new Point(
 155.200 +                        (bounds.width+fm.getAscent()-fm.getDescent())/2,
 155.201 +                           (bounds.height+strLength)/2);
 155.202 +                } else {
 155.203 +                    rotation = AffineTransform.getRotateInstance(Math.PI/2);
 155.204 +                    textPos = new Point(
 155.205 +                        (bounds.width-fm.getAscent()+fm.getDescent())/2,
 155.206 +                           (bounds.height-strLength)/2);
 155.207 +                }
 155.208  
 155.209 -            // Calculate the bounds for the text.
 155.210 -            Rectangle textRect = new Rectangle(
 155.211 -                (bounds.width / 2) - (strLength / 2),
 155.212 -                (bounds.height -
 155.213 -                    (metrics.getAscent() + metrics.getDescent())) / 2,
 155.214 -                0, 0);
 155.215 +                // Progress bar isn't wide enough for the font.  Don't paint it.
 155.216 +                if (textPos.x < 0) {
 155.217 +                    return;
 155.218 +                }
 155.219  
 155.220 -            // Progress bar isn't tall enough for the font.  Don't paint it.
 155.221 -            if (textRect.y < 0) {
 155.222 -                return;
 155.223 +                // Paint the text.
 155.224 +                font = font.deriveFont(rotation);
 155.225 +                g2.setFont(font);
 155.226 +                g2.setColor(style.getColor(context, ColorType.TEXT_FOREGROUND));
 155.227 +                style.getGraphicsUtils(context).paintText(context, g, title,
 155.228 +                                                     textPos.x, textPos.y, -1);
 155.229 +            } else {
 155.230 +                // Calculate the bounds for the text.
 155.231 +                Rectangle textRect = new Rectangle(
 155.232 +                    (bounds.width / 2) - (strLength / 2),
 155.233 +                    (bounds.height -
 155.234 +                        (fm.getAscent() + fm.getDescent())) / 2,
 155.235 +                    0, 0);
 155.236 +
 155.237 +                // Progress bar isn't tall enough for the font.  Don't paint it.
 155.238 +                if (textRect.y < 0) {
 155.239 +                    return;
 155.240 +                }
 155.241 +
 155.242 +                // Paint the text.
 155.243 +                g.setColor(style.getColor(context, ColorType.TEXT_FOREGROUND));
 155.244 +                g.setFont(font);
 155.245 +                style.getGraphicsUtils(context).paintText(context, g, title,
 155.246 +                                                     textRect.x, textRect.y, -1);
 155.247              }
 155.248 -
 155.249 -            // Paint the text.
 155.250 -            SynthStyle style = context.getStyle();
 155.251 -            g.setColor(style.getColor(context, ColorType.TEXT_FOREGROUND));
 155.252 -            g.setFont(style.getFont(context));
 155.253 -            style.getGraphicsUtils(context).paintText(context, g, title,
 155.254 -                                                 textRect.x, textRect.y, -1);
 155.255          }
 155.256      }
 155.257  
 155.258 @@ -244,34 +330,67 @@
 155.259      }
 155.260  
 155.261      public void propertyChange(PropertyChangeEvent e) {
 155.262 -        if (SynthLookAndFeel.shouldUpdateStyle(e)) {
 155.263 +        if (SynthLookAndFeel.shouldUpdateStyle(e) ||
 155.264 +                "indeterminate".equals(e.getPropertyName())) {
 155.265              updateStyle((JProgressBar)e.getSource());
 155.266          }
 155.267      }
 155.268  
 155.269 +    @Override
 155.270      public Dimension getPreferredSize(JComponent c) {
 155.271 -        Dimension       size;
 155.272 -        Insets          border = progressBar.getInsets();
 155.273 -        FontMetrics     fontSizer = progressBar.getFontMetrics(
 155.274 -                                                  progressBar.getFont());
 155.275 +        Dimension size = null;
 155.276 +        Insets border = progressBar.getInsets();
 155.277 +        FontMetrics fontSizer = progressBar.getFontMetrics(progressBar.getFont());
 155.278 +        String progString = progressBar.getString();
 155.279 +        int stringHeight = fontSizer.getHeight() + fontSizer.getDescent();
 155.280 +
 155.281          if (progressBar.getOrientation() == JProgressBar.HORIZONTAL) {
 155.282              size = new Dimension(getPreferredInnerHorizontal());
 155.283 +            if (progressBar.isStringPainted()) {
 155.284 +                // adjust the height if necessary to make room for the string
 155.285 +                if (stringHeight > size.height) {
 155.286 +                    size.height = stringHeight;
 155.287 +                }
 155.288 +
 155.289 +                // adjust the width if necessary to make room for the string
 155.290 +                int stringWidth = SwingUtilities2.stringWidth(
 155.291 +                                       progressBar, fontSizer, progString);
 155.292 +                if (stringWidth > size.width) {
 155.293 +                    size.width = stringWidth;
 155.294 +                }
 155.295 +            }
 155.296          } else {
 155.297              size = new Dimension(getPreferredInnerVertical());
 155.298 +            if (progressBar.isStringPainted()) {
 155.299 +                // make sure the width is big enough for the string
 155.300 +                if (stringHeight > size.width) {
 155.301 +                    size.width = stringHeight;
 155.302 +                }
 155.303 +
 155.304 +                // make sure the height is big enough for the string
 155.305 +                int stringWidth = SwingUtilities2.stringWidth(
 155.306 +                                       progressBar, fontSizer, progString);
 155.307 +                if (stringWidth > size.height) {
 155.308 +                    size.height = stringWidth;
 155.309 +                }
 155.310 +            }
 155.311          }
 155.312 -        // Ensure that the progress string will fit.
 155.313 -        if (progressBar.isStringPainted()) {
 155.314 -            String progString = progressBar.getString();
 155.315 -            int stringHeight = fontSizer.getHeight() +
 155.316 -                    fontSizer.getDescent();
 155.317 -            if (stringHeight > size.height) {
 155.318 -                size.height = stringHeight;
 155.319 -            }
 155.320 -            // This is also for completeness.
 155.321 -            int stringWidth = SwingUtilities2.stringWidth(
 155.322 -                                   progressBar, fontSizer, progString);
 155.323 -            if (stringWidth > size.width) {
 155.324 -                size.width = stringWidth;
 155.325 +
 155.326 +        // handle scaling for sizeVarients for special case components. The
 155.327 +        // key "JComponent.sizeVariant" scales for large/small/mini
 155.328 +        // components are based on Apples LAF
 155.329 +        String scaleKey = (String)progressBar.getClientProperty(
 155.330 +                "JComponent.sizeVariant");
 155.331 +        if (scaleKey != null){
 155.332 +            if ("large".equals(scaleKey)){
 155.333 +                size.width *= 1.15f;
 155.334 +                size.height *= 1.15f;
 155.335 +            } else if ("small".equals(scaleKey)){
 155.336 +                size.width *= 0.90f;
 155.337 +                size.height *= 0.90f;
 155.338 +            } else if ("mini".equals(scaleKey)){
 155.339 +                size.width *= 0.784f;
 155.340 +                size.height *= 0.784f;
 155.341              }
 155.342          }
 155.343  
   156.1 --- a/src/share/classes/javax/swing/plaf/synth/SynthScrollBarUI.java	Tue Apr 28 14:43:44 2009 -0700
   156.2 +++ b/src/share/classes/javax/swing/plaf/synth/SynthScrollBarUI.java	Wed Apr 29 00:27:46 2009 -0700
   156.3 @@ -26,12 +26,8 @@
   156.4  package javax.swing.plaf.synth;
   156.5  
   156.6  import java.awt.*;
   156.7 -import java.awt.event.*;
   156.8 -
   156.9  import java.beans.*;
  156.10 -
  156.11  import javax.swing.*;
  156.12 -import javax.swing.event.*;
  156.13  import javax.swing.plaf.*;
  156.14  import javax.swing.plaf.basic.*;
  156.15  import sun.swing.plaf.synth.SynthUI;
  156.16 @@ -52,12 +48,23 @@
  156.17      private boolean validMinimumThumbSize;
  156.18      private int scrollBarWidth;
  156.19  
  156.20 +    //These two variables should be removed when the corrosponding ones in BasicScrollBarUI are made protected
  156.21 +    private int incrGap;
  156.22 +    private int decrGap;
  156.23  
  156.24      public static ComponentUI createUI(JComponent c)    {
  156.25          return new SynthScrollBarUI();
  156.26      }
  156.27  
  156.28      protected void installDefaults() {
  156.29 +        //NOTE: This next line of code was added because, since incrGap and decrGap in
  156.30 +        //BasicScrollBarUI are private, I need to have some way of updating them.
  156.31 +        //This is an incomplete solution (since it implies that the incrGap and decrGap
  156.32 +        //are set once, and not reset per state. Probably ok, but not always ok).
  156.33 +        //This line of code should be removed at the same time that incrGap and
  156.34 +        //decrGap are removed and made protected in the super class.
  156.35 +        super.installDefaults();
  156.36 +
  156.37          trackHighlight = NO_HIGHLIGHT;
  156.38          if (scrollbar.getLayout() == null ||
  156.39                       (scrollbar.getLayout() instanceof UIResource)) {
  156.40 @@ -89,6 +96,31 @@
  156.41              if (maximumThumbSize == null) {
  156.42                  maximumThumbSize = new Dimension(4096, 4097);
  156.43              }
  156.44 +
  156.45 +            incrGap = style.getInt(context, "ScrollBar.incrementButtonGap", 0);
  156.46 +            decrGap = style.getInt(context, "ScrollBar.decrementButtonGap", 0);
  156.47 +
  156.48 +            // handle scaling for sizeVarients for special case components. The
  156.49 +            // key "JComponent.sizeVariant" scales for large/small/mini
  156.50 +            // components are based on Apples LAF
  156.51 +            String scaleKey = (String)scrollbar.getClientProperty(
  156.52 +                    "JComponent.sizeVariant");
  156.53 +            if (scaleKey != null){
  156.54 +                if ("large".equals(scaleKey)){
  156.55 +                    scrollBarWidth *= 1.15;
  156.56 +                    incrGap *= 1.15;
  156.57 +                    decrGap *= 1.15;
  156.58 +                } else if ("small".equals(scaleKey)){
  156.59 +                    scrollBarWidth *= 0.857;
  156.60 +                    incrGap *= 0.857;
  156.61 +                    decrGap *= 0.857;
  156.62 +                } else if ("mini".equals(scaleKey)){
  156.63 +                    scrollBarWidth *= 0.714;
  156.64 +                    incrGap *= 0.714;
  156.65 +                    decrGap *= 0.714;
  156.66 +                }
  156.67 +            }
  156.68 +
  156.69              if (oldStyle != null) {
  156.70                  uninstallKeyboardActions();
  156.71                  installKeyboardActions();
  156.72 @@ -274,18 +306,56 @@
  156.73              }
  156.74          }
  156.75          return minimumThumbSize;
  156.76 -
  156.77      }
  156.78  
  156.79 -
  156.80      protected JButton createDecreaseButton(int orientation)  {
  156.81 -        SynthArrowButton synthArrowButton = new SynthArrowButton(orientation);
  156.82 +        SynthArrowButton synthArrowButton = new SynthArrowButton(orientation) {
  156.83 +            @Override
  156.84 +            public boolean contains(int x, int y) {
  156.85 +                if (decrGap < 0) { //there is an overlap between the track and button
  156.86 +                    int width = getWidth();
  156.87 +                    int height = getHeight();
  156.88 +                    if (scrollbar.getOrientation() == JScrollBar.VERTICAL) {
  156.89 +                        //adjust the height by decrGap
  156.90 +                        //Note: decrGap is negative!
  156.91 +                        height += decrGap;
  156.92 +                    } else {
  156.93 +                        //adjust the width by decrGap
  156.94 +                        //Note: decrGap is negative!
  156.95 +                        width += decrGap;
  156.96 +                    }
  156.97 +                    return (x >= 0) && (x < width) && (y >= 0) && (y < height);
  156.98 +                }
  156.99 +                return super.contains(x, y);
 156.100 +            }
 156.101 +        };
 156.102          synthArrowButton.setName("ScrollBar.button");
 156.103          return synthArrowButton;
 156.104      }
 156.105  
 156.106      protected JButton createIncreaseButton(int orientation)  {
 156.107 -        SynthArrowButton synthArrowButton = new SynthArrowButton(orientation);
 156.108 +        SynthArrowButton synthArrowButton = new SynthArrowButton(orientation) {
 156.109 +            @Override
 156.110 +            public boolean contains(int x, int y) {
 156.111 +                if (incrGap < 0) { //there is an overlap between the track and button
 156.112 +                    int width = getWidth();
 156.113 +                    int height = getHeight();
 156.114 +                    if (scrollbar.getOrientation() == JScrollBar.VERTICAL) {
 156.115 +                        //adjust the height and y by incrGap
 156.116 +                        //Note: incrGap is negative!
 156.117 +                        height += incrGap;
 156.118 +                        y += incrGap;
 156.119 +                    } else {
 156.120 +                        //adjust the width and x by incrGap
 156.121 +                        //Note: incrGap is negative!
 156.122 +                        width += incrGap;
 156.123 +                        x += incrGap;
 156.124 +                    }
 156.125 +                    return (x >= 0) && (x < width) && (y >= 0) && (y < height);
 156.126 +                }
 156.127 +                return super.contains(x, y);
 156.128 +            }
 156.129 +        };
 156.130          synthArrowButton.setName("ScrollBar.button");
 156.131          return synthArrowButton;
 156.132      }
   157.1 --- a/src/share/classes/javax/swing/plaf/synth/SynthScrollPaneUI.java	Tue Apr 28 14:43:44 2009 -0700
   157.2 +++ b/src/share/classes/javax/swing/plaf/synth/SynthScrollPaneUI.java	Wed Apr 29 00:27:46 2009 -0700
   157.3 @@ -26,7 +26,7 @@
   157.4  package javax.swing.plaf.synth;
   157.5  
   157.6  import javax.swing.*;
   157.7 -import javax.swing.event.*;
   157.8 +import javax.swing.text.JTextComponent;
   157.9  import javax.swing.border.*;
  157.10  import javax.swing.plaf.*;
  157.11  import javax.swing.plaf.basic.*;
  157.12 @@ -35,7 +35,11 @@
  157.13  import java.beans.PropertyChangeEvent;
  157.14  
  157.15  import java.awt.*;
  157.16 -import java.awt.event.*;
  157.17 +import java.awt.event.ContainerListener;
  157.18 +import java.awt.event.ContainerEvent;
  157.19 +import java.awt.event.FocusListener;
  157.20 +import java.awt.event.FocusEvent;
  157.21 +
  157.22  import sun.swing.plaf.synth.SynthUI;
  157.23  
  157.24  
  157.25 @@ -47,11 +51,14 @@
  157.26  class SynthScrollPaneUI extends BasicScrollPaneUI implements
  157.27                   PropertyChangeListener, SynthUI {
  157.28      private SynthStyle style;
  157.29 +    private boolean viewportViewHasFocus = false;
  157.30 +    private ViewportViewFocusHandler viewportViewFocusHandler;
  157.31  
  157.32      public static ComponentUI createUI(JComponent x) {
  157.33          return new SynthScrollPaneUI();
  157.34      }
  157.35  
  157.36 +    @Override
  157.37      public void update(Graphics g, JComponent c) {
  157.38          SynthContext context = getContext(c);
  157.39  
  157.40 @@ -62,6 +69,7 @@
  157.41          context.dispose();
  157.42      }
  157.43  
  157.44 +    @Override
  157.45      public void paint(Graphics g, JComponent c) {
  157.46          SynthContext context = getContext(c);
  157.47  
  157.48 @@ -83,6 +91,7 @@
  157.49          context.getPainter().paintScrollPaneBorder(context, g, x, y, w, h);
  157.50      }
  157.51  
  157.52 +    @Override
  157.53      protected void installDefaults(JScrollPane scrollpane) {
  157.54          updateStyle(scrollpane);
  157.55      }
  157.56 @@ -106,11 +115,21 @@
  157.57      }
  157.58  
  157.59  
  157.60 +    @Override
  157.61      protected void installListeners(JScrollPane c) {
  157.62          super.installListeners(c);
  157.63          c.addPropertyChangeListener(this);
  157.64 +        if (UIManager.getBoolean("ScrollPane.useChildTextComponentFocus")){
  157.65 +            viewportViewFocusHandler = new ViewportViewFocusHandler();
  157.66 +            c.getViewport().addContainerListener(viewportViewFocusHandler);
  157.67 +            Component view = c.getViewport().getView();
  157.68 +            if (view instanceof JTextComponent) {
  157.69 +                view.addFocusListener(viewportViewFocusHandler);
  157.70 +            }
  157.71 +        }
  157.72      }
  157.73  
  157.74 +    @Override
  157.75      protected void uninstallDefaults(JScrollPane c) {
  157.76          SynthContext context = getContext(c, ENABLED);
  157.77  
  157.78 @@ -123,9 +142,18 @@
  157.79      }
  157.80  
  157.81  
  157.82 +    @Override
  157.83      protected void uninstallListeners(JComponent c) {
  157.84          super.uninstallListeners(c);
  157.85          c.removePropertyChangeListener(this);
  157.86 +        if (viewportViewFocusHandler != null) {
  157.87 +            JViewport viewport = ((JScrollPane) c).getViewport();
  157.88 +            viewport.removeContainerListener(viewportViewFocusHandler);
  157.89 +            if (viewport.getView()!= null) {
  157.90 +                viewport.getView().removeFocusListener(viewportViewFocusHandler);
  157.91 +            }
  157.92 +            viewportViewFocusHandler = null;
  157.93 +        }
  157.94      }
  157.95  
  157.96  
  157.97 @@ -145,7 +173,11 @@
  157.98  
  157.99  
 157.100      private int getComponentState(JComponent c) {
 157.101 -        return SynthLookAndFeel.getComponentState(c);
 157.102 +        int baseState = SynthLookAndFeel.getComponentState(c);
 157.103 +        if (viewportViewFocusHandler!=null && viewportViewHasFocus){
 157.104 +            baseState = baseState | FOCUSED;
 157.105 +        }
 157.106 +        return baseState;
 157.107      }
 157.108  
 157.109      public void propertyChange(PropertyChangeEvent e) {
 157.110 @@ -167,6 +199,7 @@
 157.111              }
 157.112          }
 157.113  
 157.114 +        @Override
 157.115          public void paintBorder(Component c, Graphics g, int x, int y,
 157.116                              int width, int height) {
 157.117              JComponent jc = (JComponent)c;
 157.118 @@ -182,6 +215,7 @@
 157.119              context.dispose();
 157.120          }
 157.121  
 157.122 +        @Override
 157.123          public Insets getBorderInsets(Component c, Insets insets) {
 157.124              if (insets == null) {
 157.125                  return new Insets(this.insets.top, this.insets.left,
 157.126 @@ -194,8 +228,39 @@
 157.127              return insets;
 157.128          }
 157.129  
 157.130 +        @Override
 157.131          public boolean isBorderOpaque() {
 157.132              return false;
 157.133          }
 157.134      }
 157.135 +
 157.136 +    /**
 157.137 +     * Handle keeping track of the viewport's view's focus
 157.138 +     */
 157.139 +    private class ViewportViewFocusHandler implements ContainerListener,
 157.140 +            FocusListener{
 157.141 +        public void componentAdded(ContainerEvent e) {
 157.142 +            if (e.getChild() instanceof JTextComponent) {
 157.143 +                e.getChild().addFocusListener(this);
 157.144 +                viewportViewHasFocus = e.getChild().isFocusOwner();
 157.145 +                scrollpane.repaint();
 157.146 +            }
 157.147 +        }
 157.148 +
 157.149 +        public void componentRemoved(ContainerEvent e) {
 157.150 +            if (e.getChild() instanceof JTextComponent) {
 157.151 +                e.getChild().removeFocusListener(this);
 157.152 +            }
 157.153 +        }
 157.154 +
 157.155 +        public void focusGained(FocusEvent e) {
 157.156 +            viewportViewHasFocus = true;
 157.157 +            scrollpane.repaint();
 157.158 +        }
 157.159 +
 157.160 +        public void focusLost(FocusEvent e) {
 157.161 +            viewportViewHasFocus = false;
 157.162 +            scrollpane.repaint();
 157.163 +        }
 157.164 +    }
 157.165  }
   158.1 --- a/src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java	Tue Apr 28 14:43:44 2009 -0700
   158.2 +++ b/src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java	Wed Apr 29 00:27:46 2009 -0700
   158.3 @@ -53,6 +53,20 @@
   158.4      protected Rectangle valueRect = new Rectangle();
   158.5      protected boolean paintValue;
   158.6  
   158.7 +    /**
   158.8 +     * When a JSlider is used as a renderer in a JTable, its layout is not
   158.9 +     * being recomputed even though the size is changing. Even though there
  158.10 +     * is a ComponentListener installed, it is not being notified. As such,
  158.11 +     * at times when being asked to paint the layout should first be redone.
  158.12 +     * At the end of the layout method we set this lastSize variable, which
  158.13 +     * represents the size of the slider the last time it was layed out.
  158.14 +     *
  158.15 +     * In the paint method we then check to see that this is accurate, that
  158.16 +     * the slider has not changed sizes since being last layed out. If necessary
  158.17 +     * we recompute the layout.
  158.18 +     */
  158.19 +    private Dimension lastSize = null;
  158.20 +
  158.21      private int trackHeight;
  158.22      private int trackBorder;
  158.23      private int thumbWidth;
  158.24 @@ -63,7 +77,8 @@
  158.25      private SynthStyle sliderThumbStyle;
  158.26  
  158.27      /** Used to determine the color to paint the thumb. */
  158.28 -    private transient boolean thumbActive;
  158.29 +    private transient boolean thumbActive; //happens on rollover, and when pressed
  158.30 +    private transient boolean thumbPressed; //happens when mouse was depressed while over thumb
  158.31  
  158.32      ///////////////////////////////////////////////////
  158.33      // ComponentUI Interface Implementation methods
  158.34 @@ -119,6 +134,24 @@
  158.35              thumbHeight =
  158.36                  style.getInt(context, "Slider.thumbHeight", 14);
  158.37  
  158.38 +            // handle scaling for sizeVarients for special case components. The
  158.39 +            // key "JComponent.sizeVariant" scales for large/small/mini
  158.40 +            // components are based on Apples LAF
  158.41 +            String scaleKey = (String)slider.getClientProperty(
  158.42 +                    "JComponent.sizeVariant");
  158.43 +            if (scaleKey != null){
  158.44 +                if ("large".equals(scaleKey)){
  158.45 +                    thumbWidth *= 1.15;
  158.46 +                    thumbHeight *= 1.15;
  158.47 +                } else if ("small".equals(scaleKey)){
  158.48 +                    thumbWidth *= 0.857;
  158.49 +                    thumbHeight *= 0.857;
  158.50 +                } else if ("mini".equals(scaleKey)){
  158.51 +                    thumbWidth *= 0.784;
  158.52 +                    thumbHeight *= 0.784;
  158.53 +                }
  158.54 +            }
  158.55 +
  158.56              trackBorder =
  158.57                  style.getInt(context, "Slider.trackBorder", 1);
  158.58  
  158.59 @@ -152,6 +185,11 @@
  158.60          setThumbActive(thumbRect.contains(x, y));
  158.61      }
  158.62  
  158.63 +    private void updateThumbState(int x, int y, boolean pressed) {
  158.64 +        updateThumbState(x, y);
  158.65 +        setThumbPressed(pressed);
  158.66 +    }
  158.67 +
  158.68      private void setThumbActive(boolean active) {
  158.69          if (thumbActive != active) {
  158.70              thumbActive = active;
  158.71 @@ -159,6 +197,13 @@
  158.72          }
  158.73      }
  158.74  
  158.75 +    private void setThumbPressed(boolean pressed) {
  158.76 +        if (thumbPressed != pressed) {
  158.77 +            thumbPressed = pressed;
  158.78 +            slider.repaint(thumbRect);
  158.79 +        }
  158.80 +    }
  158.81 +
  158.82      public int getBaseline(JComponent c, int width, int height) {
  158.83          if (c == null) {
  158.84              throw new NullPointerException("Component must be non-null");
  158.85 @@ -418,6 +463,7 @@
  158.86              }
  158.87          }
  158.88          context.dispose();
  158.89 +        lastSize = slider.getSize();
  158.90      }
  158.91  
  158.92      /**
  158.93 @@ -667,7 +713,9 @@
  158.94  
  158.95      private int getComponentState(JComponent c, Region region) {
  158.96          if (region == Region.SLIDER_THUMB && thumbActive &&c.isEnabled()) {
  158.97 -            return MOUSE_OVER;
  158.98 +            int state = thumbPressed ? PRESSED : MOUSE_OVER;
  158.99 +            if (c.isFocusOwner()) state |= FOCUSED;
 158.100 +            return state;
 158.101          }
 158.102          return SynthLookAndFeel.getComponentState(c);
 158.103      }
 158.104 @@ -693,6 +741,10 @@
 158.105          recalculateIfOrientationChanged();
 158.106          Rectangle clip = g.getClipBounds();
 158.107  
 158.108 +        if (lastSize == null || !lastSize.equals(slider.getSize())) {
 158.109 +            calculateGeometry();
 158.110 +        }
 158.111 +
 158.112          if (paintValue) {
 158.113              FontMetrics fm = SwingUtilities2.getFontMetrics(slider, g);
 158.114              int labelWidth = context.getStyle().getGraphicsUtils(context).
 158.115 @@ -781,9 +833,14 @@
 158.116              setThumbActive(false);
 158.117          }
 158.118  
 158.119 +        public void mousePressed(MouseEvent e) {
 158.120 +            super.mousePressed(e);
 158.121 +            setThumbPressed(thumbRect.contains(e.getX(), e.getY()));
 158.122 +        }
 158.123 +
 158.124          public void mouseReleased(MouseEvent e) {
 158.125              super.mouseReleased(e);
 158.126 -            updateThumbState(e.getX(), e.getY());
 158.127 +            updateThumbState(e.getX(), e.getY(), false);
 158.128          }
 158.129  
 158.130          public void mouseDragged(MouseEvent e) {
 158.131 @@ -814,6 +871,7 @@
 158.132  
 158.133                  if (drawInverted()) {
 158.134                      trackBottom = vMax;
 158.135 +                    trackTop = trackTop + halfThumbHeight;
 158.136                  } else {
 158.137                      trackTop = vMax;
 158.138                  }
   159.1 --- a/src/share/classes/javax/swing/plaf/synth/SynthSpinnerUI.java	Tue Apr 28 14:43:44 2009 -0700
   159.2 +++ b/src/share/classes/javax/swing/plaf/synth/SynthSpinnerUI.java	Wed Apr 29 00:27:46 2009 -0700
   159.3 @@ -26,17 +26,12 @@
   159.4  
   159.5  import java.awt.*;
   159.6  import java.awt.event.*;
   159.7 -import java.text.ParseException;
   159.8  
   159.9  import javax.swing.*;
  159.10 -import javax.swing.event.*;
  159.11  import javax.swing.plaf.*;
  159.12  import javax.swing.plaf.basic.BasicSpinnerUI;
  159.13 -import javax.swing.text.*;
  159.14  
  159.15  import java.beans.*;
  159.16 -import java.text.*;
  159.17 -import java.util.*;
  159.18  import sun.swing.plaf.synth.SynthUI;
  159.19  
  159.20  /**
  159.21 @@ -48,7 +43,16 @@
  159.22  class SynthSpinnerUI extends BasicSpinnerUI implements PropertyChangeListener,
  159.23          SynthUI {
  159.24      private SynthStyle style;
  159.25 -
  159.26 +    /**
  159.27 +     * A FocusListener implementation which causes the entire spinner to be
  159.28 +     * repainted whenever the editor component (typically a text field) becomes
  159.29 +     * focused, or loses focus. This is necessary because since SynthSpinnerUI
  159.30 +     * is composed of an editor and two buttons, it is necessary that all three
  159.31 +     * components indicate that they are "focused" so that they can be drawn
  159.32 +     * appropriately. The repaint is used to ensure that the buttons are drawn
  159.33 +     * in the new focused or unfocused state, mirroring that of the editor.
  159.34 +     */
  159.35 +    private EditorFocusHandler editorFocusHandler = new EditorFocusHandler();
  159.36  
  159.37      /**
  159.38       * Returns a new instance of SynthSpinnerUI.
  159.39 @@ -61,9 +65,17 @@
  159.40          return new SynthSpinnerUI();
  159.41      }
  159.42  
  159.43 +    @Override
  159.44      protected void installListeners() {
  159.45          super.installListeners();
  159.46          spinner.addPropertyChangeListener(this);
  159.47 +        JComponent editor = spinner.getEditor();
  159.48 +        if (editor instanceof JSpinner.DefaultEditor) {
  159.49 +            JTextField tf = ((JSpinner.DefaultEditor)editor).getTextField();
  159.50 +            if (tf != null) {
  159.51 +                tf.addFocusListener(editorFocusHandler);
  159.52 +            }
  159.53 +        }
  159.54      }
  159.55  
  159.56      /**
  159.57 @@ -74,9 +86,17 @@
  159.58       *
  159.59       * @see #installListeners
  159.60       */
  159.61 +    @Override
  159.62      protected void uninstallListeners() {
  159.63          super.uninstallListeners();
  159.64          spinner.removePropertyChangeListener(this);
  159.65 +        JComponent editor = spinner.getEditor();
  159.66 +        if (editor instanceof JSpinner.DefaultEditor) {
  159.67 +            JTextField tf = ((JSpinner.DefaultEditor)editor).getTextField();
  159.68 +            if (tf != null) {
  159.69 +                tf.removeFocusListener(editorFocusHandler);
  159.70 +            }
  159.71 +        }
  159.72      }
  159.73  
  159.74      /**
  159.75 @@ -233,6 +253,18 @@
  159.76      protected void replaceEditor(JComponent oldEditor, JComponent newEditor) {
  159.77          spinner.remove(oldEditor);
  159.78          spinner.add(newEditor, "Editor");
  159.79 +        if (oldEditor instanceof JSpinner.DefaultEditor) {
  159.80 +            JTextField tf = ((JSpinner.DefaultEditor)oldEditor).getTextField();
  159.81 +            if (tf != null) {
  159.82 +                tf.removeFocusListener(editorFocusHandler);
  159.83 +            }
  159.84 +        }
  159.85 +        if (newEditor instanceof JSpinner.DefaultEditor) {
  159.86 +            JTextField tf = ((JSpinner.DefaultEditor)newEditor).getTextField();
  159.87 +            if (tf != null) {
  159.88 +                tf.addFocusListener(editorFocusHandler);
  159.89 +            }
  159.90 +        }
  159.91      }
  159.92  
  159.93      private void updateEditorAlignment(JComponent editor) {
  159.94 @@ -240,10 +272,14 @@
  159.95              SynthContext context = getContext(spinner);
  159.96              Integer alignment = (Integer)context.getStyle().get(
  159.97                      context, "Spinner.editorAlignment");
  159.98 +            JTextField text = ((JSpinner.DefaultEditor)editor).getTextField();
  159.99              if (alignment != null) {
 159.100 -                JTextField text = ((JSpinner.DefaultEditor)editor).getTextField();
 159.101                  text.setHorizontalAlignment(alignment);
 159.102 +
 159.103              }
 159.104 +            // copy across the sizeVariant property to the editor
 159.105 +            text.putClientProperty("JComponent.sizeVariant",
 159.106 +                    spinner.getClientProperty("JComponent.sizeVariant"));
 159.107          }
 159.108      }
 159.109  
 159.110 @@ -404,4 +440,38 @@
 159.111              }
 159.112          }
 159.113      }
 159.114 +
 159.115 +    /** Listen to editor text field focus changes and repaint whole spinner */
 159.116 +    private class EditorFocusHandler implements FocusListener{
 159.117 +        /** Invoked when a editor text field gains the keyboard focus. */
 159.118 +        public void focusGained(FocusEvent e) {
 159.119 +            spinner.repaint();
 159.120 +        }
 159.121 +
 159.122 +        /** Invoked when a editor text field loses the keyboard focus. */
 159.123 +        public void focusLost(FocusEvent e) {
 159.124 +            spinner.repaint();
 159.125 +        }
 159.126 +    }
 159.127 +
 159.128 +    /** Override the arrowbuttons focus handling to follow the text fields focus */
 159.129 +    private class SpinnerArrowButton extends SynthArrowButton{
 159.130 +        public SpinnerArrowButton(int direction) {
 159.131 +            super(direction);
 159.132 +        }
 159.133 +
 159.134 +        @Override
 159.135 +        public boolean isFocusOwner() {
 159.136 +            if (spinner == null){
 159.137 +                return super.isFocusOwner();
 159.138 +            } else if (spinner.getEditor() instanceof JSpinner.DefaultEditor){
 159.139 +                return ((JSpinner.DefaultEditor)spinner.getEditor())
 159.140 +                        .getTextField().isFocusOwner();
 159.141 +            } else if (spinner.getEditor()!= null) {
 159.142 +                return spinner.getEditor().isFocusOwner();
 159.143 +            } else {
 159.144 +                return super.isFocusOwner();
 159.145 +            }
 159.146 +        }
 159.147 +    }
 159.148  }
   160.1 --- a/src/share/classes/javax/swing/plaf/synth/SynthStyle.java	Tue Apr 28 14:43:44 2009 -0700
   160.2 +++ b/src/share/classes/javax/swing/plaf/synth/SynthStyle.java	Wed Apr 29 00:27:46 2009 -0700
   160.3 @@ -32,6 +32,7 @@
   160.4  import javax.swing.text.DefaultEditorKit;
   160.5  import java.util.HashMap;
   160.6  import java.util.Map;
   160.7 +import javax.swing.text.JTextComponent;
   160.8  import sun.swing.plaf.synth.SynthUI;
   160.9  
  160.10  /**
  160.11 @@ -758,28 +759,48 @@
  160.12      public Color getColor(SynthContext context, ColorType type) {
  160.13          JComponent c = context.getComponent();
  160.14          Region id = context.getRegion();
  160.15 -        int cs = context.getComponentState();
  160.16 -        // For the enabled state, prefer the widget's colors
  160.17 -        if (!id.isSubregion() && cs == SynthConstants.ENABLED) {
  160.18 +
  160.19 +        if ((context.getComponentState() & SynthConstants.DISABLED) != 0) {
  160.20 +            //This component is disabled, so return the disabled color.
  160.21 +            //In some cases this means ignoring the color specified by the
  160.22 +            //developer on the component. In other cases it means using a
  160.23 +            //specified disabledTextColor, such as on JTextComponents.
  160.24 +            //For example, JLabel doesn't specify a disabled color that the
  160.25 +            //developer can set, yet it should have a disabled color to the
  160.26 +            //text when the label is disabled. This code allows for that.
  160.27 +            if (c instanceof JTextComponent) {
  160.28 +                JTextComponent txt = (JTextComponent)c;
  160.29 +                Color disabledColor = txt.getDisabledTextColor();
  160.30 +                if (disabledColor == null || disabledColor instanceof UIResource) {
  160.31 +                    return getColorForState(context, type);
  160.32 +                }
  160.33 +            } else if (c instanceof JLabel &&
  160.34 +                            (type == ColorType.FOREGROUND ||
  160.35 +                             type == ColorType.TEXT_FOREGROUND)) {
  160.36 +                return getColorForState(context, type);
  160.37 +            }
  160.38 +        }
  160.39 +
  160.40 +        // If the developer has specified a color, prefer it. Otherwise, get
  160.41 +        // the color for the state.
  160.42 +        Color color = null;
  160.43 +        if (!id.isSubregion()) {
  160.44              if (type == ColorType.BACKGROUND) {
  160.45 -                return c.getBackground();
  160.46 +                color = c.getBackground();
  160.47              }
  160.48              else if (type == ColorType.FOREGROUND) {
  160.49 -                return c.getForeground();
  160.50 +                color = c.getForeground();
  160.51              }
  160.52              else if (type == ColorType.TEXT_FOREGROUND) {
  160.53 -                // If getForeground returns a non-UIResource it means the
  160.54 -                // developer has explicitly set the foreground, use it over
  160.55 -                // that of TEXT_FOREGROUND as that is typically the expected
  160.56 -                // behavior.
  160.57 -                Color color = c.getForeground();
  160.58 -                if (!(color instanceof UIResource)) {
  160.59 -                    return color;
  160.60 -                }
  160.61 +                color = c.getForeground();
  160.62              }
  160.63          }
  160.64 -        // Then use what we've locally defined
  160.65 -        Color color = getColorForState(context, type);
  160.66 +
  160.67 +        if (color == null || color instanceof UIResource) {
  160.68 +            // Then use what we've locally defined
  160.69 +            color = getColorForState(context, type);
  160.70 +        }
  160.71 +
  160.72          if (color == null) {
  160.73              // No color, fallback to that of the widget.
  160.74              if (type == ColorType.BACKGROUND ||
   161.1 --- a/src/share/classes/javax/swing/plaf/synth/SynthTabbedPaneUI.java	Tue Apr 28 14:43:44 2009 -0700
   161.2 +++ b/src/share/classes/javax/swing/plaf/synth/SynthTabbedPaneUI.java	Wed Apr 29 00:27:46 2009 -0700
   161.3 @@ -26,7 +26,6 @@
   161.4  package javax.swing.plaf.synth;
   161.5  
   161.6  import javax.swing.*;
   161.7 -import javax.swing.event.*;
   161.8  import javax.swing.plaf.*;
   161.9  import javax.swing.plaf.basic.*;
  161.10  import javax.swing.text.View;
  161.11 @@ -35,8 +34,6 @@
  161.12  import java.awt.event.*;
  161.13  import java.beans.PropertyChangeListener;
  161.14  import java.beans.PropertyChangeEvent;
  161.15 -import java.util.Vector;
  161.16 -import java.util.Hashtable;
  161.17  import sun.swing.plaf.synth.SynthUI;
  161.18  import sun.swing.SwingUtilities2;
  161.19  
  161.20 @@ -50,6 +47,40 @@
  161.21   * insets for the selected tab.
  161.22   */
  161.23  class SynthTabbedPaneUI extends BasicTabbedPaneUI implements SynthUI, PropertyChangeListener  {
  161.24 +    /**
  161.25 +     * <p>If non-zero, tabOverlap indicates the amount that the tab bounds
  161.26 +     * should be altered such that they would overlap with a tab on either the
  161.27 +     * leading or trailing end of a run (ie: in TOP, this would be on the left
  161.28 +     * or right).</p>
  161.29 +
  161.30 +     * <p>A positive overlap indicates that tabs should overlap right/down,
  161.31 +     * while a negative overlap indicates tha tabs should overlap left/up.</p>
  161.32 +     *
  161.33 +     * <p>When tabOverlap is specified, it both changes the x position and width
  161.34 +     * of the tab if in TOP or BOTTOM placement, and changes the y position and
  161.35 +     * height if in LEFT or RIGHT placement.</p>
  161.36 +     *
  161.37 +     * <p>This is done for the following reason. Consider a run of 10 tabs.
  161.38 +     * There are 9 gaps between these tabs. If you specified a tabOverlap of
  161.39 +     * "-1", then each of the tabs "x" values will be shifted left. This leaves
  161.40 +     * 9 pixels of space to the right of the right-most tab unpainted. So, each
  161.41 +     * tab's width is also extended by 1 pixel to make up the difference.</p>
  161.42 +     *
  161.43 +     * <p>This property respects the RTL component orientation.</p>
  161.44 +     */
  161.45 +    private int tabOverlap = 0;
  161.46 +
  161.47 +    /**
  161.48 +     * When a tabbed pane has multiple rows of tabs, this indicates whether
  161.49 +     * the tabs in the upper row(s) should extend to the base of the tab area,
  161.50 +     * or whether they should remain at their normal tab height. This does not
  161.51 +     * affect the bounds of the tabs, only the bounds of area painted by the
  161.52 +     * tabs. The text position does not change. The result is that the bottom
  161.53 +     * border of the upper row of tabs becomes fully obscured by the lower tabs,
  161.54 +     * resulting in a cleaner look.
  161.55 +     */
  161.56 +    private boolean extendTabsToBase = false;
  161.57 +
  161.58      private SynthContext tabAreaContext;
  161.59      private SynthContext tabContext;
  161.60      private SynthContext tabContentContext;
  161.61 @@ -64,6 +95,14 @@
  161.62  
  161.63      private Rectangle tabAreaBounds = new Rectangle();
  161.64  
  161.65 +    //added for the Nimbus look and feel, where the tab area is painted differently depending on the
  161.66 +    //state for the selected tab
  161.67 +    private boolean tabAreaStatesMatchSelectedTab = false;
  161.68 +    //added for the Nimbus LAF to ensure that the labels don't move whether the tab is selected or not
  161.69 +    private boolean nudgeSelectedLabel = true;
  161.70 +
  161.71 +    private boolean selectedTabIsPressed = false;
  161.72 +
  161.73      public static ComponentUI createUI(JComponent c) {
  161.74          return new SynthTabbedPaneUI();
  161.75      }
  161.76 @@ -90,12 +129,19 @@
  161.77          if (style != oldStyle) {
  161.78              tabRunOverlay =
  161.79                  style.getInt(context, "TabbedPane.tabRunOverlay", 0);
  161.80 +            tabOverlap = style.getInt(context, "TabbedPane.tabOverlap", 0);
  161.81 +            extendTabsToBase = style.getBoolean(context,
  161.82 +                    "TabbedPane.extendTabsToBase", false);
  161.83              textIconGap = style.getInt(context, "TabbedPane.textIconGap", 0);
  161.84              selectedTabPadInsets = (Insets)style.get(context,
  161.85                  "TabbedPane.selectedTabPadInsets");
  161.86              if (selectedTabPadInsets == null) {
  161.87                  selectedTabPadInsets = new Insets(0, 0, 0, 0);
  161.88              }
  161.89 +            tabAreaStatesMatchSelectedTab = style.getBoolean(context,
  161.90 +                    "TabbedPane.tabAreaStatesMatchSelectedTab", false);
  161.91 +            nudgeSelectedLabel = style.getBoolean(context,
  161.92 +                    "TabbedPane.nudgeSelectedLabel", true);
  161.93              if (oldStyle != null) {
  161.94                  uninstallKeyboardActions();
  161.95                  installKeyboardActions();
  161.96 @@ -199,6 +245,14 @@
  161.97      }
  161.98  
  161.99      protected JButton createScrollButton(int direction) {
 161.100 +        // added for Nimbus LAF so that it can use the basic arrow buttons
 161.101 +        // UIManager is queried directly here because this is called before
 161.102 +        // updateStyle is called so the style can not be queried directly
 161.103 +        if (UIManager.getBoolean("TabbedPane.useBasicArrows")) {
 161.104 +            JButton btn = super.createScrollButton(direction);
 161.105 +            btn.setBorder(BorderFactory.createEmptyBorder());
 161.106 +            return btn;
 161.107 +        }
 161.108          return new SynthScrollableTabButton(direction);
 161.109      }
 161.110  
 161.111 @@ -208,6 +262,75 @@
 161.112          }
 161.113      }
 161.114  
 161.115 +    /**
 161.116 +     * @inheritDoc
 161.117 +     *
 161.118 +     * Overridden to keep track of whether the selected tab is also pressed.
 161.119 +     */
 161.120 +    @Override
 161.121 +    protected MouseListener createMouseListener() {
 161.122 +        final MouseListener delegate = super.createMouseListener();
 161.123 +        final MouseMotionListener delegate2 = (MouseMotionListener)delegate;
 161.124 +        return new MouseListener() {
 161.125 +            public void mouseClicked(MouseEvent e) { delegate.mouseClicked(e); }
 161.126 +            public void mouseEntered(MouseEvent e) { delegate.mouseEntered(e); }
 161.127 +            public void mouseExited(MouseEvent e) { delegate.mouseExited(e); }
 161.128 +
 161.129 +            public void mousePressed(MouseEvent e) {
 161.130 +                if (!tabPane.isEnabled()) {
 161.131 +                    return;
 161.132 +                }
 161.133 +
 161.134 +                int tabIndex = tabForCoordinate(tabPane, e.getX(), e.getY());
 161.135 +                if (tabIndex >= 0 && tabPane.isEnabledAt(tabIndex)) {
 161.136 +                    if (tabIndex == tabPane.getSelectedIndex()) {
 161.137 +                        // Clicking on selected tab
 161.138 +                        selectedTabIsPressed = true;
 161.139 +                        //TODO need to just repaint the tab area!
 161.140 +                        tabPane.repaint();
 161.141 +                    }
 161.142 +                }
 161.143 +
 161.144 +                //forward the event (this will set the selected index, or none at all
 161.145 +                delegate.mousePressed(e);
 161.146 +            }
 161.147 +
 161.148 +            public void mouseReleased(MouseEvent e) {
 161.149 +                if (selectedTabIsPressed) {
 161.150 +                    selectedTabIsPressed = false;
 161.151 +                    //TODO need to just repaint the tab area!
 161.152 +                    tabPane.repaint();
 161.153 +                }
 161.154 +                //forward the event
 161.155 +                delegate.mouseReleased(e);
 161.156 +
 161.157 +                //hack: The super method *should* be setting the mouse-over property correctly
 161.158 +                //here, but it doesn't. That is, when the mouse is released, whatever tab is below the
 161.159 +                //released mouse should be in rollover state. But, if you select a tab and don't
 161.160 +                //move the mouse, this doesn't happen. Hence, forwarding the event.
 161.161 +                delegate2.mouseMoved(e);
 161.162 +            }
 161.163 +        };
 161.164 +    }
 161.165 +
 161.166 +    @Override
 161.167 +    protected int getTabLabelShiftX(int tabPlacement, int tabIndex, boolean isSelected) {
 161.168 +        if (nudgeSelectedLabel) {
 161.169 +            return super.getTabLabelShiftX(tabPlacement, tabIndex, isSelected);
 161.170 +        } else {
 161.171 +            return 0;
 161.172 +        }
 161.173 +    }
 161.174 +
 161.175 +    @Override
 161.176 +    protected int getTabLabelShiftY(int tabPlacement, int tabIndex, boolean isSelected) {
 161.177 +        if (nudgeSelectedLabel) {
 161.178 +            return super.getTabLabelShiftY(tabPlacement, tabIndex, isSelected);
 161.179 +        } else {
 161.180 +            return 0;
 161.181 +        }
 161.182 +    }
 161.183 +
 161.184      public void update(Graphics g, JComponent c) {
 161.185          SynthContext context = getContext(c);
 161.186  
 161.187 @@ -321,6 +444,20 @@
 161.188                                  Rectangle tabAreaBounds) {
 161.189          Rectangle clipRect = g.getClipBounds();
 161.190  
 161.191 +        //if the tab area's states should match that of the selected tab, then
 161.192 +        //first update the selected tab's states, then set the state
 161.193 +        //for the tab area to match
 161.194 +        //otherwise, restore the tab area's state to ENABLED (which is the
 161.195 +        //only supported state otherwise).
 161.196 +        if (tabAreaStatesMatchSelectedTab && selectedIndex >= 0) {
 161.197 +            updateTabContext(selectedIndex, true, selectedTabIsPressed,
 161.198 +                              (getRolloverTab() == selectedIndex),
 161.199 +                              (getFocusIndex() == selectedIndex));
 161.200 +            ss.setComponentState(tabContext.getComponentState());
 161.201 +        } else {
 161.202 +            ss.setComponentState(SynthConstants.ENABLED);
 161.203 +        }
 161.204 +
 161.205          // Paint the tab area.
 161.206          SynthLookAndFeel.updateSubregion(ss, g, tabAreaBounds);
 161.207          ss.getPainter().paintTabbedPaneTabAreaBackground(ss, g,
 161.208 @@ -362,17 +499,22 @@
 161.209  
 161.210          Rectangle r = null;
 161.211  
 161.212 -        if ((oldRolloverTab >= 0) && (oldRolloverTab < tabPane.getTabCount())) {
 161.213 -            r = getTabBounds(tabPane, oldRolloverTab);
 161.214 -            if (r != null) {
 161.215 -                tabPane.repaint(r);
 161.216 +        if (oldRolloverTab != index && tabAreaStatesMatchSelectedTab) {
 161.217 +            //TODO need to just repaint the tab area!
 161.218 +            tabPane.repaint();
 161.219 +        } else {
 161.220 +            if ((oldRolloverTab >= 0) && (oldRolloverTab < tabPane.getTabCount())) {
 161.221 +                r = getTabBounds(tabPane, oldRolloverTab);
 161.222 +                if (r != null) {
 161.223 +                    tabPane.repaint(r);
 161.224 +                }
 161.225              }
 161.226 -        }
 161.227  
 161.228 -        if (index >= 0) {
 161.229 -            r = getTabBounds(tabPane, index);
 161.230 -            if (r != null) {
 161.231 -                tabPane.repaint(r);
 161.232 +            if (index >= 0) {
 161.233 +                r = getTabBounds(tabPane, index);
 161.234 +                if (r != null) {
 161.235 +                    tabPane.repaint(r);
 161.236 +                }
 161.237              }
 161.238          }
 161.239      }
 161.240 @@ -383,18 +525,51 @@
 161.241          Rectangle tabRect = rects[tabIndex];
 161.242          int selectedIndex = tabPane.getSelectedIndex();
 161.243          boolean isSelected = selectedIndex == tabIndex;
 161.244 -        updateTabContext(tabIndex, isSelected,
 161.245 -                          (getRolloverTab() == tabIndex),
 161.246 -                          (getFocusIndex() == tabIndex));
 161.247 +        updateTabContext(tabIndex, isSelected, isSelected && selectedTabIsPressed,
 161.248 +                            (getRolloverTab() == tabIndex),
 161.249 +                            (getFocusIndex() == tabIndex));
 161.250  
 161.251          SynthLookAndFeel.updateSubregion(ss, g, tabRect);
 161.252 -        tabContext.getPainter().paintTabbedPaneTabBackground(tabContext,
 161.253 -                                g, tabRect.x, tabRect.y, tabRect.width,
 161.254 -                                tabRect.height, tabIndex,
 161.255 -                                tabPane.getTabPlacement());
 161.256 +        int x = tabRect.x;
 161.257 +        int y = tabRect.y;
 161.258 +        int height = tabRect.height;
 161.259 +        int width = tabRect.width;
 161.260 +        int placement = tabPane.getTabPlacement();
 161.261 +        if (extendTabsToBase && runCount > 1) {
 161.262 +            //paint this tab such that its edge closest to the base is equal to
 161.263 +            //edge of the selected tab closest to the base. In terms of the TOP
 161.264 +            //tab placement, this will cause the bottom of each tab to be
 161.265 +            //painted even with the bottom of the selected tab. This is because
 161.266 +            //in each tab placement (TOP, LEFT, BOTTOM, RIGHT) the selected tab
 161.267 +            //is closest to the base.
 161.268 +            if (selectedIndex >= 0) {
 161.269 +                Rectangle r = rects[selectedIndex];
 161.270 +                switch (placement) {
 161.271 +                    case TOP:
 161.272 +                        int bottomY = r.y + r.height;
 161.273 +                        height = bottomY - tabRect.y;
 161.274 +                        break;
 161.275 +                    case LEFT:
 161.276 +                        int rightX = r.x + r.width;
 161.277 +                        width = rightX - tabRect.x;
 161.278 +                        break;
 161.279 +                    case BOTTOM:
 161.280 +                        int topY = r.y;
 161.281 +                        height = (tabRect.y + tabRect.height) - topY;
 161.282 +                        y = topY;
 161.283 +                        break;
 161.284 +                    case RIGHT:
 161.285 +                        int leftX = r.x;
 161.286 +                        width = (tabRect.x + tabRect.width) - leftX;
 161.287 +                        x = leftX;
 161.288 +                        break;
 161.289 +                }
 161.290 +            }
 161.291 +        }
 161.292 +        tabContext.getPainter().paintTabbedPaneTabBackground(tabContext, g,
 161.293 +                x, y, width, height, tabIndex, placement);
 161.294          tabContext.getPainter().paintTabbedPaneTabBorder(tabContext, g,
 161.295 -                   tabRect.x, tabRect.y, tabRect.width, tabRect.height,
 161.296 -                   tabIndex, tabPane.getTabPlacement());
 161.297 +                x, y, width, height, tabIndex, placement);
 161.298  
 161.299          if (tabPane.getTabComponentAt(tabIndex) == null) {
 161.300              String title = tabPane.getTitleAt(tabIndex);
 161.301 @@ -561,7 +736,7 @@
 161.302      }
 161.303  
 161.304      protected Insets getTabInsets(int tabPlacement, int tabIndex) {
 161.305 -        updateTabContext(tabIndex, false, false,
 161.306 +        updateTabContext(tabIndex, false, false, false,
 161.307                            (getFocusIndex() == tabIndex));
 161.308          return tabInsets;
 161.309      }
 161.310 @@ -575,7 +750,7 @@
 161.311      }
 161.312  
 161.313      private void updateTabContext(int index, boolean selected,
 161.314 -                                  boolean isMouseOver, boolean hasFocus) {
 161.315 +                                  boolean isMouseDown, boolean isMouseOver, boolean hasFocus) {
 161.316          int state = 0;
 161.317          if (!tabPane.isEnabled() || !tabPane.isEnabledAt(index)) {
 161.318              state |= SynthConstants.DISABLED;
 161.319 @@ -599,9 +774,68 @@
 161.320          if (hasFocus && tabPane.hasFocus()) {
 161.321              state |= SynthConstants.FOCUSED; // individual tab has focus
 161.322          }
 161.323 +        if (isMouseDown) {
 161.324 +            state |= SynthConstants.PRESSED;
 161.325 +        }
 161.326 +
 161.327          tabContext.setComponentState(state);
 161.328      }
 161.329  
 161.330 +    /**
 161.331 +     * @inheritDoc
 161.332 +     *
 161.333 +     * Overridden to create a TabbedPaneLayout subclass which takes into
 161.334 +     * account tabOverlap.
 161.335 +     */
 161.336 +    @Override protected LayoutManager createLayoutManager() {
 161.337 +        if (tabPane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT) {
 161.338 +            return super.createLayoutManager();
 161.339 +        } else { /* WRAP_TAB_LAYOUT */
 161.340 +            return new TabbedPaneLayout() {
 161.341 +                @Override
 161.342 +                public void calculateLayoutInfo() {
 161.343 +                    super.calculateLayoutInfo();
 161.344 +                    //shift all the tabs, if necessary
 161.345 +                    if (tabOverlap != 0) {
 161.346 +                        int tabCount = tabPane.getTabCount();
 161.347 +                        //left-to-right/right-to-left only affects layout
 161.348 +                        //when placement is TOP or BOTTOM
 161.349 +                        boolean ltr = tabPane.getComponentOrientation().isLeftToRight();
 161.350 +                        for (int i = runCount - 1; i >= 0; i--) {
 161.351 +                            int start = tabRuns[i];
 161.352 +                            int next = tabRuns[(i == runCount - 1)? 0 : i + 1];
 161.353 +                            int end = (next != 0? next - 1: tabCount - 1);
 161.354 +                            for (int j = start+1; j <= end; j++) {
 161.355 +                                // xshift and yshift represent the amount &
 161.356 +                                // direction to shift the tab in their
 161.357 +                                // respective axis.
 161.358 +                                int xshift = 0;
 161.359 +                                int yshift = 0;
 161.360 +                                // configure xshift and y shift based on tab
 161.361 +                                // position and ltr/rtl
 161.362 +                                switch (tabPane.getTabPlacement()) {
 161.363 +                                    case JTabbedPane.TOP:
 161.364 +                                    case JTabbedPane.BOTTOM:
 161.365 +                                        xshift = ltr ? tabOverlap : -tabOverlap;
 161.366 +                                        break;
 161.367 +                                    case JTabbedPane.LEFT:
 161.368 +                                    case JTabbedPane.RIGHT:
 161.369 +                                        yshift = tabOverlap;
 161.370 +                                        break;
 161.371 +                                    default: //do nothing
 161.372 +                                }
 161.373 +                                rects[j].x += xshift;
 161.374 +                                rects[j].y += yshift;
 161.375 +                                rects[j].width += Math.abs(xshift);
 161.376 +                                rects[j].height += Math.abs(yshift);
 161.377 +                            }
 161.378 +                        }
 161.379 +                    }
 161.380 +                }
 161.381 +            };
 161.382 +        }
 161.383 +    }
 161.384 +
 161.385      private class SynthScrollableTabButton extends SynthArrowButton implements
 161.386              UIResource {
 161.387          public SynthScrollableTabButton(int direction) {
   162.1 --- a/src/share/classes/javax/swing/plaf/synth/SynthTableHeaderUI.java	Tue Apr 28 14:43:44 2009 -0700
   162.2 +++ b/src/share/classes/javax/swing/plaf/synth/SynthTableHeaderUI.java	Wed Apr 29 00:27:46 2009 -0700
   162.3 @@ -33,6 +33,7 @@
   162.4  import javax.swing.plaf.basic.*;
   162.5  import javax.swing.table.*;
   162.6  
   162.7 +import sun.swing.DefaultLookup;
   162.8  import sun.swing.plaf.synth.*;
   162.9  import sun.swing.table.*;
  162.10  
  162.11 @@ -160,6 +161,7 @@
  162.12      private class HeaderRenderer extends DefaultTableCellHeaderRenderer {
  162.13          HeaderRenderer() {
  162.14              setHorizontalAlignment(JLabel.LEADING);
  162.15 +            setName("TableHeader.renderer");
  162.16          }
  162.17  
  162.18          @Override
  162.19 @@ -178,24 +180,40 @@
  162.20                  SynthLookAndFeel.resetSelectedUI();
  162.21              }
  162.22  
  162.23 +            //stuff a variable into the client property of this renderer indicating the sort order,
  162.24 +            //so that different rendering can be done for the header based on sorted state.
  162.25 +            RowSorter rs = table == null ? null : table.getRowSorter();
  162.26 +            java.util.List<? extends RowSorter.SortKey> sortKeys = rs == null ? null : rs.getSortKeys();
  162.27 +            if (sortKeys != null && sortKeys.size() > 0 && sortKeys.get(0).getColumn() ==
  162.28 +                    table.convertColumnIndexToModel(column)) {
  162.29 +                switch(sortKeys.get(0).getSortOrder()) {
  162.30 +                    case ASCENDING:
  162.31 +                        putClientProperty("Table.sortOrder", "ASCENDING");
  162.32 +                        break;
  162.33 +                    case DESCENDING:
  162.34 +                        putClientProperty("Table.sortOrder", "DESCENDING");
  162.35 +                        break;
  162.36 +                    case UNSORTED:
  162.37 +                        putClientProperty("Table.sortOrder", "UNSORTED");
  162.38 +                        break;
  162.39 +                    default:
  162.40 +                        throw new AssertionError("Cannot happen");
  162.41 +                }
  162.42 +            } else {
  162.43 +                putClientProperty("Table.sortOrder", "UNSORTED");
  162.44 +            }
  162.45 +
  162.46              super.getTableCellRendererComponent(table, value, isSelected,
  162.47                                                  hasFocus, row, column);
  162.48  
  162.49              return this;
  162.50          }
  162.51  
  162.52 +        @Override
  162.53          public void setBorder(Border border) {
  162.54              if (border instanceof SynthBorder) {
  162.55                  super.setBorder(border);
  162.56              }
  162.57          }
  162.58 -
  162.59 -        public String getName() {
  162.60 -            String name = super.getName();
  162.61 -            if (name == null) {
  162.62 -                return "TableHeader.renderer";
  162.63 -            }
  162.64 -            return name;
  162.65 -        }
  162.66      }
  162.67  }
   163.1 --- a/src/share/classes/javax/swing/plaf/synth/SynthTableUI.java	Tue Apr 28 14:43:44 2009 -0700
   163.2 +++ b/src/share/classes/javax/swing/plaf/synth/SynthTableUI.java	Wed Apr 29 00:27:46 2009 -0700
   163.3 @@ -27,6 +27,7 @@
   163.4  
   163.5  import java.awt.Color;
   163.6  import java.awt.Component;
   163.7 +import java.awt.Dimension;
   163.8  import java.awt.Graphics;
   163.9  import java.awt.Point;
  163.10  import java.awt.Rectangle;
  163.11 @@ -70,6 +71,7 @@
  163.12  
  163.13      private boolean useTableColors;
  163.14      private boolean useUIBorder;
  163.15 +    private Color alternateColor; //the background color to use for cells for alternate cells
  163.16  
  163.17      // TableCellRenderer installed on the JTable at the time we're installed,
  163.18      // cached so that we can reinstall them at uninstallUI time.
  163.19 @@ -161,6 +163,21 @@
  163.20              if (rowHeight != null) {
  163.21                  LookAndFeel.installProperty(table, "rowHeight", rowHeight);
  163.22              }
  163.23 +            boolean showGrid = style.getBoolean(context, "Table.showGrid", true);
  163.24 +            if (!showGrid) {
  163.25 +                table.setShowGrid(false);
  163.26 +            }
  163.27 +            Dimension d = table.getIntercellSpacing();
  163.28 +//            if (d == null || d instanceof UIResource) {
  163.29 +            if (d != null) {
  163.30 +                d = (Dimension)style.get(context, "Table.intercellSpacing");
  163.31 +            }
  163.32 +            alternateColor = (Color)style.get(context, "Table.alternateRowColor");
  163.33 +            if (d != null) {
  163.34 +                table.setIntercellSpacing(d);
  163.35 +            }
  163.36 +
  163.37 +
  163.38              if (oldStyle != null) {
  163.39                  uninstallKeyboardActions();
  163.40                  installKeyboardActions();
  163.41 @@ -617,6 +634,14 @@
  163.42          else {
  163.43              TableCellRenderer renderer = table.getCellRenderer(row, column);
  163.44              Component component = table.prepareRenderer(renderer, row, column);
  163.45 +            Color b = component.getBackground();
  163.46 +            if ((b == null || b instanceof UIResource
  163.47 +                    || component instanceof SynthBooleanTableCellRenderer)
  163.48 +                    && !table.isCellSelected(row, column)) {
  163.49 +                if (alternateColor != null && row % 2 == 0) {
  163.50 +                    component.setBackground(alternateColor);
  163.51 +                }
  163.52 +            }
  163.53              rendererPane.paintComponent(g, component, table, cellRect.x,
  163.54                      cellRect.y, cellRect.width, cellRect.height, true);
  163.55          }
  163.56 @@ -634,16 +659,8 @@
  163.57          private boolean isRowSelected;
  163.58  
  163.59          public SynthBooleanTableCellRenderer() {
  163.60 -            super();
  163.61              setHorizontalAlignment(JLabel.CENTER);
  163.62 -        }
  163.63 -
  163.64 -        public String getName() {
  163.65 -            String name = super.getName();
  163.66 -            if (name == null) {
  163.67 -                return "Table.cellRenderer";
  163.68 -            }
  163.69 -            return name;
  163.70 +            setName("Table.cellRenderer");
  163.71          }
  163.72  
  163.73          public Component getTableCellRendererComponent(
  163.74 @@ -652,17 +669,24 @@
  163.75              isRowSelected = isSelected;
  163.76  
  163.77              if (isSelected) {
  163.78 -                setForeground(table.getSelectionForeground());
  163.79 -                setBackground(table.getSelectionBackground());
  163.80 +                setForeground(unwrap(table.getSelectionForeground()));
  163.81 +                setBackground(unwrap(table.getSelectionBackground()));
  163.82              } else {
  163.83 -                setForeground(table.getForeground());
  163.84 -                setBackground(table.getBackground());
  163.85 +                setForeground(unwrap(table.getForeground()));
  163.86 +                setBackground(unwrap(table.getBackground()));
  163.87              }
  163.88  
  163.89              setSelected((value != null && ((Boolean)value).booleanValue()));
  163.90              return this;
  163.91          }
  163.92  
  163.93 +        private Color unwrap(Color c) {
  163.94 +            if (c instanceof UIResource) {
  163.95 +                return new Color(c.getRGB());
  163.96 +            }
  163.97 +            return c;
  163.98 +        }
  163.99 +
 163.100          public boolean isOpaque() {
 163.101              return isRowSelected ? true : super.isOpaque();
 163.102          }
 163.103 @@ -732,7 +756,7 @@
 163.104              }
 163.105              else if (columnClass == Icon.class || columnClass == ImageIcon.class) {
 163.106                  setHorizontalAlignment(JLabel.CENTER);
 163.107 -                setIcon((Icon)value);
 163.108 +                setIcon((value instanceof Icon) ? (Icon)value : null);
 163.109                  setText("");
 163.110              }
 163.111              else if (columnClass == Date.class) {
   164.1 --- a/src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java	Tue Apr 28 14:43:44 2009 -0700
   164.2 +++ b/src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java	Wed Apr 29 00:27:46 2009 -0700
   164.3 @@ -27,10 +27,11 @@
   164.4  
   164.5  import javax.swing.*;
   164.6  import javax.swing.text.*;
   164.7 -import javax.swing.event.*;
   164.8  import javax.swing.plaf.*;
   164.9  import javax.swing.plaf.basic.BasicTextAreaUI;
  164.10  import java.awt.*;
  164.11 +import java.awt.event.FocusListener;
  164.12 +import java.awt.event.FocusEvent;
  164.13  import java.beans.PropertyChangeEvent;
  164.14  import sun.swing.plaf.synth.SynthUI;
  164.15  
  164.16 @@ -50,7 +51,7 @@
  164.17   *
  164.18   * @author  Shannon Hickey
  164.19   */
  164.20 -class SynthTextAreaUI extends BasicTextAreaUI implements SynthUI {
  164.21 +class SynthTextAreaUI extends BasicTextAreaUI implements SynthUI, FocusListener {
  164.22      private SynthStyle style;
  164.23  
  164.24      /**
  164.25 @@ -63,16 +64,26 @@
  164.26          return new SynthTextAreaUI();
  164.27      }
  164.28  
  164.29 +    public void focusGained(FocusEvent e) {
  164.30 +        getComponent().repaint();
  164.31 +    }
  164.32 +
  164.33 +    public void focusLost(FocusEvent e) {
  164.34 +        getComponent().repaint();
  164.35 +    }
  164.36 +
  164.37      protected void installDefaults() {
  164.38          // Installs the text cursor on the component
  164.39          super.installDefaults();
  164.40          updateStyle(getComponent());
  164.41 +        getComponent().addFocusListener(this);
  164.42      }
  164.43  
  164.44      protected void uninstallDefaults() {
  164.45          SynthContext context = getContext(getComponent(), ENABLED);
  164.46  
  164.47          getComponent().putClientProperty("caretAspectRatio", null);
  164.48 +        getComponent().removeFocusListener(this);
  164.49  
  164.50          style.uninstallDefaults(context);
  164.51          context.dispose();
   165.1 --- a/src/share/classes/javax/swing/plaf/synth/SynthToggleButtonUI.java	Tue Apr 28 14:43:44 2009 -0700
   165.2 +++ b/src/share/classes/javax/swing/plaf/synth/SynthToggleButtonUI.java	Wed Apr 29 00:27:46 2009 -0700
   165.3 @@ -25,12 +25,10 @@
   165.4  
   165.5  package javax.swing.plaf.synth;
   165.6  
   165.7 -import java.awt.*;
   165.8 -import java.awt.event.*;
   165.9 -import javax.swing.*;
  165.10 -import javax.swing.border.*;
  165.11 -import javax.swing.plaf.*;
  165.12 -import javax.swing.text.View;
  165.13 +import java.awt.Graphics;
  165.14 +import javax.swing.AbstractButton;
  165.15 +import javax.swing.JComponent;
  165.16 +import javax.swing.plaf.ComponentUI;
  165.17  
  165.18  /**
  165.19   * Synth's ToggleButtonUI.
  165.20 @@ -45,15 +43,21 @@
  165.21          return new SynthToggleButtonUI();
  165.22      }
  165.23  
  165.24 +    @Override
  165.25      protected String getPropertyPrefix() {
  165.26          return "ToggleButton.";
  165.27      }
  165.28  
  165.29 +    @Override
  165.30      void paintBackground(SynthContext context, Graphics g, JComponent c) {
  165.31 -        context.getPainter().paintToggleButtonBackground(context, g, 0, 0,
  165.32 -                                                c.getWidth(), c.getHeight());
  165.33 +        if (((AbstractButton) c).isContentAreaFilled()) {
  165.34 +            int x = 0, y = 0, w = c.getWidth(), h = c.getHeight();
  165.35 +            SynthPainter painter = context.getPainter();
  165.36 +            painter.paintToggleButtonBackground(context, g, x, y, w, h);
  165.37 +        }
  165.38      }
  165.39  
  165.40 +    @Override
  165.41      public void paintBorder(SynthContext context, Graphics g, int x,
  165.42                              int y, int w, int h) {
  165.43          context.getPainter().paintToggleButtonBorder(context, g, x, y, w, h);
   166.1 --- a/src/share/classes/javax/swing/plaf/synth/SynthToolBarUI.java	Tue Apr 28 14:43:44 2009 -0700
   166.2 +++ b/src/share/classes/javax/swing/plaf/synth/SynthToolBarUI.java	Wed Apr 29 00:27:46 2009 -0700
   166.3 @@ -25,18 +25,24 @@
   166.4  
   166.5  package javax.swing.plaf.synth;
   166.6  
   166.7 -import javax.swing.*;
   166.8 -import javax.swing.event.*;
   166.9 -import java.awt.*;
  166.10 -import java.awt.event.*;
  166.11 -
  166.12 -import java.beans.*;
  166.13 -
  166.14 -import javax.swing.border.*;
  166.15 -import javax.swing.plaf.*;
  166.16 +import java.awt.Component;
  166.17 +import java.awt.Container;
  166.18 +import java.awt.Dimension;
  166.19 +import java.awt.Graphics;
  166.20 +import java.awt.Insets;
  166.21 +import java.awt.LayoutManager;
  166.22 +import java.awt.Rectangle;
  166.23 +import java.beans.PropertyChangeEvent;
  166.24 +import java.beans.PropertyChangeListener;
  166.25 +import javax.swing.Box;
  166.26 +import javax.swing.Icon;
  166.27 +import javax.swing.JComponent;
  166.28 +import javax.swing.JSeparator;
  166.29 +import javax.swing.JToolBar;
  166.30 +import javax.swing.plaf.ComponentUI;
  166.31  import javax.swing.plaf.basic.BasicToolBarUI;
  166.32 -import sun.swing.plaf.synth.*;
  166.33 -
  166.34 +import sun.swing.plaf.synth.SynthIcon;
  166.35 +import sun.swing.plaf.synth.SynthUI;
  166.36  
  166.37  /**
  166.38   * A Synth L&F implementation of ToolBarUI.  This implementation
  166.39 @@ -57,23 +63,35 @@
  166.40          return new SynthToolBarUI();
  166.41      }
  166.42  
  166.43 +    @Override
  166.44      protected void installDefaults() {
  166.45          toolBar.setLayout(createLayout());
  166.46          updateStyle(toolBar);
  166.47      }
  166.48  
  166.49 +    @Override
  166.50      protected void installListeners() {
  166.51          super.installListeners();
  166.52          toolBar.addPropertyChangeListener(this);
  166.53      }
  166.54  
  166.55 +    @Override
  166.56      protected void uninstallListeners() {
  166.57          super.uninstallListeners();
  166.58          toolBar.removePropertyChangeListener(this);
  166.59      }
  166.60  
  166.61      private void updateStyle(JToolBar c) {
  166.62 -        SynthContext context = getContext(c, ENABLED);
  166.63 +        SynthContext context = getContext(
  166.64 +                c, Region.TOOL_BAR_CONTENT, null, ENABLED);
  166.65 +        contentStyle = SynthLookAndFeel.updateStyle(context, this);
  166.66 +        context.dispose();
  166.67 +
  166.68 +        context = getContext(c, Region.TOOL_BAR_DRAG_WINDOW, null, ENABLED);
  166.69 +        dragWindowStyle = SynthLookAndFeel.updateStyle(context, this);
  166.70 +        context.dispose();
  166.71 +
  166.72 +        context = getContext(c, ENABLED);
  166.73          SynthStyle oldStyle = style;
  166.74  
  166.75          style = SynthLookAndFeel.updateStyle(context, this);
  166.76 @@ -86,16 +104,9 @@
  166.77              }
  166.78          }
  166.79          context.dispose();
  166.80 -
  166.81 -        context = getContext(c, Region.TOOL_BAR_CONTENT, ENABLED);
  166.82 -        contentStyle = SynthLookAndFeel.updateStyle(context, this);
  166.83 -        context.dispose();
  166.84 -
  166.85 -        context = getContext(c, Region.TOOL_BAR_DRAG_WINDOW, ENABLED);
  166.86 -        dragWindowStyle = SynthLookAndFeel.updateStyle(context, this);
  166.87 -        context.dispose();
  166.88      }
  166.89  
  166.90 +    @Override
  166.91      protected void uninstallDefaults() {
  166.92          SynthContext context = getContext(toolBar, ENABLED);
  166.93  
  166.94 @@ -105,12 +116,14 @@
  166.95  
  166.96          handleIcon = null;
  166.97  
  166.98 -        context = getContext(toolBar, Region.TOOL_BAR_CONTENT, ENABLED);
  166.99 +        context = getContext(toolBar, Region.TOOL_BAR_CONTENT,
 166.100 +                             contentStyle, ENABLED);
 166.101          contentStyle.uninstallDefaults(context);
 166.102          context.dispose();
 166.103          contentStyle = null;
 166.104  
 166.105 -        context = getContext(toolBar, Region.TOOL_BAR_DRAG_WINDOW, ENABLED);
 166.106 +        context = getContext(toolBar, Region.TOOL_BAR_DRAG_WINDOW,
 166.107 +                             dragWindowStyle, ENABLED);
 166.108          dragWindowStyle.uninstallDefaults(context);
 166.109          context.dispose();
 166.110          dragWindowStyle = null;
 166.111 @@ -118,11 +131,11 @@
 166.112          toolBar.setLayout(null);
 166.113      }
 166.114  
 166.115 -    protected void installComponents() {
 166.116 -    }
 166.117 +    @Override
 166.118 +    protected void installComponents() {}
 166.119  
 166.120 -    protected void uninstallComponents() {
 166.121 -    }
 166.122 +    @Override
 166.123 +    protected void uninstallComponents() {}
 166.124  
 166.125      protected LayoutManager createLayout() {
 166.126          return new SynthToolBarLayoutManager();
 166.127 @@ -137,13 +150,15 @@
 166.128                      SynthLookAndFeel.getRegion(c), style, state);
 166.129      }
 166.130  
 166.131 -    private SynthContext getContext(JComponent c, Region region) {
 166.132 -        return getContext(c, region, getComponentState(c, region));
 166.133 +    private SynthContext getContext(JComponent c, Region region, SynthStyle style) {
 166.134 +        return SynthContext.getContext(SynthContext.class, c, region,
 166.135 +                                       style, getComponentState(c, region));
 166.136      }
 166.137  
 166.138 -    private SynthContext getContext(JComponent c, Region region, int state) {
 166.139 +    private SynthContext getContext(JComponent c, Region region,
 166.140 +                                    SynthStyle style, int state) {
 166.141          return SynthContext.getContext(SynthContext.class, c, region,
 166.142 -                                       dragWindowStyle, state);
 166.143 +                                       style, state);
 166.144      }
 166.145  
 166.146      private Region getRegion(JComponent c) {
 166.147 @@ -158,6 +173,7 @@
 166.148          return SynthLookAndFeel.getComponentState(c);
 166.149      }
 166.150  
 166.151 +    @Override
 166.152      public void update(Graphics g, JComponent c) {
 166.153          SynthContext context = getContext(c);
 166.154  
 166.155 @@ -169,6 +185,7 @@
 166.156          context.dispose();
 166.157      }
 166.158  
 166.159 +    @Override
 166.160      public void paint(Graphics g, JComponent c) {
 166.161          SynthContext context = getContext(c);
 166.162  
 166.163 @@ -183,12 +200,15 @@
 166.164      }
 166.165  
 166.166      // Overloaded to do nothing so we can share listeners.
 166.167 +    @Override
 166.168      protected void setBorderToNonRollover(Component c) {}
 166.169  
 166.170      // Overloaded to do nothing so we can share listeners.
 166.171 +    @Override
 166.172      protected void setBorderToRollover(Component c) {}
 166.173  
 166.174      // Overloaded to do nothing so we can share listeners.
 166.175 +    @Override
 166.176      protected void setBorderToNormal(Component c) {}
 166.177  
 166.178      protected void paint(SynthContext context, Graphics g) {
 166.179 @@ -201,7 +221,8 @@
 166.180                      SynthIcon.getIconHeight(handleIcon, context));
 166.181          }
 166.182  
 166.183 -        SynthContext subcontext = getContext(toolBar, Region.TOOL_BAR_CONTENT);
 166.184 +        SynthContext subcontext = getContext(
 166.185 +                toolBar, Region.TOOL_BAR_CONTENT, contentStyle);
 166.186          paintContent(subcontext, g, contentRect);
 166.187          subcontext.dispose();
 166.188      }
 166.189 @@ -217,12 +238,14 @@
 166.190                               toolBar.getOrientation());
 166.191      }
 166.192  
 166.193 +    @Override
 166.194      protected void paintDragWindow(Graphics g) {
 166.195          int w = dragWindow.getWidth();
 166.196          int h = dragWindow.getHeight();
 166.197 -        SynthContext context = getContext(toolBar,Region.TOOL_BAR_DRAG_WINDOW);
 166.198 -        SynthLookAndFeel.updateSubregion(context, g, new Rectangle(
 166.199 -                         0, 0, w, h));
 166.200 +        SynthContext context = getContext(
 166.201 +                toolBar, Region.TOOL_BAR_DRAG_WINDOW, dragWindowStyle);
 166.202 +        SynthLookAndFeel.updateSubregion(
 166.203 +                context, g, new Rectangle(0, 0, w, h));
 166.204          context.getPainter().paintToolBarDragWindowBackground(context,
 166.205                                                             g, 0, 0, w, h,
 166.206                                                             dragWindow.getOrientation());
 166.207 @@ -319,6 +342,19 @@
 166.208  
 166.209              Component c;
 166.210              Dimension d;
 166.211 +
 166.212 +            // JToolBar by default uses a somewhat modified BoxLayout as
 166.213 +            // its layout manager. For compatibility reasons, we want to
 166.214 +            // support Box "glue" as a way to move things around on the
 166.215 +            // toolbar. "glue" is represented in BoxLayout as a Box.Filler
 166.216 +            // with a minimum and preferred size of (0,0).
 166.217 +            // So what we do here is find the number of such glue fillers
 166.218 +            // and figure out how much space should be allocated to them.
 166.219 +            int glueCount = 0;
 166.220 +            for (int i=0; i<tb.getComponentCount(); i++) {
 166.221 +                if (isGlue(tb.getComponent(i))) glueCount++;
 166.222 +            }
 166.223 +
 166.224              if (tb.getOrientation() == JToolBar.HORIZONTAL) {
 166.225                  int handleWidth = tb.isFloatable() ?
 166.226                      SynthIcon.getIconWidth(handleIcon, context) : 0;
 166.227 @@ -339,6 +375,16 @@
 166.228                  int baseY = insets.top;
 166.229                  int baseH = tb.getHeight() - insets.top - insets.bottom;
 166.230  
 166.231 +                // we need to get the minimum width for laying things out
 166.232 +                // so that we can calculate how much empty space needs to
 166.233 +                // be distributed among the "glue", if any
 166.234 +                int extraSpacePerGlue = 0;
 166.235 +                if (glueCount > 0) {
 166.236 +                    int minWidth = minimumLayoutSize(parent).width;
 166.237 +                    extraSpacePerGlue = (tb.getWidth() - minWidth) / glueCount;
 166.238 +                    if (extraSpacePerGlue < 0) extraSpacePerGlue = 0;
 166.239 +                }
 166.240 +
 166.241                  for (int i = 0; i < tb.getComponentCount(); i++) {
 166.242                      c = tb.getComponent(i);
 166.243                      d = c.getPreferredSize();
 166.244 @@ -352,6 +398,9 @@
 166.245                          y = baseY + (baseH / 2) - (d.height / 2);
 166.246                          h = d.height;
 166.247                      }
 166.248 +                    //if the component is a "glue" component then add to its
 166.249 +                    //width the extraSpacePerGlue it is due
 166.250 +                    if (isGlue(c)) d.width += extraSpacePerGlue;
 166.251                      c.setBounds(ltr ? x : x - d.width, y, d.width, h);
 166.252                      x = ltr ? x + d.width : x - d.width;
 166.253                  }
 166.254 @@ -369,6 +418,16 @@
 166.255                  int baseW = tb.getWidth() - insets.left - insets.right;
 166.256                  int y = handleHeight + insets.top;
 166.257  
 166.258 +                // we need to get the minimum height for laying things out
 166.259 +                // so that we can calculate how much empty space needs to
 166.260 +                // be distributed among the "glue", if any
 166.261 +                int extraSpacePerGlue = 0;
 166.262 +                if (glueCount > 0) {
 166.263 +                    int minHeight = minimumLayoutSize(parent).height;
 166.264 +                    extraSpacePerGlue = (tb.getHeight() - minHeight) / glueCount;
 166.265 +                    if (extraSpacePerGlue < 0) extraSpacePerGlue = 0;
 166.266 +                }
 166.267 +
 166.268                  for (int i = 0; i < tb.getComponentCount(); i++) {
 166.269                      c = tb.getComponent(i);
 166.270                      d = c.getPreferredSize();
 166.271 @@ -382,11 +441,25 @@
 166.272                          x = baseX + (baseW / 2) - (d.width / 2);
 166.273                          w = d.width;
 166.274                      }
 166.275 +                    //if the component is a "glue" component then add to its
 166.276 +                    //height the extraSpacePerGlue it is due
 166.277 +                    if (isGlue(c)) d.height += extraSpacePerGlue;
 166.278                      c.setBounds(x, y, w, d.height);
 166.279                      y += d.height;
 166.280                  }
 166.281              }
 166.282              context.dispose();
 166.283          }
 166.284 +
 166.285 +        private boolean isGlue(Component c) {
 166.286 +            if (c instanceof Box.Filler) {
 166.287 +                Box.Filler f = (Box.Filler)c;
 166.288 +                Dimension min = f.getMinimumSize();
 166.289 +                Dimension pref = f.getPreferredSize();
 166.290 +                return min.width == 0 &&  min.height == 0 &&
 166.291 +                        pref.width == 0 && pref.height == 0;
 166.292 +            }
 166.293 +            return false;
 166.294 +        }
 166.295      }
 166.296  }
   167.1 --- a/src/share/classes/javax/swing/plaf/synth/SynthTreeUI.java	Tue Apr 28 14:43:44 2009 -0700
   167.2 +++ b/src/share/classes/javax/swing/plaf/synth/SynthTreeUI.java	Wed Apr 29 00:27:46 2009 -0700
   167.3 @@ -24,20 +24,31 @@
   167.4   */
   167.5  package javax.swing.plaf.synth;
   167.6  
   167.7 -import javax.swing.*;
   167.8 -import javax.swing.event.*;
   167.9 -import java.awt.*;
  167.10 -import java.awt.event.*;
  167.11 -import java.awt.datatransfer.*;
  167.12 -import java.awt.dnd.*;
  167.13 -import java.beans.*;
  167.14 -import java.io.*;
  167.15 -import java.util.*;
  167.16 -import javax.swing.plaf.*;
  167.17 -import javax.swing.plaf.basic.*;
  167.18 -import javax.swing.tree.*;
  167.19 -import javax.swing.text.Position;
  167.20 -import sun.swing.plaf.synth.*;
  167.21 +import java.awt.Color;
  167.22 +import java.awt.Component;
  167.23 +import java.awt.Graphics;
  167.24 +import java.awt.Insets;
  167.25 +import java.awt.Rectangle;
  167.26 +import java.beans.PropertyChangeEvent;
  167.27 +import java.beans.PropertyChangeListener;
  167.28 +import java.util.Enumeration;
  167.29 +import javax.swing.DefaultCellEditor;
  167.30 +import javax.swing.Icon;
  167.31 +import javax.swing.JComponent;
  167.32 +import javax.swing.JTextField;
  167.33 +import javax.swing.JTree;
  167.34 +import javax.swing.LookAndFeel;
  167.35 +import javax.swing.plaf.ComponentUI;
  167.36 +import javax.swing.plaf.UIResource;
  167.37 +import javax.swing.plaf.basic.BasicTreeUI;
  167.38 +import javax.swing.tree.DefaultTreeCellEditor;
  167.39 +import javax.swing.tree.DefaultTreeCellRenderer;
  167.40 +import javax.swing.tree.TreeCellEditor;
  167.41 +import javax.swing.tree.TreeCellRenderer;
  167.42 +import javax.swing.tree.TreeModel;
  167.43 +import javax.swing.tree.TreePath;
  167.44 +import sun.swing.plaf.synth.SynthIcon;
  167.45 +import sun.swing.plaf.synth.SynthUI;
  167.46  
  167.47  /**
  167.48   * Skinnable TreeUI.
  167.49 @@ -72,10 +83,12 @@
  167.50          expandedIconWrapper = new ExpandedIconWrapper();
  167.51      }
  167.52  
  167.53 +    @Override
  167.54      public Icon getExpandedIcon() {
  167.55          return expandedIconWrapper;
  167.56      }
  167.57  
  167.58 +    @Override
  167.59      protected void installDefaults() {
  167.60          updateStyle(tree);
  167.61      }
  167.62 @@ -135,11 +148,13 @@
  167.63          context.dispose();
  167.64      }
  167.65  
  167.66 +    @Override
  167.67      protected void installListeners() {
  167.68          super.installListeners();
  167.69          tree.addPropertyChangeListener(this);
  167.70      }
  167.71  
  167.72 +    @Override
  167.73      public SynthContext getContext(JComponent c) {
  167.74          return getContext(c, getComponentState(c));
  167.75      }
  167.76 @@ -172,6 +187,7 @@
  167.77          return ENABLED | SELECTED;
  167.78      }
  167.79  
  167.80 +    @Override
  167.81      protected TreeCellEditor createDefaultCellEditor() {
  167.82          TreeCellRenderer renderer = tree.getCellRenderer();
  167.83          DefaultTreeCellEditor editor;
  167.84 @@ -186,10 +202,12 @@
  167.85          return editor;
  167.86      }
  167.87  
  167.88 +    @Override
  167.89      protected TreeCellRenderer createDefaultCellRenderer() {
  167.90          return new SynthTreeCellRenderer();
  167.91      }
  167.92  
  167.93 +    @Override
  167.94      protected void uninstallDefaults() {
  167.95          SynthContext context = getContext(tree, ENABLED);
  167.96  
  167.97 @@ -208,11 +226,13 @@
  167.98          }
  167.99      }
 167.100  
 167.101 +    @Override
 167.102      protected void uninstallListeners() {
 167.103          super.uninstallListeners();
 167.104          tree.removePropertyChangeListener(this);
 167.105      }
 167.106  
 167.107 +    @Override
 167.108      public void update(Graphics g, JComponent c) {
 167.109          SynthContext context = getContext(c);
 167.110  
 167.111 @@ -228,6 +248,7 @@
 167.112          context.getPainter().paintTreeBorder(context, g, x, y, w, h);
 167.113      }
 167.114  
 167.115 +    @Override
 167.116      public void paint(Graphics g, JComponent c) {
 167.117          SynthContext context = getContext(c);
 167.118  
 167.119 @@ -481,6 +502,7 @@
 167.120          }
 167.121      }
 167.122  
 167.123 +    @Override
 167.124      protected void paintHorizontalPartOfLeg(Graphics g, Rectangle clipBounds,
 167.125                                              Insets insets, Rectangle bounds,
 167.126                                              TreePath path, int row,
 167.127 @@ -494,12 +516,14 @@
 167.128          }
 167.129      }
 167.130  
 167.131 +    @Override
 167.132      protected void paintHorizontalLine(Graphics g, JComponent c, int y,
 167.133                                        int left, int right) {
 167.134          paintContext.getStyle().getGraphicsUtils(paintContext).drawLine(
 167.135              paintContext, "Tree.horizontalLine", g, left, y, right, y, linesStyle);
 167.136      }
 167.137  
 167.138 +    @Override
 167.139      protected void paintVerticalPartOfLeg(Graphics g,
 167.140                                            Rectangle clipBounds, Insets insets,
 167.141                                            TreePath path) {
 167.142 @@ -508,6 +532,7 @@
 167.143          }
 167.144      }
 167.145  
 167.146 +    @Override
 167.147      protected void paintVerticalLine(Graphics g, JComponent c, int x, int top,
 167.148                                      int bottom) {
 167.149          paintContext.getStyle().getGraphicsUtils(paintContext).drawLine(
 167.150 @@ -528,12 +553,17 @@
 167.151                           && dropLocation.getChildIndex() == -1
 167.152                           && path == dropLocation.getPath();
 167.153  
 167.154 +        int state = ENABLED;
 167.155          if (selected || isDrop) {
 167.156 -            cellContext.setComponentState(ENABLED | SELECTED);
 167.157 +            state |= SELECTED;
 167.158          }
 167.159 -        else {
 167.160 -            cellContext.setComponentState(ENABLED);
 167.161 +
 167.162 +        if (tree.isFocusOwner() && row == leadRow) {
 167.163 +            state |= FOCUSED;
 167.164          }
 167.165 +
 167.166 +        cellContext.setComponentState(state);
 167.167 +
 167.168          if (dtcr != null && (dtcr.getBorderSelectionColor() instanceof
 167.169                               UIResource)) {
 167.170              dtcr.setBorderSelectionColor(style.getColor(
 167.171 @@ -574,6 +604,28 @@
 167.172                 : x - (int)Math.floor(iconWidth / 2.0);
 167.173      }
 167.174  
 167.175 +    /**
 167.176 +     * @inheritDoc
 167.177 +     */
 167.178 +    @Override
 167.179 +    protected void paintExpandControl(Graphics g, Rectangle clipBounds,
 167.180 +            Insets insets, Rectangle bounds, TreePath path, int row,
 167.181 +            boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf) {
 167.182 +        //modify the paintContext's state to match the state for the row
 167.183 +        //this is a hack in that it requires knowledge of the subsequent
 167.184 +        //method calls. The point is, the context used in drawCentered
 167.185 +        //should reflect the state of the row, not of the tree.
 167.186 +        boolean isSelected = tree.getSelectionModel().isPathSelected(path);
 167.187 +        int state = paintContext.getComponentState();
 167.188 +        if (isSelected) {
 167.189 +            paintContext.setComponentState(state | SynthConstants.SELECTED);
 167.190 +        }
 167.191 +        super.paintExpandControl(g, clipBounds, insets, bounds, path, row,
 167.192 +                isExpanded, hasBeenExpanded, isLeaf);
 167.193 +        paintContext.setComponentState(state);
 167.194 +    }
 167.195 +
 167.196 +    @Override
 167.197      protected void drawCentered(Component c, Graphics graphics, Icon icon,
 167.198                                  int x, int y) {
 167.199          int w = SynthIcon.getIconWidth(icon, paintContext);
 167.200 @@ -618,6 +670,7 @@
 167.201          }
 167.202      }
 167.203  
 167.204 +    @Override
 167.205      protected int getRowX(int row, int depth) {
 167.206          return super.getRowX(row, depth) + padding;
 167.207      }
 167.208 @@ -627,9 +680,13 @@
 167.209                                 implements UIResource {
 167.210          SynthTreeCellRenderer() {
 167.211          }
 167.212 +
 167.213 +        @Override
 167.214          public String getName() {
 167.215              return "Tree.cellRenderer";
 167.216          }
 167.217 +
 167.218 +        @Override
 167.219          public Component getTreeCellRendererComponent(JTree tree, Object value,
 167.220                                                        boolean sel,
 167.221                                                        boolean expanded,
 167.222 @@ -646,6 +703,8 @@
 167.223              return super.getTreeCellRendererComponent(tree, value, sel,
 167.224                                                        expanded, leaf, row, hasFocus);
 167.225          }
 167.226 +
 167.227 +        @Override
 167.228          public void paint(Graphics g) {
 167.229              paintComponent(g);
 167.230              if (hasFocus) {
 167.231 @@ -692,8 +751,10 @@
 167.232              setBorderSelectionColor(null);
 167.233          }
 167.234  
 167.235 +        @Override
 167.236          protected TreeCellEditor createTreeCellEditor() {
 167.237              JTextField tf = new JTextField() {
 167.238 +                @Override
 167.239                  public String getName() {
 167.240                      return "Tree.cellEditor";
 167.241                  }
 167.242 @@ -706,7 +767,6 @@
 167.243          }
 167.244      }
 167.245  
 167.246 -
 167.247      //
 167.248      // BasicTreeUI directly uses expandIcon outside of the Synth methods.
 167.249      // To get the correct context we return an instance of this that fetches
   168.1 --- a/src/share/classes/javax/swing/table/DefaultTableCellRenderer.java	Tue Apr 28 14:43:44 2009 -0700
   168.2 +++ b/src/share/classes/javax/swing/table/DefaultTableCellRenderer.java	Wed Apr 29 00:27:46 2009 -0700
   168.3 @@ -26,7 +26,6 @@
   168.4  package javax.swing.table;
   168.5  
   168.6  import javax.swing.*;
   168.7 -import javax.swing.table.TableCellRenderer;
   168.8  import javax.swing.border.*;
   168.9  
  168.10  import java.awt.Component;
  168.11 @@ -34,6 +33,7 @@
  168.12  import java.awt.Rectangle;
  168.13  
  168.14  import java.io.Serializable;
  168.15 +import sun.swing.DefaultLookup;
  168.16  
  168.17  
  168.18  /**
  168.19 @@ -92,8 +92,9 @@
  168.20      * <code>getTableCellRendererComponent</code> method and set the border
  168.21      * of the returned component directly.
  168.22      */
  168.23 -    protected static Border noFocusBorder = new EmptyBorder(1, 1, 1, 1);
  168.24      private static final Border SAFE_NO_FOCUS_BORDER = new EmptyBorder(1, 1, 1, 1);
  168.25 +    private static final Border DEFAULT_NO_FOCUS_BORDER = new EmptyBorder(1, 1, 1, 1);
  168.26 +    protected static Border noFocusBorder = DEFAULT_NO_FOCUS_BORDER;
  168.27  
  168.28      // We need a place to store the color the JLabel should be returned
  168.29      // to after its foreground and background colors have been set
  168.30 @@ -109,12 +110,18 @@
  168.31          super();
  168.32          setOpaque(true);
  168.33          setBorder(getNoFocusBorder());
  168.34 +        setName("Table.cellRenderer");
  168.35      }
  168.36  
  168.37 -    private static Border getNoFocusBorder() {
  168.38 +    private Border getNoFocusBorder() {
  168.39 +        Border border = DefaultLookup.getBorder(this, ui, "Table.cellNoFocusBorder");
  168.40          if (System.getSecurityManager() != null) {
  168.41 +            if (border != null) return border;
  168.42              return SAFE_NO_FOCUS_BORDER;
  168.43          } else {
  168.44 +            if (noFocusBorder == null || noFocusBorder == DEFAULT_NO_FOCUS_BORDER) {
  168.45 +                return border;
  168.46 +            }
  168.47              return noFocusBorder;
  168.48          }
  168.49      }
  168.50 @@ -190,8 +197,8 @@
  168.51                  && dropLocation.getRow() == row
  168.52                  && dropLocation.getColumn() == column) {
  168.53  
  168.54 -            fg = UIManager.getColor("Table.dropCellForeground");
  168.55 -            bg = UIManager.getColor("Table.dropCellBackground");
  168.56 +            fg = DefaultLookup.getColor(this, ui, "Table.dropCellForeground");
  168.57 +            bg = DefaultLookup.getColor(this, ui, "Table.dropCellBackground");
  168.58  
  168.59              isSelected = true;
  168.60          }
  168.61 @@ -202,12 +209,18 @@
  168.62              super.setBackground(bg == null ? table.getSelectionBackground()
  168.63                                             : bg);
  168.64          } else {
  168.65 +            Color background = unselectedBackground != null
  168.66 +                                    ? unselectedBackground
  168.67 +                                    : table.getBackground();
  168.68 +            if (background == null || background instanceof javax.swing.plaf.UIResource) {
  168.69 +                Color alternateColor = DefaultLookup.getColor(this, ui, "Table.alternateRowColor");
  168.70 +                if (alternateColor != null && row % 2 == 0)
  168.71 +                    background = alternateColor;
  168.72 +            }
  168.73              super.setForeground(unselectedForeground != null
  168.74                                      ? unselectedForeground
  168.75                                      : table.getForeground());
  168.76 -            super.setBackground(unselectedBackground != null
  168.77 -                                    ? unselectedBackground
  168.78 -                                    : table.getBackground());
  168.79 +            super.setBackground(background);
  168.80          }
  168.81  
  168.82          setFont(table.getFont());
  168.83 @@ -215,20 +228,20 @@
  168.84          if (hasFocus) {
  168.85              Border border = null;
  168.86              if (isSelected) {
  168.87 -                border = UIManager.getBorder("Table.focusSelectedCellHighlightBorder");
  168.88 +                border = DefaultLookup.getBorder(this, ui, "Table.focusSelectedCellHighlightBorder");
  168.89              }
  168.90              if (border == null) {
  168.91 -                border = UIManager.getBorder("Table.focusCellHighlightBorder");
  168.92 +                border = DefaultLookup.getBorder(this, ui, "Table.focusCellHighlightBorder");
  168.93              }
  168.94              setBorder(border);
  168.95  
  168.96              if (!isSelected && table.isCellEditable(row, column)) {
  168.97                  Color col;
  168.98 -                col = UIManager.getColor("Table.focusCellForeground");
  168.99 +                col = DefaultLookup.getColor(this, ui, "Table.focusCellForeground");
 168.100                  if (col != null) {
 168.101                      super.setForeground(col);
 168.102                  }
 168.103 -                col = UIManager.getColor("Table.focusCellBackground");
 168.104 +                col = DefaultLookup.getColor(this, ui, "Table.focusCellBackground");
 168.105                  if (col != null) {
 168.106                      super.setBackground(col);
 168.107                  }
 168.108 @@ -261,6 +274,7 @@
 168.109          if (p != null) {
 168.110              p = p.getParent();
 168.111          }
 168.112 +
 168.113          // p should now be the JTable.
 168.114          boolean colorMatch = (back != null) && (p != null) &&
 168.115              back.equals(p.getBackground()) &&
   169.1 --- a/src/share/classes/javax/swing/tree/DefaultTreeCellRenderer.java	Tue Apr 28 14:43:44 2009 -0700
   169.2 +++ b/src/share/classes/javax/swing/tree/DefaultTreeCellRenderer.java	Wed Apr 29 00:27:46 2009 -0700
   169.3 @@ -25,16 +25,24 @@
   169.4  
   169.5  package javax.swing.tree;
   169.6  
   169.7 -import javax.swing.*;
   169.8 +import java.awt.Color;
   169.9 +import java.awt.Component;
  169.10 +import java.awt.Dimension;
  169.11 +import java.awt.Font;
  169.12 +import java.awt.Graphics;
  169.13 +import java.awt.Insets;
  169.14 +import java.awt.Rectangle;
  169.15  import javax.swing.plaf.ColorUIResource;
  169.16  import javax.swing.plaf.FontUIResource;
  169.17  import javax.swing.plaf.UIResource;
  169.18  import javax.swing.plaf.basic.BasicGraphicsUtils;
  169.19 -import java.awt.*;
  169.20 -import java.awt.event.*;
  169.21 -import java.beans.*;
  169.22 -import java.io.*;
  169.23 -import java.util.*;
  169.24 +import javax.swing.Icon;
  169.25 +import javax.swing.JLabel;
  169.26 +import javax.swing.JTree;
  169.27 +import javax.swing.LookAndFeel;
  169.28 +import javax.swing.UIManager;
  169.29 +import javax.swing.border.EmptyBorder;
  169.30 +import sun.swing.DefaultLookup;
  169.31  
  169.32  /**
  169.33   * Displays an entry in a tree.
  169.34 @@ -148,6 +156,7 @@
  169.35      protected Color borderSelectionColor;
  169.36  
  169.37      private boolean isDropCell;
  169.38 +    private boolean fillBackground = true;
  169.39  
  169.40      /**
  169.41       * Set to true after the constructor has run.
  169.42 @@ -177,41 +186,48 @@
  169.43          // null. As such, if the value is null, this does not reset the
  169.44          // value.
  169.45          if (!inited || (getLeafIcon() instanceof UIResource)) {
  169.46 -            setLeafIcon(UIManager.getIcon("Tree.leafIcon"));
  169.47 +            setLeafIcon(DefaultLookup.getIcon(this, ui, "Tree.leafIcon"));
  169.48          }
  169.49          if (!inited || (getClosedIcon() instanceof UIResource)) {
  169.50 -            setClosedIcon(UIManager.getIcon("Tree.closedIcon"));
  169.51 +            setClosedIcon(DefaultLookup.getIcon(this, ui, "Tree.closedIcon"));
  169.52          }
  169.53          if (!inited || (getOpenIcon() instanceof UIManager)) {
  169.54 -            setOpenIcon(UIManager.getIcon("Tree.openIcon"));
  169.55 +            setOpenIcon(DefaultLookup.getIcon(this, ui, "Tree.openIcon"));
  169.56          }
  169.57          if (!inited || (getTextSelectionColor() instanceof UIResource)) {
  169.58              setTextSelectionColor(
  169.59 -                    UIManager.getColor("Tree.selectionForeground"));
  169.60 +                    DefaultLookup.getColor(this, ui, "Tree.selectionForeground"));
  169.61          }
  169.62          if (!inited || (getTextNonSelectionColor() instanceof UIResource)) {
  169.63              setTextNonSelectionColor(
  169.64 -                UIManager.getColor("Tree.textForeground"));
  169.65 +                    DefaultLookup.getColor(this, ui, "Tree.textForeground"));
  169.66          }
  169.67          if (!inited || (getBackgroundSelectionColor() instanceof UIResource)) {
  169.68              setBackgroundSelectionColor(
  169.69 -                UIManager.getColor("Tree.selectionBackground"));
  169.70 +                    DefaultLookup.getColor(this, ui, "Tree.selectionBackground"));
  169.71          }
  169.72          if (!inited ||
  169.73                  (getBackgroundNonSelectionColor() instanceof UIResource)) {
  169.74              setBackgroundNonSelectionColor(
  169.75 -                    UIManager.getColor("Tree.textBackground"));
  169.76 +                    DefaultLookup.getColor(this, ui, "Tree.textBackground"));
  169.77          }
  169.78          if (!inited || (getBorderSelectionColor() instanceof UIResource)) {
  169.79              setBorderSelectionColor(
  169.80 -                UIManager.getColor("Tree.selectionBorderColor"));
  169.81 +                    DefaultLookup.getColor(this, ui, "Tree.selectionBorderColor"));
  169.82          }
  169.83 -        Object value = UIManager.get("Tree.drawsFocusBorderAroundIcon");
  169.84 -        drawsFocusBorderAroundIcon = (value != null && ((Boolean)value).
  169.85 -                                      booleanValue());
  169.86 -        value = UIManager.get("Tree.drawDashedFocusIndicator");
  169.87 -        drawDashedFocusIndicator = (value != null && ((Boolean)value).
  169.88 -                                    booleanValue());
  169.89 +        drawsFocusBorderAroundIcon = DefaultLookup.getBoolean(
  169.90 +                this, ui, "Tree.drawsFocusBorderAroundIcon", false);
  169.91 +        drawDashedFocusIndicator = DefaultLookup.getBoolean(
  169.92 +                this, ui, "Tree.drawDashedFocusIndicator", false);
  169.93 +
  169.94 +        fillBackground = DefaultLookup.getBoolean(this, ui, "Tree.rendererFillBackground", true);
  169.95 +        Insets margins = DefaultLookup.getInsets(this, ui, "Tree.rendererMargins");
  169.96 +        if (margins != null) {
  169.97 +            setBorder(new EmptyBorder(margins.top, margins.left,
  169.98 +                    margins.bottom, margins.right));
  169.99 +        }
 169.100 +
 169.101 +        setName("Tree.cellRenderer");
 169.102      }
 169.103  
 169.104  
 169.105 @@ -220,7 +236,7 @@
 169.106        * represent non-leaf nodes that are expanded.
 169.107        */
 169.108      public Icon getDefaultOpenIcon() {
 169.109 -        return UIManager.getIcon("Tree.openIcon");
 169.110 +        return DefaultLookup.getIcon(this, ui, "Tree.openIcon");
 169.111      }
 169.112  
 169.113      /**
 169.114 @@ -228,7 +244,7 @@
 169.115        * represent non-leaf nodes that are not expanded.
 169.116        */
 169.117      public Icon getDefaultClosedIcon() {
 169.118 -        return UIManager.getIcon("Tree.closedIcon");
 169.119 +        return DefaultLookup.getIcon(this, ui, "Tree.closedIcon");
 169.120      }
 169.121  
 169.122      /**
 169.123 @@ -236,7 +252,7 @@
 169.124        * represent leaf nodes.
 169.125        */
 169.126      public Icon getDefaultLeafIcon() {
 169.127 -        return UIManager.getIcon("Tree.leafIcon");
 169.128 +        return DefaultLookup.getIcon(this, ui, "Tree.leafIcon");
 169.129      }
 169.130  
 169.131      /**
 169.132 @@ -425,7 +441,7 @@
 169.133                  && dropLocation.getChildIndex() == -1
 169.134                  && tree.getRowForPath(dropLocation.getPath()) == row) {
 169.135  
 169.136 -            Color col = UIManager.getColor("Tree.dropCellForeground");
 169.137 +            Color col = DefaultLookup.getColor(this, ui, "Tree.dropCellForeground");
 169.138              if (col != null) {
 169.139                  fg = col;
 169.140              } else {
 169.141 @@ -441,26 +457,24 @@
 169.142  
 169.143          setForeground(fg);
 169.144  
 169.145 -        // There needs to be a way to specify disabled icons.
 169.146 +        Icon icon = null;
 169.147 +        if (leaf) {
 169.148 +            icon = getLeafIcon();
 169.149 +        } else if (expanded) {
 169.150 +            icon = getOpenIcon();
 169.151 +        } else {
 169.152 +            icon = getClosedIcon();
 169.153 +        }
 169.154 +
 169.155          if (!tree.isEnabled()) {
 169.156              setEnabled(false);
 169.157 -            if (leaf) {
 169.158 -                setDisabledIcon(getLeafIcon());
 169.159 -            } else if (expanded) {
 169.160 -                setDisabledIcon(getOpenIcon());
 169.161 -            } else {
 169.162 -                setDisabledIcon(getClosedIcon());
 169.163 -            }
 169.164 -        }
 169.165 -        else {
 169.166 +            LookAndFeel laf = UIManager.getLookAndFeel();
 169.167 +            Icon disabledIcon = laf.getDisabledIcon(tree, icon);
 169.168 +            if (disabledIcon != null) icon = disabledIcon;
 169.169 +            setDisabledIcon(icon);
 169.170 +        } else {
 169.171              setEnabled(true);
 169.172 -            if (leaf) {
 169.173 -                setIcon(getLeafIcon());
 169.174 -            } else if (expanded) {
 169.175 -                setIcon(getOpenIcon());
 169.176 -            } else {
 169.177 -                setIcon(getClosedIcon());
 169.178 -            }
 169.179 +            setIcon(icon);
 169.180          }
 169.181          setComponentOrientation(tree.getComponentOrientation());
 169.182  
 169.183 @@ -476,7 +490,7 @@
 169.184          Color bColor;
 169.185  
 169.186          if (isDropCell) {
 169.187 -            bColor = UIManager.getColor("Tree.dropCellBackground");
 169.188 +            bColor = DefaultLookup.getColor(this, ui, "Tree.dropCellBackground");
 169.189              if (bColor == null) {
 169.190                  bColor = getBackgroundSelectionColor();
 169.191              }
 169.192 @@ -490,9 +504,7 @@
 169.193          }
 169.194  
 169.195          int imageOffset = -1;
 169.196 -        if(bColor != null) {
 169.197 -            Icon currentI = getIcon();
 169.198 -
 169.199 +        if (bColor != null && fillBackground) {
 169.200              imageOffset = getLabelStart();
 169.201              g.setColor(bColor);
 169.202              if(getComponentOrientation().isLeftToRight()) {
   170.1 --- a/src/share/classes/sun/applet/AppletPanel.java	Tue Apr 28 14:43:44 2009 -0700
   170.2 +++ b/src/share/classes/sun/applet/AppletPanel.java	Wed Apr 29 00:27:46 2009 -0700
   170.3 @@ -45,7 +45,6 @@
   170.4  import java.util.Collections;
   170.5  import java.util.Locale;
   170.6  import java.util.WeakHashMap;
   170.7 -import javax.swing.SwingUtilities;
   170.8  import sun.awt.AppContext;
   170.9  import sun.awt.EmbeddedFrame;
  170.10  import sun.awt.SunToolkit;
  170.11 @@ -450,7 +449,7 @@
  170.12                        try {
  170.13                            final AppletPanel p = this;
  170.14  
  170.15 -                          SwingUtilities.invokeAndWait(new Runnable() {
  170.16 +                          EventQueue.invokeAndWait(new Runnable() {
  170.17                                    public void run() {
  170.18                                        p.validate();
  170.19                                    }
  170.20 @@ -480,7 +479,7 @@
  170.21                            final AppletPanel p = this;
  170.22                            final Applet a = applet;
  170.23  
  170.24 -                          SwingUtilities.invokeAndWait(new Runnable() {
  170.25 +                          EventQueue.invokeAndWait(new Runnable() {
  170.26                                    public void run() {
  170.27                                        p.validate();
  170.28                                        a.setVisible(true);
  170.29 @@ -514,7 +513,7 @@
  170.30                      try {
  170.31                          final Applet a = applet;
  170.32  
  170.33 -                        SwingUtilities.invokeAndWait(new Runnable() {
  170.34 +                        EventQueue.invokeAndWait(new Runnable() {
  170.35                                  public void run()
  170.36                                  {
  170.37                                      a.setVisible(false);
   171.1 --- a/src/share/classes/sun/awt/EmbeddedFrame.java	Tue Apr 28 14:43:44 2009 -0700
   171.2 +++ b/src/share/classes/sun/awt/EmbeddedFrame.java	Wed Apr 29 00:27:46 2009 -0700
   171.3 @@ -588,9 +588,11 @@
   171.4  
   171.5          public void setOpacity(float opacity) {
   171.6          }
   171.7 +
   171.8          public void setOpaque(boolean isOpaque) {
   171.9          }
  171.10 -        public void updateWindow(BufferedImage backBuffer) {
  171.11 +
  171.12 +        public void updateWindow(BufferedImage bi) {
  171.13          }
  171.14          public void repositionSecurityWarning() {
  171.15          }
   172.1 --- a/src/share/classes/sun/awt/SunToolkit.java	Tue Apr 28 14:43:44 2009 -0700
   172.2 +++ b/src/share/classes/sun/awt/SunToolkit.java	Wed Apr 29 00:27:46 2009 -0700
   172.3 @@ -2038,37 +2038,34 @@
   172.4      /**
   172.5       * Returns whether or not a containing top level window for the passed
   172.6       * component is
   172.7 -     * {@link com.sun.awt.AWTUtilities.Translucency#PERPIXEL_TRANSLUCENT PERPIXEL_TRANSLUCENT}.
   172.8 +     * {@link GraphicsDevice.WindowTranslucency#PERPIXEL_TRANSLUCENT PERPIXEL_TRANSLUCENT}.
   172.9       *
  172.10       * @param c a Component which toplevel's to check
  172.11       * @return {@code true}  if the passed component is not null and has a
  172.12       * containing toplevel window which is opaque (so per-pixel translucency
  172.13       * is not enabled), {@code false} otherwise
  172.14 -     * @see com.sun.awt.AWTUtilities.Translucency#PERPIXEL_TRANSLUCENT
  172.15 -     * @see com.sun.awt.AWTUtilities#isWindowOpaque(Window)
  172.16 +     * @see GraphicsDevice.WindowTranslucency#PERPIXEL_TRANSLUCENT
  172.17       */
  172.18      public static boolean isContainingTopLevelOpaque(Component c) {
  172.19          Window w = getContainingWindow(c);
  172.20 -        // return w != null && (w).isOpaque();
  172.21 -        return w != null && com.sun.awt.AWTUtilities.isWindowOpaque(w);
  172.22 +        return w != null && ((Window)w).getBackground() != null &&
  172.23 +            ((Window)w).getBackground().getAlpha() == 255;
  172.24      }
  172.25  
  172.26      /**
  172.27       * Returns whether or not a containing top level window for the passed
  172.28       * component is
  172.29 -     * {@link com.sun.awt.AWTUtilities.Translucency#TRANSLUCENT TRANSLUCENT}.
  172.30 +     * {@link GraphicsDevice.WindowTranslucency#TRANSLUCENT TRANSLUCENT}.
  172.31       *
  172.32       * @param c a Component which toplevel's to check
  172.33       * @return {@code true} if the passed component is not null and has a
  172.34       * containing toplevel window which has opacity less than
  172.35       * 1.0f (which means that it is translucent), {@code false} otherwise
  172.36 -     * @see com.sun.awt.AWTUtilities.Translucency#TRANSLUCENT
  172.37 -     * @see com.sun.awt.AWTUtilities#getWindowOpacity(Window)
  172.38 +     * @see GraphicsDevice.WindowTranslucency#TRANSLUCENT
  172.39       */
  172.40      public static boolean isContainingTopLevelTranslucent(Component c) {
  172.41          Window w = getContainingWindow(c);
  172.42 -        // return w != null && (w).getOpacity() < 1.0f;
  172.43 -        return w != null && com.sun.awt.AWTUtilities.getWindowOpacity((Window)w) < 1.0f;
  172.44 +        return w != null && ((Window)w).getOpacity() < 1.0f;
  172.45      }
  172.46  
  172.47      /**
   173.1 --- a/src/share/classes/sun/awt/datatransfer/DataTransferer.java	Tue Apr 28 14:43:44 2009 -0700
   173.2 +++ b/src/share/classes/sun/awt/datatransfer/DataTransferer.java	Wed Apr 29 00:27:46 2009 -0700
   173.3 @@ -65,10 +65,13 @@
   173.4  
   173.5  import java.rmi.MarshalledObject;
   173.6  
   173.7 +import java.security.AccessControlContext;
   173.8 +import java.security.AccessControlException;
   173.9  import java.security.AccessController;
  173.10  import java.security.PrivilegedAction;
  173.11  import java.security.PrivilegedActionException;
  173.12  import java.security.PrivilegedExceptionAction;
  173.13 +import java.security.ProtectionDomain;
  173.14  
  173.15  import java.util.ArrayList;
  173.16  import java.util.Arrays;
  173.17 @@ -111,6 +114,8 @@
  173.18  import sun.awt.image.ImageRepresentation;
  173.19  import sun.awt.image.ToolkitImage;
  173.20  
  173.21 +import java.io.FilePermission;
  173.22 +
  173.23  
  173.24  /**
  173.25   * Provides a set of functions to be shared among the DataFlavor class and
  173.26 @@ -1177,8 +1182,10 @@
  173.27              (String.class.equals(flavor.getRepresentationClass()) &&
  173.28               isFlavorCharsetTextType(flavor) && isTextFormat(format))) {
  173.29  
  173.30 +            String str = removeSuspectedData(flavor, contents, (String)obj);
  173.31 +
  173.32              return translateTransferableString(
  173.33 -                (String)obj,
  173.34 +                str,
  173.35                  format);
  173.36  
  173.37          // Source data is a Reader. Convert to a String and recur. In the
  173.38 @@ -1286,6 +1293,11 @@
  173.39                  throw new IOException("data translation failed");
  173.40              }
  173.41              final List list = (List)obj;
  173.42 +
  173.43 +            final ArrayList fileList = new ArrayList();
  173.44 +
  173.45 +            final ProtectionDomain userProtectionDomain = getUserProtectionDomain(contents);
  173.46 +
  173.47              int nFiles = 0;
  173.48              for (int i = 0; i < list.size(); i++) {
  173.49                  Object o = list.get(i);
  173.50 @@ -1293,17 +1305,18 @@
  173.51                      nFiles++;
  173.52                  }
  173.53              }
  173.54 -            final String[] files = new String[nFiles];
  173.55  
  173.56              try {
  173.57                  AccessController.doPrivileged(new PrivilegedExceptionAction() {
  173.58                      public Object run() throws IOException {
  173.59 -                        for (int i = 0, j = 0; i < list.size(); i++) {
  173.60 -                            Object o = list.get(i);
  173.61 -                            if (o instanceof File) {
  173.62 -                                files[j++] = ((File)o).getCanonicalPath();
  173.63 -                            } else if (o instanceof String) {
  173.64 -                                files[j++] = (String)o;
  173.65 +                        for (Object fileObject : list)
  173.66 +                        {
  173.67 +                            File file = castToFile(fileObject);
  173.68 +                            if (null == System.getSecurityManager() ||
  173.69 +                                !(isFileInWebstartedCache(file) ||
  173.70 +                                isForbiddenToRead(file, userProtectionDomain)))
  173.71 +                            {
  173.72 +                                fileList.add(file.getCanonicalPath());
  173.73                              }
  173.74                          }
  173.75                          return null;
  173.76 @@ -1313,10 +1326,11 @@
  173.77                  throw new IOException(pae.getMessage());
  173.78              }
  173.79  
  173.80 -            for (int i = 0; i < files.length; i++) {
  173.81 -                 byte[] bytes = files[i].getBytes();
  173.82 -                 if (i != 0) bos.write(0);
  173.83 -                 bos.write(bytes, 0, bytes.length);
  173.84 +            for (int i = 0; i < fileList.size(); i++)
  173.85 +            {
  173.86 +                byte[] bytes = ((String)fileList.get(i)).getBytes();
  173.87 +                if (i != 0) bos.write(0);
  173.88 +                bos.write(bytes, 0, bytes.length);
  173.89              }
  173.90  
  173.91          // Source data is an InputStream. For arbitrary flavors, just grab the
  173.92 @@ -1366,6 +1380,123 @@
  173.93          return ret;
  173.94      }
  173.95  
  173.96 +    private String removeSuspectedData(DataFlavor flavor, final Transferable contents, final String str)
  173.97 +            throws IOException
  173.98 +    {
  173.99 +        if (null == System.getSecurityManager()
 173.100 +            || !flavor.isMimeTypeEqual("text/uri-list"))
 173.101 +        {
 173.102 +            return str;
 173.103 +        }
 173.104 +
 173.105 +
 173.106 +        String ret_val = "";
 173.107 +        final ProtectionDomain userProtectionDomain = getUserProtectionDomain(contents);
 173.108 +
 173.109 +        try {
 173.110 +            ret_val = (String) AccessController.doPrivileged(new PrivilegedExceptionAction() {
 173.111 +                    public Object run() {
 173.112 +
 173.113 +                        StringBuffer allowedFiles = new StringBuffer(str.length());
 173.114 +                        String [] uriArray = str.split("(\\s)+");
 173.115 +
 173.116 +                        for (String fileName : uriArray)
 173.117 +                        {
 173.118 +                            File file = new File(fileName);
 173.119 +                            if (file.exists() &&
 173.120 +                                !(isFileInWebstartedCache(file) ||
 173.121 +                                isForbiddenToRead(file, userProtectionDomain)))
 173.122 +                            {
 173.123 +
 173.124 +                                if (0 != allowedFiles.length())
 173.125 +                                {
 173.126 +                                    allowedFiles.append("\\r\\n");
 173.127 +                                }
 173.128 +
 173.129 +                                allowedFiles.append(fileName);
 173.130 +                            }
 173.131 +                        }
 173.132 +
 173.133 +                        return allowedFiles.toString();
 173.134 +                    }
 173.135 +                });
 173.136 +        } catch (PrivilegedActionException pae) {
 173.137 +            throw new IOException(pae.getMessage(), pae);
 173.138 +        }
 173.139 +
 173.140 +        return ret_val;
 173.141 +    }
 173.142 +
 173.143 +    private static ProtectionDomain getUserProtectionDomain(Transferable contents) {
 173.144 +        return contents.getClass().getProtectionDomain();
 173.145 +    }
 173.146 +
 173.147 +    private boolean isForbiddenToRead (File file, ProtectionDomain protectionDomain)
 173.148 +    {
 173.149 +        if (null == protectionDomain) {
 173.150 +            return false;
 173.151 +        }
 173.152 +        try {
 173.153 +            FilePermission filePermission =
 173.154 +                    new FilePermission(file.getCanonicalPath(), "read, delete");
 173.155 +            if (protectionDomain.implies(filePermission)) {
 173.156 +                return false;
 173.157 +            }
 173.158 +        } catch (IOException e) {}
 173.159 +
 173.160 +        return true;
 173.161 +    }
 173.162 +
 173.163 +    // It is important do not use user's successors
 173.164 +    // of File class.
 173.165 +    private File castToFile(Object fileObject) throws IOException {
 173.166 +        String filePath = null;
 173.167 +        if (fileObject instanceof File) {
 173.168 +            filePath = ((File)fileObject).getCanonicalPath();
 173.169 +        } else if (fileObject instanceof String) {
 173.170 +           filePath = (String) fileObject;
 173.171 +        }
 173.172 +        return new File(filePath);
 173.173 +    }
 173.174 +
 173.175 +    private final static String[] DEPLOYMENT_CACHE_PROPERTIES = {
 173.176 +        "deployment.system.cachedir",
 173.177 +        "deployment.user.cachedir",
 173.178 +        "deployment.javaws.cachedir",
 173.179 +        "deployment.javapi.cachedir"
 173.180 +    };
 173.181 +
 173.182 +    private final static ArrayList <File> deploymentCacheDirectoryList =
 173.183 +            new ArrayList<File>();
 173.184 +
 173.185 +    private static boolean isFileInWebstartedCache(File f) {
 173.186 +
 173.187 +        if (deploymentCacheDirectoryList.isEmpty()) {
 173.188 +            for (String cacheDirectoryProperty : DEPLOYMENT_CACHE_PROPERTIES) {
 173.189 +                String cacheDirectoryPath = System.getProperty(cacheDirectoryProperty);
 173.190 +                if (cacheDirectoryPath != null) {
 173.191 +                    try {
 173.192 +                        File cacheDirectory = (new File(cacheDirectoryPath)).getCanonicalFile();
 173.193 +                        if (cacheDirectory != null) {
 173.194 +                            deploymentCacheDirectoryList.add(cacheDirectory);
 173.195 +                        }
 173.196 +                    } catch (IOException ioe) {}
 173.197 +                }
 173.198 +            }
 173.199 +        }
 173.200 +
 173.201 +        for (File deploymentCacheDirectory : deploymentCacheDirectoryList) {
 173.202 +            for (File dir = f; dir != null; dir = dir.getParentFile()) {
 173.203 +                if (dir.equals(deploymentCacheDirectory)) {
 173.204 +                    return true;
 173.205 +                }
 173.206 +            }
 173.207 +        }
 173.208 +
 173.209 +        return false;
 173.210 +    }
 173.211 +
 173.212 +
 173.213      public Object translateBytes(byte[] bytes, DataFlavor flavor,
 173.214                                   long format, Transferable localeTransferable)
 173.215          throws IOException
   174.1 --- a/src/share/classes/sun/swing/DefaultLookup.java	Tue Apr 28 14:43:44 2009 -0700
   174.2 +++ b/src/share/classes/sun/swing/DefaultLookup.java	Wed Apr 29 00:27:46 2009 -0700
   174.3 @@ -27,6 +27,7 @@
   174.4  import java.awt.Color;
   174.5  import java.awt.Insets;
   174.6  import javax.swing.*;
   174.7 +import javax.swing.border.Border;
   174.8  import javax.swing.plaf.ComponentUI;
   174.9  import sun.awt.AppContext;
  174.10  
  174.11 @@ -137,6 +138,10 @@
  174.12          return ((Number)iValue).intValue();
  174.13      }
  174.14  
  174.15 +    public static int getInt(JComponent c, ComponentUI ui, String key) {
  174.16 +        return getInt(c, ui, key, -1);
  174.17 +    }
  174.18 +
  174.19      public static Insets getInsets(JComponent c, ComponentUI ui, String key,
  174.20                                     Insets defaultValue) {
  174.21          Object iValue = get(c, ui, key);
  174.22 @@ -147,6 +152,10 @@
  174.23          return (Insets)iValue;
  174.24      }
  174.25  
  174.26 +    public static Insets getInsets(JComponent c, ComponentUI ui, String key) {
  174.27 +        return getInsets(c, ui, key, null);
  174.28 +    }
  174.29 +
  174.30      public static boolean getBoolean(JComponent c, ComponentUI ui, String key,
  174.31                                       boolean defaultValue) {
  174.32          Object iValue = get(c, ui, key);
  174.33 @@ -157,6 +166,10 @@
  174.34          return ((Boolean)iValue).booleanValue();
  174.35      }
  174.36  
  174.37 +    public static boolean getBoolean(JComponent c, ComponentUI ui, String key) {
  174.38 +        return getBoolean(c, ui, key, false);
  174.39 +    }
  174.40 +
  174.41      public static Color getColor(JComponent c, ComponentUI ui, String key,
  174.42                                   Color defaultValue) {
  174.43          Object iValue = get(c, ui, key);
  174.44 @@ -167,7 +180,35 @@
  174.45          return (Color)iValue;
  174.46      }
  174.47  
  174.48 +    public static Color getColor(JComponent c, ComponentUI ui, String key) {
  174.49 +        return getColor(c, ui, key, null);
  174.50 +    }
  174.51  
  174.52 +    public static Icon getIcon(JComponent c, ComponentUI ui, String key,
  174.53 +            Icon defaultValue) {
  174.54 +        Object iValue = get(c, ui, key);
  174.55 +        if (iValue == null || !(iValue instanceof Icon)) {
  174.56 +            return defaultValue;
  174.57 +        }
  174.58 +        return (Icon)iValue;
  174.59 +    }
  174.60 +
  174.61 +    public static Icon getIcon(JComponent c, ComponentUI ui, String key) {
  174.62 +        return getIcon(c, ui, key, null);
  174.63 +    }
  174.64 +
  174.65 +    public static Border getBorder(JComponent c, ComponentUI ui, String key,
  174.66 +            Border defaultValue) {
  174.67 +        Object iValue = get(c, ui, key);
  174.68 +        if (iValue == null || !(iValue instanceof Border)) {
  174.69 +            return defaultValue;
  174.70 +        }
  174.71 +        return (Border)iValue;
  174.72 +    }
  174.73 +
  174.74 +    public static Border getBorder(JComponent c, ComponentUI ui, String key) {
  174.75 +        return getBorder(c, ui, key, null);
  174.76 +    }
  174.77  
  174.78      public Object getDefault(JComponent c, ComponentUI ui, String key) {
  174.79          // basic
   175.1 --- a/src/share/classes/sun/swing/FilePane.java	Tue Apr 28 14:43:44 2009 -0700
   175.2 +++ b/src/share/classes/sun/swing/FilePane.java	Wed Apr 29 00:27:46 2009 -0700
   175.3 @@ -265,6 +265,7 @@
   175.4      private Color   listViewBackground;
   175.5      private boolean listViewWindowsStyle;
   175.6      private boolean readOnly;
   175.7 +    private boolean fullRowSelection = false;
   175.8  
   175.9      private ListSelectionModel listSelectionModel;
  175.10      private JList list;
  175.11 @@ -448,6 +449,7 @@
  175.12          kiloByteString = UIManager.getString("FileChooser.fileSizeKiloBytes", l);
  175.13          megaByteString = UIManager.getString("FileChooser.fileSizeMegaBytes", l);
  175.14          gigaByteString = UIManager.getString("FileChooser.fileSizeGigaBytes", l);
  175.15 +        fullRowSelection = UIManager.getBoolean("FileView.fullRowSelection");
  175.16  
  175.17          renameErrorTitleText = UIManager.getString("FileChooser.renameErrorTitleText", l);
  175.18          renameErrorText = UIManager.getString("FileChooser.renameErrorText", l);
  175.19 @@ -991,6 +993,7 @@
  175.20          public DetailsTableCellEditor(JTextField tf) {
  175.21              super(tf);
  175.22              this.tf = tf;
  175.23 +            tf.setName("Table.editor");
  175.24              tf.addFocusListener(editorFocusListener);
  175.25          }
  175.26  
  175.27 @@ -1018,7 +1021,8 @@
  175.28          }
  175.29  
  175.30          public void setBounds(int x, int y, int width, int height) {
  175.31 -            if (getHorizontalAlignment() == SwingConstants.LEADING) {
  175.32 +        if (getHorizontalAlignment() == SwingConstants.LEADING &&
  175.33 +                    !fullRowSelection) {
  175.34                  // Restrict width to actual text
  175.35                  width = Math.min(width, this.getPreferredSize().width+4);
  175.36              } else {
  175.37 @@ -1039,9 +1043,9 @@
  175.38          public Component getTableCellRendererComponent(JTable table, Object value,
  175.39                                boolean isSelected, boolean hasFocus, int row, int column) {
  175.40  
  175.41 -            if (table.convertColumnIndexToModel(column) != COLUMN_FILENAME ||
  175.42 -                    (listViewWindowsStyle && !table.isFocusOwner())) {
  175.43 -
  175.44 +            if ((table.convertColumnIndexToModel(column) != COLUMN_FILENAME ||
  175.45 +                    (listViewWindowsStyle && !table.isFocusOwner())) &&
  175.46 +                    !fullRowSelection) {
  175.47                  isSelected = false;
  175.48              }
  175.49  
  175.50 @@ -1338,6 +1342,7 @@
  175.51              Rectangle r = list.getCellBounds(index, index);
  175.52              if (editCell == null) {
  175.53                  editCell = new JTextField();
  175.54 +                editCell.setName("Tree.cellEditor");
  175.55                  editCell.addActionListener(new EditActionListener());
  175.56                  editCell.addFocusListener(editorFocusListener);
  175.57                  editCell.setNextFocusableComponent(list);
  175.58 @@ -1797,10 +1802,11 @@
  175.59                  Point p = evt.getPoint();
  175.60                  index = table.rowAtPoint(p);
  175.61  
  175.62 -                if (SwingUtilities2.pointOutsidePrefSize(table,
  175.63 -                                                         index,
  175.64 -                                                         table.columnAtPoint(p), p)) {
  175.65 +                boolean pointOutsidePrefSize =
  175.66 +                        SwingUtilities2.pointOutsidePrefSize(
  175.67 +                            table, index, table.columnAtPoint(p), p);
  175.68  
  175.69 +                if (pointOutsidePrefSize && !fullRowSelection) {
  175.70                      return;
  175.71                  }
  175.72  
   176.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   176.2 +++ b/src/share/classes/sun/swing/plaf/GTKKeybindings.java	Wed Apr 29 00:27:46 2009 -0700
   176.3 @@ -0,0 +1,736 @@
   176.4 +/*
   176.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
   176.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   176.7 + *
   176.8 + * This code is free software; you can redistribute it and/or modify it
   176.9 + * under the terms of the GNU General Public License version 2 only, as
  176.10 + * published by the Free Software Foundation.  Sun designates this
  176.11 + * particular file as subject to the "Classpath" exception as provided
  176.12 + * by Sun in the LICENSE file that accompanied this code.
  176.13 + *
  176.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  176.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  176.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  176.17 + * version 2 for more details (a copy is included in the LICENSE file that
  176.18 + * accompanied this code).
  176.19 + *
  176.20 + * You should have received a copy of the GNU General Public License version
  176.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  176.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  176.23 + *
  176.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  176.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  176.26 + * have any questions.
  176.27 + */
  176.28 +
  176.29 +package sun.swing.plaf;
  176.30 +
  176.31 +import javax.swing.JTextField;
  176.32 +import javax.swing.UIDefaults;
  176.33 +import javax.swing.text.DefaultEditorKit;
  176.34 +
  176.35 +/**
  176.36 + * GTKKeybindings - The standard set of keymaps for the GTK Platform
  176.37 + *
  176.38 + * @author Jasper Potts
  176.39 + */
  176.40 +public class GTKKeybindings {
  176.41 +
  176.42 +    /**
  176.43 +     * Install all GTK keybindings into the provided UIDefaults table
  176.44 +     *
  176.45 +     * @param table The UiDefaults table to install into
  176.46 +     */
  176.47 +    public static void installKeybindings(UIDefaults table) {
  176.48 +        Object fieldInputMap = new UIDefaults.LazyInputMap(new Object[]{
  176.49 +                "ctrl C", DefaultEditorKit.copyAction,
  176.50 +                "ctrl V", DefaultEditorKit.pasteAction,
  176.51 +                "ctrl X", DefaultEditorKit.cutAction,
  176.52 +                "COPY", DefaultEditorKit.copyAction,
  176.53 +                "PASTE", DefaultEditorKit.pasteAction,
  176.54 +                "CUT", DefaultEditorKit.cutAction,
  176.55 +                "control INSERT", DefaultEditorKit.copyAction,
  176.56 +                "shift INSERT", DefaultEditorKit.pasteAction,
  176.57 +                "shift DELETE", DefaultEditorKit.cutAction,
  176.58 +                "shift LEFT", DefaultEditorKit.selectionBackwardAction,
  176.59 +                "shift KP_LEFT", DefaultEditorKit.selectionBackwardAction,
  176.60 +                "shift RIGHT", DefaultEditorKit.selectionForwardAction,
  176.61 +                "shift KP_RIGHT", DefaultEditorKit.selectionForwardAction,
  176.62 +                "ctrl LEFT", DefaultEditorKit.previousWordAction,
  176.63 +                "ctrl KP_LEFT", DefaultEditorKit.previousWordAction,
  176.64 +                "ctrl RIGHT", DefaultEditorKit.nextWordAction,
  176.65 +                "ctrl KP_RIGHT", DefaultEditorKit.nextWordAction,
  176.66 +                "ctrl shift LEFT", DefaultEditorKit.selectionPreviousWordAction,
  176.67 +                "ctrl shift KP_LEFT", DefaultEditorKit.selectionPreviousWordAction,
  176.68 +                "ctrl shift RIGHT", DefaultEditorKit.selectionNextWordAction,
  176.69 +                "ctrl shift KP_RIGHT", DefaultEditorKit.selectionNextWordAction,
  176.70 +                "ctrl A", DefaultEditorKit.selectAllAction,
  176.71 +                "HOME", DefaultEditorKit.beginLineAction,
  176.72 +                "END", DefaultEditorKit.endLineAction,
  176.73 +                "shift HOME", DefaultEditorKit.selectionBeginLineAction,
  176.74 +                "shift END", DefaultEditorKit.selectionEndLineAction,
  176.75 +                "BACK_SPACE", DefaultEditorKit.deletePrevCharAction,
  176.76 +                "shift BACK_SPACE", DefaultEditorKit.deletePrevCharAction,
  176.77 +                "ctrl H", DefaultEditorKit.deletePrevCharAction,
  176.78 +                "DELETE", DefaultEditorKit.deleteNextCharAction,
  176.79 +                "ctrl DELETE", DefaultEditorKit.deleteNextWordAction,
  176.80 +                "ctrl BACK_SPACE", DefaultEditorKit.deletePrevWordAction,
  176.81 +                "RIGHT", DefaultEditorKit.forwardAction,
  176.82 +                "LEFT", DefaultEditorKit.backwardAction,
  176.83 +                "KP_RIGHT", DefaultEditorKit.forwardAction,
  176.84 +                "KP_LEFT", DefaultEditorKit.backwardAction,
  176.85 +                "ENTER", JTextField.notifyAction,
  176.86 +                "ctrl BACK_SLASH", "unselect"/*DefaultEditorKit.unselectAction*/,
  176.87 +                "control shift O", "toggle-componentOrientation"/*DefaultEditorKit.toggleComponentOrientation*/
  176.88 +        });
  176.89 +        Object passwordInputMap = new UIDefaults.LazyInputMap(new Object[]{
  176.90 +                "ctrl C", DefaultEditorKit.copyAction,
  176.91 +                "ctrl V", DefaultEditorKit.pasteAction,
  176.92 +                "ctrl X", DefaultEditorKit.cutAction,
  176.93 +                "COPY", DefaultEditorKit.copyAction,
  176.94 +                "PASTE", DefaultEditorKit.pasteAction,
  176.95 +                "CUT", DefaultEditorKit.cutAction,
  176.96 +                "control INSERT", DefaultEditorKit.copyAction,
  176.97 +                "shift INSERT", DefaultEditorKit.pasteAction,
  176.98 +                "shift DELETE", DefaultEditorKit.cutAction,
  176.99 +                "shift LEFT", DefaultEditorKit.selectionBackwardAction,
 176.100 +                "shift KP_LEFT", DefaultEditorKit.selectionBackwardAction,
 176.101 +                "shift RIGHT", DefaultEditorKit.selectionForwardAction,
 176.102 +                "shift KP_RIGHT", DefaultEditorKit.selectionForwardAction,
 176.103 +                "ctrl LEFT", DefaultEditorKit.beginLineAction,
 176.104 +                "ctrl KP_LEFT", DefaultEditorKit.beginLineAction,
 176.105 +                "ctrl RIGHT", DefaultEditorKit.endLineAction,
 176.106 +                "ctrl KP_RIGHT", DefaultEditorKit.endLineAction,
 176.107 +                "ctrl shift LEFT", DefaultEditorKit.selectionBeginLineAction,
 176.108 +                "ctrl shift KP_LEFT", DefaultEditorKit.selectionBeginLineAction,
 176.109 +                "ctrl shift RIGHT", DefaultEditorKit.selectionEndLineAction,
 176.110 +                "ctrl shift KP_RIGHT", DefaultEditorKit.selectionEndLineAction,
 176.111 +                "ctrl A", DefaultEditorKit.selectAllAction,
 176.112 +                "HOME", DefaultEditorKit.beginLineAction,
 176.113 +                "END", DefaultEditorKit.endLineAction,
 176.114 +                "shift HOME", DefaultEditorKit.selectionBeginLineAction,
 176.115 +                "shift END", DefaultEditorKit.selectionEndLineAction,
 176.116 +                "BACK_SPACE", DefaultEditorKit.deletePrevCharAction,
 176.117 +                "shift BACK_SPACE", DefaultEditorKit.deletePrevCharAction,
 176.118 +                "ctrl H", DefaultEditorKit.deletePrevCharAction,
 176.119 +                "DELETE", DefaultEditorKit.deleteNextCharAction,
 176.120 +                "RIGHT", DefaultEditorKit.forwardAction,
 176.121 +                "LEFT", DefaultEditorKit.backwardAction,
 176.122 +                "KP_RIGHT", DefaultEditorKit.forwardAction,
 176.123 +                "KP_LEFT", DefaultEditorKit.backwardAction,
 176.124 +                "ENTER", JTextField.notifyAction,
 176.125 +                "ctrl BACK_SLASH", "unselect"/*DefaultEditorKit.unselectAction*/,
 176.126 +                "control shift O", "toggle-componentOrientation"/*DefaultEditorKit.toggleComponentOrientation*/
 176.127 +        });
 176.128 +        Object multilineInputMap = new UIDefaults.LazyInputMap(new Object[]{
 176.129 +                "ctrl C", DefaultEditorKit.copyAction,
 176.130 +                "ctrl V", DefaultEditorKit.pasteAction,
 176.131 +                "ctrl X", DefaultEditorKit.cutAction,
 176.132 +                "COPY", DefaultEditorKit.copyAction,
 176.133 +                "PASTE", DefaultEditorKit.pasteAction,
 176.134 +                "CUT", DefaultEditorKit.cutAction,
 176.135 +                "control INSERT", DefaultEditorKit.copyAction,
 176.136 +                "shift INSERT", DefaultEditorKit.pasteAction,
 176.137 +                "shift DELETE", DefaultEditorKit.cutAction,
 176.138 +                "shift LEFT", DefaultEditorKit.selectionBackwardAction,
 176.139 +                "shift KP_LEFT", DefaultEditorKit.selectionBackwardAction,
 176.140 +                "shift RIGHT", DefaultEditorKit.selectionForwardAction,
 176.141 +                "shift KP_RIGHT", DefaultEditorKit.selectionForwardAction,
 176.142 +                "ctrl LEFT", DefaultEditorKit.previousWordAction,
 176.143 +                "ctrl KP_LEFT", DefaultEditorKit.previousWordAction,
 176.144 +                "ctrl RIGHT", DefaultEditorKit.nextWordAction,
 176.145 +                "ctrl KP_RIGHT", DefaultEditorKit.nextWordAction,
 176.146 +                "ctrl shift LEFT", DefaultEditorKit.selectionPreviousWordAction,
 176.147 +                "ctrl shift KP_LEFT", DefaultEditorKit.selectionPreviousWordAction,
 176.148 +                "ctrl shift RIGHT", DefaultEditorKit.selectionNextWordAction,
 176.149 +                "ctrl shift KP_RIGHT", DefaultEditorKit.selectionNextWordAction,
 176.150 +                "ctrl A", DefaultEditorKit.selectAllAction,
 176.151 +                "HOME", DefaultEditorKit.beginLineAction,
 176.152 +                "END", DefaultEditorKit.endLineAction,
 176.153 +                "shift HOME", DefaultEditorKit.selectionBeginLineAction,
 176.154 +                "shift END", DefaultEditorKit.selectionEndLineAction,
 176.155 +
 176.156 +                "UP", DefaultEditorKit.upAction,
 176.157 +                "KP_UP", DefaultEditorKit.upAction,
 176.158 +                "DOWN", DefaultEditorKit.downAction,
 176.159 +                "KP_DOWN", DefaultEditorKit.downAction,
 176.160 +                "PAGE_UP", DefaultEditorKit.pageUpAction,
 176.161 +                "PAGE_DOWN", DefaultEditorKit.pageDownAction,
 176.162 +                "shift PAGE_UP", "selection-page-up",
 176.163 +                "shift PAGE_DOWN", "selection-page-down",
 176.164 +                "ctrl shift PAGE_UP", "selection-page-left",
 176.165 +                "ctrl shift PAGE_DOWN", "selection-page-right",
 176.166 +                "shift UP", DefaultEditorKit.selectionUpAction,
 176.167 +                "shift KP_UP", DefaultEditorKit.selectionUpAction,
 176.168 +                "shift DOWN", DefaultEditorKit.selectionDownAction,
 176.169 +                "shift KP_DOWN", DefaultEditorKit.selectionDownAction,
 176.170 +                "ENTER", DefaultEditorKit.insertBreakAction,
 176.171 +                "BACK_SPACE", DefaultEditorKit.deletePrevCharAction,
 176.172 +                "shift BACK_SPACE", DefaultEditorKit.deletePrevCharAction,
 176.173 +                "ctrl H", DefaultEditorKit.deletePrevCharAction,
 176.174 +                "DELETE", DefaultEditorKit.deleteNextCharAction,
 176.175 +                "ctrl DELETE", DefaultEditorKit.deleteNextWordAction,
 176.176 +                "ctrl BACK_SPACE", DefaultEditorKit.deletePrevWordAction,
 176.177 +                "RIGHT", DefaultEditorKit.forwardAction,
 176.178 +                "LEFT", DefaultEditorKit.backwardAction,
 176.179 +                "KP_RIGHT", DefaultEditorKit.forwardAction,
 176.180 +                "KP_LEFT", DefaultEditorKit.backwardAction,
 176.181 +                "TAB", DefaultEditorKit.insertTabAction,
 176.182 +                "ctrl BACK_SLASH", "unselect"/*DefaultEditorKit.unselectAction*/,
 176.183 +                "ctrl HOME", DefaultEditorKit.beginAction,
 176.184 +                "ctrl END", DefaultEditorKit.endAction,
 176.185 +                "ctrl shift HOME", DefaultEditorKit.selectionBeginAction,
 176.186 +                "ctrl shift END", DefaultEditorKit.selectionEndAction,
 176.187 +                "ctrl T", "next-link-action",
 176.188 +                "ctrl shift T", "previous-link-action",
 176.189 +                "ctrl SPACE", "activate-link-action",
 176.190 +                "control shift O", "toggle-componentOrientation"/*DefaultEditorKit.toggleComponentOrientation*/
 176.191 +        });
 176.192 +
 176.193 +        Object[] defaults = new Object[]{
 176.194 +                "Button.focusInputMap",
 176.195 +                new UIDefaults.LazyInputMap(new Object[]{
 176.196 +                        "SPACE", "pressed",
 176.197 +                        "released SPACE", "released",
 176.198 +                        "ENTER", "pressed",
 176.199 +                        "released ENTER", "released"
 176.200 +                }),
 176.201 +                "CheckBox.focusInputMap",
 176.202 +                new UIDefaults.LazyInputMap(new Object[]{
 176.203 +                        "SPACE", "pressed",
 176.204 +                        "released SPACE", "released"
 176.205 +                }),
 176.206 +                "ComboBox.ancestorInputMap",
 176.207 +                new UIDefaults.LazyInputMap(new Object[]{
 176.208 +                        "ESCAPE", "hidePopup",
 176.209 +                        "PAGE_UP", "pageUpPassThrough",
 176.210 +                        "PAGE_DOWN", "pageDownPassThrough",
 176.211 +                        "HOME", "homePassThrough",
 176.212 +                        "END", "endPassThrough",
 176.213 +                        "DOWN", "selectNext",
 176.214 +                        "KP_DOWN", "selectNext",
 176.215 +                        "alt DOWN", "togglePopup",
 176.216 +                        "alt KP_DOWN", "togglePopup",
 176.217 +                        "alt UP", "togglePopup",
 176.218 +                        "alt KP_UP", "togglePopup",
 176.219 +                        "SPACE", "spacePopup",
 176.220 +                        "ENTER", "enterPressed",
 176.221 +                        "UP", "selectPrevious",
 176.222 +                        "KP_UP", "selectPrevious"
 176.223 +
 176.224 +                }),
 176.225 +                "EditorPane.focusInputMap", multilineInputMap,
 176.226 +                "FileChooser.ancestorInputMap",
 176.227 +                new UIDefaults.LazyInputMap(new Object[]{
 176.228 +                        "ESCAPE", "cancelSelection",
 176.229 +                        "F2", "editFileName",
 176.230 +                        "F5", "refresh",
 176.231 +                        "BACK_SPACE", "Go Up",
 176.232 +                        "ENTER", "approveSelection",
 176.233 +                        "ctrl ENTER", "approveSelection"
 176.234 +                }),
 176.235 +                "FormattedTextField.focusInputMap",
 176.236 +                new UIDefaults.LazyInputMap(new Object[]{
 176.237 +                        "ctrl C", DefaultEditorKit.copyAction,
 176.238 +                        "ctrl V", DefaultEditorKit.pasteAction,
 176.239 +                        "ctrl X", DefaultEditorKit.cutAction,
 176.240 +                        "COPY", DefaultEditorKit.copyAction,
 176.241 +                        "PASTE", DefaultEditorKit.pasteAction,
 176.242 +                        "CUT", DefaultEditorKit.cutAction,
 176.243 +                        "control INSERT", DefaultEditorKit.copyAction,
 176.244 +                        "shift INSERT", DefaultEditorKit.pasteAction,
 176.245 +                        "shift DELETE", DefaultEditorKit.cutAction,
 176.246 +                        "shift LEFT", DefaultEditorKit.selectionBackwardAction,
 176.247 +                        "shift KP_LEFT", DefaultEditorKit.selectionBackwardAction,
 176.248 +                        "shift RIGHT", DefaultEditorKit.selectionForwardAction,
 176.249 +                        "shift KP_RIGHT", DefaultEditorKit.selectionForwardAction,
 176.250 +                        "ctrl LEFT", DefaultEditorKit.previousWordAction,
 176.251 +                        "ctrl KP_LEFT", DefaultEditorKit.previousWordAction,
 176.252 +                        "ctrl RIGHT", DefaultEditorKit.nextWordAction,
 176.253 +                        "ctrl KP_RIGHT", DefaultEditorKit.nextWordAction,
 176.254 +                        "ctrl shift LEFT", DefaultEditorKit.selectionPreviousWordAction,
 176.255 +                        "ctrl shift KP_LEFT", DefaultEditorKit.selectionPreviousWordAction,
 176.256 +                        "ctrl shift RIGHT", DefaultEditorKit.selectionNextWordAction,
 176.257 +                        "ctrl shift KP_RIGHT", DefaultEditorKit.selectionNextWordAction,
 176.258 +                        "ctrl A", DefaultEditorKit.selectAllAction,
 176.259 +                        "HOME", DefaultEditorKit.beginLineAction,
 176.260 +                        "END", DefaultEditorKit.endLineAction,
 176.261 +                        "shift HOME", DefaultEditorKit.selectionBeginLineAction,
 176.262 +                        "shift END", DefaultEditorKit.selectionEndLineAction,
 176.263 +                        "BACK_SPACE", DefaultEditorKit.deletePrevCharAction,
 176.264 +                        "shift BACK_SPACE", DefaultEditorKit.deletePrevCharAction,
 176.265 +                        "ctrl H", DefaultEditorKit.deletePrevCharAction,
 176.266 +                        "DELETE", DefaultEditorKit.deleteNextCharAction,
 176.267 +                        "ctrl DELETE", DefaultEditorKit.deleteNextWordAction,
 176.268 +                        "ctrl BACK_SPACE", DefaultEditorKit.deletePrevWordAction,
 176.269 +                        "RIGHT", DefaultEditorKit.forwardAction,
 176.270 +                        "LEFT", DefaultEditorKit.backwardAction,
 176.271 +                        "KP_RIGHT", DefaultEditorKit.forwardAction,
 176.272 +                        "KP_LEFT", DefaultEditorKit.backwardAction,
 176.273 +                        "ENTER", JTextField.notifyAction,
 176.274 +                        "ctrl BACK_SLASH", "unselect",
 176.275 +                        "control shift O", "toggle-componentOrientation",
 176.276 +                        "ESCAPE", "reset-field-edit",
 176.277 +                        "UP", "increment",
 176.278 +                        "KP_UP", "increment",
 176.279 +                        "DOWN", "decrement",
 176.280 +                        "KP_DOWN", "decrement",
 176.281 +                }),
 176.282 +                "InternalFrame.windowBindings",
 176.283 +                new Object[]{
 176.284 +                        "shift ESCAPE", "showSystemMenu",
 176.285 +                        "ctrl SPACE", "showSystemMenu",
 176.286 +                        "ESCAPE", "hideSystemMenu"
 176.287 +                },
 176.288 +                "List.focusInputMap",
 176.289 +                new UIDefaults.LazyInputMap(new Object[]{
 176.290 +                        "ctrl C", "copy",
 176.291 +                        "ctrl V", "paste",
 176.292 +                        "ctrl X", "cut",
 176.293 +                        "COPY", "copy",
 176.294 +                        "PASTE", "paste",
 176.295 +                        "CUT", "cut",
 176.296 +                        "control INSERT", "copy",
 176.297 +                        "shift INSERT", "paste",
 176.298 +                        "shift DELETE", "cut",
 176.299 +                        "UP", "selectPreviousRow",
 176.300 +                        "KP_UP", "selectPreviousRow",
 176.301 +                        "shift UP", "selectPreviousRowExtendSelection",
 176.302 +                        "shift KP_UP", "selectPreviousRowExtendSelection",
 176.303 +                        "ctrl shift UP", "selectPreviousRowExtendSelection",
 176.304 +                        "ctrl shift KP_UP", "selectPreviousRowExtendSelection",
 176.305 +                        "ctrl UP", "selectPreviousRowChangeLead",
 176.306 +                        "ctrl KP_UP", "selectPreviousRowChangeLead",
 176.307 +                        "DOWN", "selectNextRow",
 176.308 +                        "KP_DOWN", "selectNextRow",
 176.309 +                        "shift DOWN", "selectNextRowExtendSelection",
 176.310 +                        "shift KP_DOWN", "selectNextRowExtendSelection",
 176.311 +                        "ctrl shift DOWN", "selectNextRowExtendSelection",
 176.312 +                        "ctrl shift KP_DOWN", "selectNextRowExtendSelection",
 176.313 +                        "ctrl DOWN", "selectNextRowChangeLead",
 176.314 +                        "ctrl KP_DOWN", "selectNextRowChangeLead",
 176.315 +                        "LEFT", "selectPreviousColumn",
 176.316 +                        "KP_LEFT", "selectPreviousColumn",
 176.317 +                        "shift LEFT", "selectPreviousColumnExtendSelection",
 176.318 +                        "shift KP_LEFT", "selectPreviousColumnExtendSelection",
 176.319 +                        "ctrl shift LEFT", "selectPreviousColumnExtendSelection",
 176.320 +                        "ctrl shift KP_LEFT", "selectPreviousColumnExtendSelection",
 176.321 +                        "ctrl LEFT", "selectPreviousColumnChangeLead",
 176.322 +                        "ctrl KP_LEFT", "selectPreviousColumnChangeLead",
 176.323 +                        "RIGHT", "selectNextColumn",
 176.324 +                        "KP_RIGHT", "selectNextColumn",
 176.325 +                        "shift RIGHT", "selectNextColumnExtendSelection",
 176.326 +                        "shift KP_RIGHT", "selectNextColumnExtendSelection",
 176.327 +                        "ctrl shift RIGHT", "selectNextColumnExtendSelection",
 176.328 +                        "ctrl shift KP_RIGHT", "selectNextColumnExtendSelection",
 176.329 +                        "ctrl RIGHT", "selectNextColumnChangeLead",
 176.330 +                        "ctrl KP_RIGHT", "selectNextColumnChangeLead",
 176.331 +                        "HOME", "selectFirstRow",
 176.332 +                        "shift HOME", "selectFirstRowExtendSelection",
 176.333 +                        "ctrl shift HOME", "selectFirstRowExtendSelection",
 176.334 +                        "ctrl HOME", "selectFirstRowChangeLead",
 176.335 +                        "END", "selectLastRow",
 176.336 +                        "shift END", "selectLastRowExtendSelection",
 176.337 +                        "ctrl shift END", "selectLastRowExtendSelection",
 176.338 +                        "ctrl END", "selectLastRowChangeLead",
 176.339 +                        "PAGE_UP", "scrollUp",
 176.340 +                        "shift PAGE_UP", "scrollUpExtendSelection",
 176.341 +                        "ctrl shift PAGE_UP", "scrollUpExtendSelection",
 176.342 +                        "ctrl PAGE_UP", "scrollUpChangeLead",
 176.343 +                        "PAGE_DOWN", "scrollDown",
 176.344 +                        "shift PAGE_DOWN", "scrollDownExtendSelection",
 176.345 +                        "ctrl shift PAGE_DOWN", "scrollDownExtendSelection",
 176.346 +                        "ctrl PAGE_DOWN", "scrollDownChangeLead",
 176.347 +                        "ctrl A", "selectAll",
 176.348 +                        "ctrl SLASH", "selectAll",
 176.349 +                        "ctrl BACK_SLASH", "clearSelection",
 176.350 +                        "SPACE", "addToSelection",
 176.351 +                        "ctrl SPACE", "toggleAndAnchor",
 176.352 +                        "shift SPACE", "extendTo",
 176.353 +                        "ctrl shift SPACE", "moveSelectionTo"
 176.354 +                }),
 176.355 +                "List.focusInputMap.RightToLeft",
 176.356 +                new UIDefaults.LazyInputMap(new Object[]{
 176.357 +                        "LEFT", "selectNextColumn",
 176.358 +                        "KP_LEFT", "selectNextColumn",
 176.359 +                        "shift LEFT", "selectNextColumnExtendSelection",
 176.360 +                        "shift KP_LEFT", "selectNextColumnExtendSelection",
 176.361 +                        "ctrl shift LEFT", "selectNextColumnExtendSelection",
 176.362 +                        "ctrl shift KP_LEFT", "selectNextColumnExtendSelection",
 176.363 +                        "ctrl LEFT", "selectNextColumnChangeLead",
 176.364 +                        "ctrl KP_LEFT", "selectNextColumnChangeLead",
 176.365 +                        "RIGHT", "selectPreviousColumn",
 176.366 +                        "KP_RIGHT", "selectPreviousColumn",
 176.367 +                        "shift RIGHT", "selectPreviousColumnExtendSelection",
 176.368 +                        "shift KP_RIGHT", "selectPreviousColumnExtendSelection",
 176.369 +                        "ctrl shift RIGHT", "selectPreviousColumnExtendSelection",
 176.370 +                        "ctrl shift KP_RIGHT", "selectPreviousColumnExtendSelection",
 176.371 +                        "ctrl RIGHT", "selectPreviousColumnChangeLead",
 176.372 +                        "ctrl KP_RIGHT", "selectPreviousColumnChangeLead",
 176.373 +                }),
 176.374 +                "MenuBar.windowBindings", new Object[]{
 176.375 +                        "F10", "takeFocus"
 176.376 +                },
 176.377 +                "OptionPane.windowBindings", new Object[]{
 176.378 +                        "ESCAPE", "close"
 176.379 +                },
 176.380 +                "PasswordField.focusInputMap", passwordInputMap,
 176.381 +                "PopupMenu.selectedWindowInputMapBindings",
 176.382 +                new Object[]{
 176.383 +                        "ESCAPE", "cancel",
 176.384 +                        "DOWN", "selectNext",
 176.385 +                        "KP_DOWN", "selectNext",
 176.386 +                        "UP", "selectPrevious",
 176.387 +                        "KP_UP", "selectPrevious",
 176.388 +                        "LEFT", "selectParent",
 176.389 +                        "KP_LEFT", "selectParent",
 176.390 +                        "RIGHT", "selectChild",
 176.391 +                        "KP_RIGHT", "selectChild",
 176.392 +                        "ENTER", "return",
 176.393 +                        "SPACE", "return"
 176.394 +                },
 176.395 +                "PopupMenu.selectedWindowInputMapBindings.RightToLeft",
 176.396 +                new Object[]{
 176.397 +                        "LEFT", "selectChild",
 176.398 +                        "KP_LEFT", "selectChild",
 176.399 +                        "RIGHT", "selectParent",
 176.400 +                        "KP_RIGHT", "selectParent",
 176.401 +                },
 176.402 +                "RadioButton.focusInputMap",
 176.403 +                new UIDefaults.LazyInputMap(new Object[]{
 176.404 +                        "SPACE", "pressed",
 176.405 +                        "released SPACE", "released",
 176.406 +                        "RETURN", "pressed"
 176.407 +                }),
 176.408 +                // These bindings are only enabled when there is a default
 176.409 +                // button set on the rootpane.
 176.410 +                "RootPane.defaultButtonWindowKeyBindings", new Object[]{
 176.411 +                        "ENTER", "press",
 176.412 +                        "released ENTER", "release",
 176.413 +                        "ctrl ENTER", "press",
 176.414 +                        "ctrl released ENTER", "release"
 176.415 +                },
 176.416 +                "ScrollBar.ancestorInputMap",
 176.417 +                new UIDefaults.LazyInputMap(new Object[]{
 176.418 +                        "RIGHT", "positiveUnitIncrement",
 176.419 +                        "KP_RIGHT", "positiveUnitIncrement",
 176.420 +                        "DOWN", "positiveUnitIncrement",
 176.421 +                        "KP_DOWN", "positiveUnitIncrement",
 176.422 +                        "PAGE_DOWN", "positiveBlockIncrement",
 176.423 +                        "LEFT", "negativeUnitIncrement",
 176.424 +                        "KP_LEFT", "negativeUnitIncrement",
 176.425 +                        "UP", "negativeUnitIncrement",
 176.426 +                        "KP_UP", "negativeUnitIncrement",
 176.427 +                        "PAGE_UP", "negativeBlockIncrement",
 176.428 +                        "HOME", "minScroll",
 176.429 +                        "END", "maxScroll"
 176.430 +                }),
 176.431 +                "ScrollBar.ancestorInputMap.RightToLeft",
 176.432 +                new UIDefaults.LazyInputMap(new Object[]{
 176.433 +                        "RIGHT", "negativeUnitIncrement",
 176.434 +                        "KP_RIGHT", "negativeUnitIncrement",
 176.435 +                        "LEFT", "positiveUnitIncrement",
 176.436 +                        "KP_LEFT", "positiveUnitIncrement",
 176.437 +                }),
 176.438 +                "ScrollPane.ancestorInputMap",
 176.439 +                new UIDefaults.LazyInputMap(new Object[]{
 176.440 +                        "RIGHT", "unitScrollRight",
 176.441 +                        "KP_RIGHT", "unitScrollRight",
 176.442 +                        "DOWN", "unitScrollDown",
 176.443 +                        "KP_DOWN", "unitScrollDown",
 176.444 +                        "LEFT", "unitScrollLeft",
 176.445 +                        "KP_LEFT", "unitScrollLeft",
 176.446 +                        "UP", "unitScrollUp",
 176.447 +                        "KP_UP", "unitScrollUp",
 176.448 +                        "PAGE_UP", "scrollUp",
 176.449 +                        "PAGE_DOWN", "scrollDown",
 176.450 +                        "ctrl PAGE_UP", "scrollLeft",
 176.451 +                        "ctrl PAGE_DOWN", "scrollRight",
 176.452 +                        "ctrl HOME", "scrollHome",
 176.453 +                        "ctrl END", "scrollEnd"
 176.454 +                }),
 176.455 +                "ScrollPane.ancestorInputMap.RightToLeft",
 176.456 +                new UIDefaults.LazyInputMap(new Object[]{
 176.457 +                        "ctrl PAGE_UP", "scrollRight",
 176.458 +                        "ctrl PAGE_DOWN", "scrollLeft",
 176.459 +                }),
 176.460 +                "Slider.focusInputMap",
 176.461 +                new UIDefaults.LazyInputMap(new Object[]{
 176.462 +                        "RIGHT", "positiveUnitIncrement",
 176.463 +                        "KP_RIGHT", "positiveUnitIncrement",
 176.464 +                        "DOWN", "negativeUnitIncrement",
 176.465 +                        "KP_DOWN", "negativeUnitIncrement",
 176.466 +                        "PAGE_DOWN", "negativeBlockIncrement",
 176.467 +                        "LEFT", "negativeUnitIncrement",
 176.468 +                        "KP_LEFT", "negativeUnitIncrement",
 176.469 +                        "UP", "positiveUnitIncrement",
 176.470 +                        "KP_UP", "positiveUnitIncrement",
 176.471 +                        "PAGE_UP", "positiveBlockIncrement",
 176.472 +                        "HOME", "minScroll",
 176.473 +                        "END", "maxScroll"
 176.474 +                }),
 176.475 +                "Slider.focusInputMap.RightToLeft",
 176.476 +                new UIDefaults.LazyInputMap(new Object[]{
 176.477 +                        "RIGHT", "negativeUnitIncrement",
 176.478 +                        "KP_RIGHT", "negativeUnitIncrement",
 176.479 +                        "LEFT", "positiveUnitIncrement",
 176.480 +                        "KP_LEFT", "positiveUnitIncrement",
 176.481 +                }),
 176.482 +                "Spinner.ancestorInputMap",
 176.483 +                new UIDefaults.LazyInputMap(new Object[]{
 176.484 +                        "UP", "increment",
 176.485 +                        "KP_UP", "increment",
 176.486 +                        "DOWN", "decrement",
 176.487 +                        "KP_DOWN", "decrement",
 176.488 +                }),
 176.489 +                "SplitPane.ancestorInputMap",
 176.490 +                new UIDefaults.LazyInputMap(new Object[]{
 176.491 +                        "UP", "negativeIncrement",
 176.492 +                        "DOWN", "positiveIncrement",
 176.493 +                        "LEFT", "negativeIncrement",
 176.494 +                        "RIGHT", "positiveIncrement",
 176.495 +                        "KP_UP", "negativeIncrement",
 176.496 +                        "KP_DOWN", "positiveIncrement",
 176.497 +                        "KP_LEFT", "negativeIncrement",
 176.498 +                        "KP_RIGHT", "positiveIncrement",
 176.499 +                        "HOME", "selectMin",
 176.500 +                        "END", "selectMax",
 176.501 +                        "F8", "startResize",
 176.502 +                        "F6", "toggleFocus",
 176.503 +                        "ctrl TAB", "focusOutForward",
 176.504 +                        "ctrl shift TAB", "focusOutBackward"
 176.505 +                }),
 176.506 +                "TabbedPane.focusInputMap",
 176.507 +                new UIDefaults.LazyInputMap(new Object[]{
 176.508 +                        "RIGHT", "navigateRight",
 176.509 +                        "KP_RIGHT", "navigateRight",
 176.510 +                        "LEFT", "navigateLeft",
 176.511 +                        "KP_LEFT", "navigateLeft",
 176.512 +                        "UP", "navigateUp",
 176.513 +                        "KP_UP", "navigateUp",
 176.514 +                        "DOWN", "navigateDown",
 176.515 +                        "KP_DOWN", "navigateDown",
 176.516 +                        "ctrl DOWN", "requestFocusForVisibleComponent",
 176.517 +                        "ctrl KP_DOWN", "requestFocusForVisibleComponent",
 176.518 +                        "SPACE", "selectTabWithFocus"
 176.519 +                }),
 176.520 +                "TabbedPane.ancestorInputMap",
 176.521 +                new UIDefaults.LazyInputMap(new Object[]{
 176.522 +                        "ctrl TAB", "navigateNext",
 176.523 +                        "ctrl shift TAB", "navigatePrevious",
 176.524 +                        "ctrl PAGE_DOWN", "navigatePageDown",
 176.525 +                        "ctrl PAGE_UP", "navigatePageUp",
 176.526 +                        "ctrl UP", "requestFocus",
 176.527 +                        "ctrl KP_UP", "requestFocus",
 176.528 +                }),
 176.529 +                "TableHeader.ancestorInputMap",
 176.530 +                   new UIDefaults.LazyInputMap(new Object[] {
 176.531 +                                    "SPACE", "toggleSortOrder",
 176.532 +                                     "LEFT", "selectColumnToLeft",
 176.533 +                                  "KP_LEFT", "selectColumnToLeft",
 176.534 +                                    "RIGHT", "selectColumnToRight",
 176.535 +                                 "KP_RIGHT", "selectColumnToRight",
 176.536 +                                 "alt LEFT", "moveColumnLeft",
 176.537 +                              "alt KP_LEFT", "moveColumnLeft",
 176.538 +                                "alt RIGHT", "moveColumnRight",
 176.539 +                             "alt KP_RIGHT", "moveColumnRight",
 176.540 +                           "alt shift LEFT", "resizeLeft",
 176.541 +                        "alt shift KP_LEFT", "resizeLeft",
 176.542 +                          "alt shift RIGHT", "resizeRight",
 176.543 +                       "alt shift KP_RIGHT", "resizeRight",
 176.544 +                                   "ESCAPE", "focusTable",
 176.545 +                   }),
 176.546 +                "Table.ancestorInputMap",
 176.547 +                new UIDefaults.LazyInputMap(new Object[]{
 176.548 +                        "ctrl C", "copy",
 176.549 +                        "ctrl V", "paste",
 176.550 +                        "ctrl X", "cut",
 176.551 +                        "COPY", "copy",
 176.552 +                        "PASTE", "paste",
 176.553 +                        "CUT", "cut",
 176.554 +                        "control INSERT", "copy",
 176.555 +                        "shift INSERT", "paste",
 176.556 +                        "shift DELETE", "cut",
 176.557 +                        "RIGHT", "selectNextColumn",
 176.558 +                        "KP_RIGHT", "selectNextColumn",
 176.559 +                        "shift RIGHT", "selectNextColumnExtendSelection",
 176.560 +                        "shift KP_RIGHT", "selectNextColumnExtendSelection",
 176.561 +                        "ctrl shift RIGHT", "selectNextColumnExtendSelection",
 176.562 +                        "ctrl shift KP_RIGHT", "selectNextColumnExtendSelection",
 176.563 +                        "ctrl RIGHT", "selectNextColumnChangeLead",
 176.564 +                        "ctrl KP_RIGHT", "selectNextColumnChangeLead",
 176.565 +                        "LEFT", "selectPreviousColumn",
 176.566 +                        "KP_LEFT", "selectPreviousColumn",
 176.567 +                        "shift LEFT", "selectPreviousColumnExtendSelection",
 176.568 +                        "shift KP_LEFT", "selectPreviousColumnExtendSelection",
 176.569 +                        "ctrl shift LEFT", "selectPreviousColumnExtendSelection",
 176.570 +                        "ctrl shift KP_LEFT", "selectPreviousColumnExtendSelection",
 176.571 +                        "ctrl LEFT", "selectPreviousColumnChangeLead",
 176.572 +                        "ctrl KP_LEFT", "selectPreviousColumnChangeLead",
 176.573 +                        "DOWN", "selectNextRow",
 176.574 +                        "KP_DOWN", "selectNextRow",
 176.575 +                        "shift DOWN", "selectNextRowExtendSelection",
 176.576 +                        "shift KP_DOWN", "selectNextRowExtendSelection",
 176.577 +                        "ctrl shift DOWN", "selectNextRowExtendSelection",
 176.578 +                        "ctrl shift KP_DOWN", "selectNextRowExtendSelection",
 176.579 +                        "ctrl DOWN", "selectNextRowChangeLead",
 176.580 +                        "ctrl KP_DOWN", "selectNextRowChangeLead",
 176.581 +                        "UP", "selectPreviousRow",
 176.582 +                        "KP_UP", "selectPreviousRow",
 176.583 +                        "shift UP", "selectPreviousRowExtendSelection",
 176.584 +                        "shift KP_UP", "selectPreviousRowExtendSelection",
 176.585 +                        "ctrl shift UP", "selectPreviousRowExtendSelection",
 176.586 +                        "ctrl shift KP_UP", "selectPreviousRowExtendSelection",
 176.587 +                        "ctrl UP", "selectPreviousRowChangeLead",
 176.588 +                        "ctrl KP_UP", "selectPreviousRowChangeLead",
 176.589 +                        "HOME", "selectFirstColumn",
 176.590 +                        "shift HOME", "selectFirstColumnExtendSelection",
 176.591 +                        "ctrl shift HOME", "selectFirstRowExtendSelection",
 176.592 +                        "ctrl HOME", "selectFirstRow",
 176.593 +                        "END", "selectLastColumn",
 176.594 +                        "shift END", "selectLastColumnExtendSelection",
 176.595 +                        "ctrl shift END", "selectLastRowExtendSelection",
 176.596 +                        "ctrl END", "selectLastRow",
 176.597 +                        "PAGE_UP", "scrollUpChangeSelection",
 176.598 +                        "shift PAGE_UP", "scrollUpExtendSelection",
 176.599 +                        "ctrl shift PAGE_UP", "scrollLeftExtendSelection",
 176.600 +                        "ctrl PAGE_UP", "scrollLeftChangeSelection",
 176.601 +                        "PAGE_DOWN", "scrollDownChangeSelection",
 176.602 +                        "shift PAGE_DOWN", "scrollDownExtendSelection",
 176.603 +                        "ctrl shift PAGE_DOWN", "scrollRightExtendSelection",
 176.604 +                        "ctrl PAGE_DOWN", "scrollRightChangeSelection",
 176.605 +                        "TAB", "selectNextColumnCell",
 176.606 +                        "shift TAB", "selectPreviousColumnCell",
 176.607 +                        "ENTER", "selectNextRowCell",
 176.608 +                        "shift ENTER", "selectPreviousRowCell",
 176.609 +                        "ctrl A", "selectAll",
 176.610 +                        "ctrl SLASH", "selectAll",
 176.611 +                        "ctrl BACK_SLASH", "clearSelection",
 176.612 +                        "ESCAPE", "cancel",
 176.613 +                        "F2", "startEditing",
 176.614 +                        "SPACE", "addToSelection",
 176.615 +                        "ctrl SPACE", "toggleAndAnchor",
 176.616 +                        "shift SPACE", "extendTo",
 176.617 +                        "ctrl shift SPACE", "moveSelectionTo",
 176.618 +                        "F8", "focusHeader"
 176.619 +                }),
 176.620 +                "Table.ancestorInputMap.RightToLeft",
 176.621 +                new UIDefaults.LazyInputMap(new Object[]{
 176.622 +                        "RIGHT", "selectPreviousColumn",
 176.623 +                        "KP_RIGHT", "selectPreviousColumn",
 176.624 +                        "shift RIGHT", "selectPreviousColumnExtendSelection",
 176.625 +                        "shift KP_RIGHT", "selectPreviousColumnExtendSelection",
 176.626 +                        "ctrl shift RIGHT", "selectPreviousColumnExtendSelection",
 176.627 +                        "ctrl shift KP_RIGHT", "selectPreviousColumnExtendSelection",
 176.628 +                        "shift RIGHT", "selectPreviousColumnChangeLead",
 176.629 +                        "shift KP_RIGHT", "selectPreviousColumnChangeLead",
 176.630 +                        "LEFT", "selectNextColumn",
 176.631 +                        "KP_LEFT", "selectNextColumn",
 176.632 +                        "shift LEFT", "selectNextColumnExtendSelection",
 176.633 +                        "shift KP_LEFT", "selectNextColumnExtendSelection",
 176.634 +                        "ctrl shift LEFT", "selectNextColumnExtendSelection",
 176.635 +                        "ctrl shift KP_LEFT", "selectNextColumnExtendSelection",
 176.636 +                        "ctrl LEFT", "selectNextColumnChangeLead",
 176.637 +                        "ctrl KP_LEFT", "selectNextColumnChangeLead",
 176.638 +                        "ctrl PAGE_UP", "scrollRightChangeSelection",
 176.639 +                        "ctrl PAGE_DOWN", "scrollLeftChangeSelection",
 176.640 +                        "ctrl shift PAGE_UP", "scrollRightExtendSelection",
 176.641 +                        "ctrl shift PAGE_DOWN", "scrollLeftExtendSelection",
 176.642 +                }),
 176.643 +                "TextArea.focusInputMap", multilineInputMap,
 176.644 +                "TextField.focusInputMap", fieldInputMap,
 176.645 +                "TextPane.focusInputMap", multilineInputMap,
 176.646 +                "ToggleButton.focusInputMap",
 176.647 +                new UIDefaults.LazyInputMap(new Object[]{
 176.648 +                        "SPACE", "pressed",
 176.649 +                        "released SPACE", "released"
 176.650 +                }),
 176.651 +                "ToolBar.ancestorInputMap",
 176.652 +                new UIDefaults.LazyInputMap(new Object[]{
 176.653 +                        "UP", "navigateUp",
 176.654 +                        "KP_UP", "navigateUp",
 176.655 +                        "DOWN", "navigateDown",
 176.656 +                        "KP_DOWN", "navigateDown",
 176.657 +                        "LEFT", "navigateLeft",
 176.658 +                        "KP_LEFT", "navigateLeft",
 176.659 +                        "RIGHT", "navigateRight",
 176.660 +                        "KP_RIGHT", "navigateRight"
 176.661 +                }),
 176.662 +                "Tree.focusInputMap",
 176.663 +                new UIDefaults.LazyInputMap(new Object[]{
 176.664 +                        "ctrl C", "copy",
 176.665 +                        "ctrl V", "paste",
 176.666 +                        "ctrl X", "cut",
 176.667 +                        "COPY", "copy",
 176.668 +                        "PASTE", "paste",
 176.669 +                        "CUT", "cut",
 176.670 +                        "control INSERT", "copy",
 176.671 +                        "shift INSERT", "paste",
 176.672 +                        "shift DELETE", "cut",
 176.673 +                        "UP", "selectPrevious",
 176.674 +                        "KP_UP", "selectPrevious",
 176.675 +                        "shift UP", "selectPreviousExtendSelection",
 176.676 +                        "shift KP_UP", "selectPreviousExtendSelection",
 176.677 +                        "ctrl shift UP", "selectPreviousExtendSelection",
 176.678 +                        "ctrl shift KP_UP", "selectPreviousExtendSelection",
 176.679 +                        "ctrl UP", "selectPreviousChangeLead",
 176.680 +                        "ctrl KP_UP", "selectPreviousChangeLead",
 176.681 +                        "DOWN", "selectNext",
 176.682 +                        "KP_DOWN", "selectNext",
 176.683 +                        "shift DOWN", "selectNextExtendSelection",
 176.684 +                        "shift KP_DOWN", "selectNextExtendSelection",
 176.685 +                        "ctrl shift DOWN", "selectNextExtendSelection",
 176.686 +                        "ctrl shift KP_DOWN", "selectNextExtendSelection",
 176.687 +                        "ctrl DOWN", "selectNextChangeLead",
 176.688 +                        "ctrl KP_DOWN", "selectNextChangeLead",
 176.689 +                        "RIGHT", "selectChild",
 176.690 +                        "KP_RIGHT", "selectChild",
 176.691 +                        "LEFT", "selectParent",
 176.692 +                        "KP_LEFT", "selectParent",
 176.693 +                        "typed +", "expand",
 176.694 +                        "typed -", "collapse",
 176.695 +                        "BACK_SPACE", "moveSelectionToParent",
 176.696 +                        "PAGE_UP", "scrollUpChangeSelection",
 176.697 +                        "shift PAGE_UP", "scrollUpExtendSelection",
 176.698 +                        "ctrl shift PAGE_UP", "scrollUpExtendSelection",
 176.699 +                        "ctrl PAGE_UP", "scrollUpChangeLead",
 176.700 +                        "PAGE_DOWN", "scrollDownChangeSelection",
 176.701 +                        "shift PAGE_DOWN", "scrollDownExtendSelection",
 176.702 +                        "ctrl shift PAGE_DOWN", "scrollDownExtendSelection",
 176.703 +                        "ctrl PAGE_DOWN", "scrollDownChangeLead",
 176.704 +                        "HOME", "selectFirst",
 176.705 +                        "shift HOME", "selectFirstExtendSelection",
 176.706 +                        "ctrl shift HOME", "selectFirstExtendSelection",
 176.707 +                        "ctrl HOME", "selectFirstChangeLead",
 176.708 +                        "END", "selectLast",
 176.709 +                        "shift END", "selectLastExtendSelection",
 176.710 +                        "ctrl shift END", "selectLastExtendSelection",
 176.711 +                        "ctrl END", "selectLastChangeLead",
 176.712 +                        "F2", "startEditing",
 176.713 +                        "ctrl A", "selectAll",
 176.714 +                        "ctrl SLASH", "selectAll",
 176.715 +                        "ctrl BACK_SLASH", "clearSelection",
 176.716 +                        "ctrl LEFT", "scrollLeft",
 176.717 +                        "ctrl KP_LEFT", "scrollLeft",
 176.718 +                        "ctrl RIGHT", "scrollRight",
 176.719 +                        "ctrl KP_RIGHT", "scrollRight",
 176.720 +                        "SPACE", "addToSelection",
 176.721 +                        "ctrl SPACE", "toggleAndAnchor",
 176.722 +                        "shift SPACE", "extendTo",
 176.723 +                        "ctrl shift SPACE", "moveSelectionTo"
 176.724 +                }),
 176.725 +                "Tree.focusInputMap.RightToLeft",
 176.726 +                new UIDefaults.LazyInputMap(new Object[]{
 176.727 +                        "RIGHT", "selectParent",
 176.728 +                        "KP_RIGHT", "selectParent",
 176.729 +                        "LEFT", "selectChild",
 176.730 +                        "KP_LEFT", "selectChild",
 176.731 +                }),
 176.732 +                "Tree.ancestorInputMap",
 176.733 +                new UIDefaults.LazyInputMap(new Object[]{
 176.734 +                        "ESCAPE", "cancel"
 176.735 +                }),
 176.736 +        };
 176.737 +        table.putDefaults(defaults);
 176.738 +    }
 176.739 +}
   177.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   177.2 +++ b/src/share/classes/sun/swing/plaf/WindowsKeybindings.java	Wed Apr 29 00:27:46 2009 -0700
   177.3 @@ -0,0 +1,643 @@
   177.4 +/*
   177.5 + * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
   177.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   177.7 + *
   177.8 + * This code is free software; you can redistribute it and/or modify it
   177.9 + * under the terms of the GNU General Public License version 2 only, as
  177.10 + * published by the Free Software Foundation.  Sun designates this
  177.11 + * particular file as subject to the "Classpath" exception as provided
  177.12 + * by Sun in the LICENSE file that accompanied this code.
  177.13 + *
  177.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  177.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  177.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  177.17 + * version 2 for more details (a copy is included in the LICENSE file that
  177.18 + * accompanied this code).
  177.19 + *
  177.20 + * You should have received a copy of the GNU General Public License version
  177.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  177.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  177.23 + *
  177.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  177.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  177.26 + * have any questions.
  177.27 + */
  177.28 +
  177.29 +package sun.swing.plaf;
  177.30 +
  177.31 +import javax.swing.JTextField;
  177.32 +import javax.swing.UIDefaults;
  177.33 +import javax.swing.text.DefaultEditorKit;
  177.34 +
  177.35 +/**
  177.36 + * WindowsKeybindings - The standard set of keymaps for the Windows Platform
  177.37 + *
  177.38 + * @author Jasper Potts
  177.39 + */
  177.40 +public class WindowsKeybindings {
  177.41 +
  177.42 +    /**
  177.43 +     * Install all Windows keybindings into the provided UIDefaults table
  177.44 +     *
  177.45 +     * @param table The UiDefaults table to install into
  177.46 +     */
  177.47 +    public static void installKeybindings(UIDefaults table) {
  177.48 +        // *** Text
  177.49 +        Object fieldInputMap = new UIDefaults.LazyInputMap(new Object[]{
  177.50 +                "control C", DefaultEditorKit.copyAction,
  177.51 +                "control V", DefaultEditorKit.pasteAction,
  177.52 +                "control X", DefaultEditorKit.cutAction,
  177.53 +                "COPY", DefaultEditorKit.copyAction,
  177.54 +                "PASTE", DefaultEditorKit.pasteAction,
  177.55 +                "CUT", DefaultEditorKit.cutAction,
  177.56 +                "control INSERT", DefaultEditorKit.copyAction,
  177.57 +                "shift INSERT", DefaultEditorKit.pasteAction,
  177.58 +                "shift DELETE", DefaultEditorKit.cutAction,
  177.59 +                "control A", DefaultEditorKit.selectAllAction,
  177.60 +                "control BACK_SLASH", "unselect"/*DefaultEditorKit.unselectAction*/,
  177.61 +                "shift LEFT", DefaultEditorKit.selectionBackwardAction,
  177.62 +                "shift RIGHT", DefaultEditorKit.selectionForwardAction,
  177.63 +                "control LEFT", DefaultEditorKit.previousWordAction,
  177.64 +                "control RIGHT", DefaultEditorKit.nextWordAction,
  177.65 +                "control shift LEFT", DefaultEditorKit.selectionPreviousWordAction,
  177.66 +                "control shift RIGHT", DefaultEditorKit.selectionNextWordAction,
  177.67 +                "HOME", DefaultEditorKit.beginLineAction,
  177.68 +                "END", DefaultEditorKit.endLineAction,
  177.69 +                "shift HOME", DefaultEditorKit.selectionBeginLineAction,
  177.70 +                "shift END", DefaultEditorKit.selectionEndLineAction,
  177.71 +                "BACK_SPACE", DefaultEditorKit.deletePrevCharAction,
  177.72 +                "shift BACK_SPACE", DefaultEditorKit.deletePrevCharAction,
  177.73 +                "ctrl H", DefaultEditorKit.deletePrevCharAction,
  177.74 +                "DELETE", DefaultEditorKit.deleteNextCharAction,
  177.75 +                "ctrl DELETE", DefaultEditorKit.deleteNextWordAction,
  177.76 +                "ctrl BACK_SPACE", DefaultEditorKit.deletePrevWordAction,
  177.77 +                "RIGHT", DefaultEditorKit.forwardAction,
  177.78 +                "LEFT", DefaultEditorKit.backwardAction,
  177.79 +                "KP_RIGHT", DefaultEditorKit.forwardAction,
  177.80 +                "KP_LEFT", DefaultEditorKit.backwardAction,
  177.81 +                "ENTER", JTextField.notifyAction,
  177.82 +                "control shift O", "toggle-componentOrientation"/*DefaultEditorKit.toggleComponentOrientation*/
  177.83 +        });
  177.84 +        Object passwordInputMap = new UIDefaults.LazyInputMap(new Object[]{
  177.85 +                "control C", DefaultEditorKit.copyAction,
  177.86 +                "control V", DefaultEditorKit.pasteAction,
  177.87 +                "control X", DefaultEditorKit.cutAction,
  177.88 +                "COPY", DefaultEditorKit.copyAction,
  177.89 +                "PASTE", DefaultEditorKit.pasteAction,
  177.90 +                "CUT", DefaultEditorKit.cutAction,
  177.91 +                "control INSERT", DefaultEditorKit.copyAction,
  177.92 +                "shift INSERT", DefaultEditorKit.pasteAction,
  177.93 +                "shift DELETE", DefaultEditorKit.cutAction,
  177.94 +                "control A", DefaultEditorKit.selectAllAction,
  177.95 +                "control BACK_SLASH", "unselect"/*DefaultEditorKit.unselectAction*/,
  177.96 +                "shift LEFT", DefaultEditorKit.selectionBackwardAction,
  177.97 +                "shift RIGHT", DefaultEditorKit.selectionForwardAction,
  177.98 +                "control LEFT", DefaultEditorKit.beginLineAction,
  177.99 +                "control RIGHT", DefaultEditorKit.endLineAction,
 177.100 +                "control shift LEFT", DefaultEditorKit.selectionBeginLineAction,
 177.101 +                "control shift RIGHT", DefaultEditorKit.selectionEndLineAction,
 177.102 +                "HOME", DefaultEditorKit.beginLineAction,
 177.103 +                "END", DefaultEditorKit.endLineAction,
 177.104 +                "shift HOME", DefaultEditorKit.selectionBeginLineAction,
 177.105 +                "shift END", DefaultEditorKit.selectionEndLineAction,
 177.106 +                "BACK_SPACE", DefaultEditorKit.deletePrevCharAction,
 177.107 +                "shift BACK_SPACE", DefaultEditorKit.deletePrevCharAction,
 177.108 +                "ctrl H", DefaultEditorKit.deletePrevCharAction,
 177.109 +                "DELETE", DefaultEditorKit.deleteNextCharAction,
 177.110 +                "RIGHT", DefaultEditorKit.forwardAction,
 177.111 +                "LEFT", DefaultEditorKit.backwardAction,
 177.112 +                "KP_RIGHT", DefaultEditorKit.forwardAction,
 177.113 +                "KP_LEFT", DefaultEditorKit.backwardAction,
 177.114 +                "ENTER", JTextField.notifyAction,
 177.115 +                "control shift O", "toggle-componentOrientation"/*DefaultEditorKit.toggleComponentOrientation*/
 177.116 +        });
 177.117 +        Object multilineInputMap = new UIDefaults.LazyInputMap(new Object[]{
 177.118 +                "control C", DefaultEditorKit.copyAction,
 177.119 +                "control V", DefaultEditorKit.pasteAction,
 177.120 +                "control X", DefaultEditorKit.cutAction,
 177.121 +                "COPY", DefaultEditorKit.copyAction,
 177.122 +                "PASTE", DefaultEditorKit.pasteAction,
 177.123 +                "CUT", DefaultEditorKit.cutAction,
 177.124 +                "control INSERT", DefaultEditorKit.copyAction,
 177.125 +                "shift INSERT", DefaultEditorKit.pasteAction,
 177.126 +                "shift DELETE", DefaultEditorKit.cutAction,
 177.127 +                "shift LEFT", DefaultEditorKit.selectionBackwardAction,
 177.128 +                "shift RIGHT", DefaultEditorKit.selectionForwardAction,
 177.129 +                "control LEFT", DefaultEditorKit.previousWordAction,
 177.130 +                "control RIGHT", DefaultEditorKit.nextWordAction,
 177.131 +                "control shift LEFT", DefaultEditorKit.selectionPreviousWordAction,
 177.132 +                "control shift RIGHT", DefaultEditorKit.selectionNextWordAction,
 177.133 +                "control A", DefaultEditorKit.selectAllAction,
 177.134 +                "control BACK_SLASH", "unselect"/*DefaultEditorKit.unselectAction*/,
 177.135 +                "HOME", DefaultEditorKit.beginLineAction,
 177.136 +                "END", DefaultEditorKit.endLineAction,
 177.137 +                "shift HOME", DefaultEditorKit.selectionBeginLineAction,
 177.138 +                "shift END", DefaultEditorKit.selectionEndLineAction,
 177.139 +                "control HOME", DefaultEditorKit.beginAction,
 177.140 +                "control END", DefaultEditorKit.endAction,
 177.141 +                "control shift HOME", DefaultEditorKit.selectionBeginAction,
 177.142 +                "control shift END", DefaultEditorKit.selectionEndAction,
 177.143 +                "UP", DefaultEditorKit.upAction,
 177.144 +                "DOWN", DefaultEditorKit.downAction,
 177.145 +                "BACK_SPACE", DefaultEditorKit.deletePrevCharAction,
 177.146 +                "shift BACK_SPACE", DefaultEditorKit.deletePrevCharAction,
 177.147 +                "ctrl H", DefaultEditorKit.deletePrevCharAction,
 177.148 +                "DELETE", DefaultEditorKit.deleteNextCharAction,
 177.149 +                "ctrl DELETE", DefaultEditorKit.deleteNextWordAction,
 177.150 +                "ctrl BACK_SPACE", DefaultEditorKit.deletePrevWordAction,
 177.151 +                "RIGHT", DefaultEditorKit.forwardAction,
 177.152 +                "LEFT", DefaultEditorKit.backwardAction,
 177.153 +                "KP_RIGHT", DefaultEditorKit.forwardAction,
 177.154 +                "KP_LEFT", DefaultEditorKit.backwardAction,
 177.155 +                "PAGE_UP", DefaultEditorKit.pageUpAction,
 177.156 +                "PAGE_DOWN", DefaultEditorKit.pageDownAction,
 177.157 +                "shift PAGE_UP", "selection-page-up",
 177.158 +                "shift PAGE_DOWN", "selection-page-down",
 177.159 +                "ctrl shift PAGE_UP", "selection-page-left",
 177.160 +                "ctrl shift PAGE_DOWN", "selection-page-right",
 177.161 +                "shift UP", DefaultEditorKit.selectionUpAction,
 177.162 +                "shift DOWN", DefaultEditorKit.selectionDownAction,
 177.163 +                "ENTER", DefaultEditorKit.insertBreakAction,
 177.164 +                "TAB", DefaultEditorKit.insertTabAction,
 177.165 +                "control T", "next-link-action",
 177.166 +                "control shift T", "previous-link-action",
 177.167 +                "control SPACE", "activate-link-action",
 177.168 +                "control shift O", "toggle-componentOrientation"/*DefaultEditorKit.toggleComponentOrientation*/
 177.169 +        });
 177.170 +        Object[] defaults = {
 177.171 +                "TextField.focusInputMap", fieldInputMap,
 177.172 +                "PasswordField.focusInputMap", passwordInputMap,
 177.173 +                "TextArea.focusInputMap", multilineInputMap,
 177.174 +                "TextPane.focusInputMap", multilineInputMap,
 177.175 +                "EditorPane.focusInputMap", multilineInputMap,
 177.176 +                "Button.focusInputMap",
 177.177 +                new UIDefaults.LazyInputMap(new Object[]{
 177.178 +                        "SPACE", "pressed",
 177.179 +                        "released SPACE", "released"
 177.180 +                }),
 177.181 +                "CheckBox.focusInputMap",
 177.182 +                new UIDefaults.LazyInputMap(new Object[]{
 177.183 +                        "SPACE", "pressed",
 177.184 +                        "released SPACE", "released"
 177.185 +                }),
 177.186 +                "ComboBox.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[]{
 177.187 +                        "ESCAPE", "hidePopup",
 177.188 +                        "PAGE_UP", "pageUpPassThrough",
 177.189 +                        "PAGE_DOWN", "pageDownPassThrough",
 177.190 +                        "HOME", "homePassThrough",
 177.191 +                        "END", "endPassThrough",
 177.192 +                        "DOWN", "selectNext2",
 177.193 +                        "KP_DOWN", "selectNext2",
 177.194 +                        "UP", "selectPrevious2",
 177.195 +                        "KP_UP", "selectPrevious2",
 177.196 +                        "ENTER", "enterPressed",
 177.197 +                        "F4", "togglePopup",
 177.198 +                        "alt DOWN", "togglePopup",
 177.199 +                        "alt KP_DOWN", "togglePopup",
 177.200 +                        "alt UP", "togglePopup",
 177.201 +                        "alt KP_UP", "togglePopup"
 177.202 +                }),
 177.203 +                "Desktop.ancestorInputMap",
 177.204 +                new UIDefaults.LazyInputMap(new Object[]{
 177.205 +                        "ctrl F5", "restore",
 177.206 +                        "ctrl F4", "close",
 177.207 +                        "ctrl F7", "move",
 177.208 +                        "ctrl F8", "resize",
 177.209 +                        "RIGHT", "right",
 177.210 +                        "KP_RIGHT", "right",
 177.211 +                        "LEFT", "left",
 177.212 +                        "KP_LEFT", "left",
 177.213 +                        "UP", "up",
 177.214 +                        "KP_UP", "up",
 177.215 +                        "DOWN", "down",
 177.216 +                        "KP_DOWN", "down",
 177.217 +                        "ESCAPE", "escape",
 177.218 +                        "ctrl F9", "minimize",
 177.219 +                        "ctrl F10", "maximize",
 177.220 +                        "ctrl F6", "selectNextFrame",
 177.221 +                        "ctrl TAB", "selectNextFrame",
 177.222 +                        "ctrl alt F6", "selectNextFrame",
 177.223 +                        "shift ctrl alt F6", "selectPreviousFrame",
 177.224 +                        "ctrl F12", "navigateNext",
 177.225 +                        "shift ctrl F12", "navigatePrevious"
 177.226 +                }),
 177.227 +                "FileChooser.ancestorInputMap",
 177.228 +                new UIDefaults.LazyInputMap(new Object[]{
 177.229 +                        "ESCAPE", "cancelSelection",
 177.230 +                        "F2", "editFileName",
 177.231 +                        "F5", "refresh",
 177.232 +                        "BACK_SPACE", "Go Up",
 177.233 +                        "ENTER", "approveSelection",
 177.234 +                        "ctrl ENTER", "approveSelection"
 177.235 +                }),
 177.236 +                "InternalFrame.windowBindings", new Object[]{
 177.237 +                        "shift ESCAPE", "showSystemMenu",
 177.238 +                        "ctrl SPACE", "showSystemMenu",
 177.239 +                        "ESCAPE", "hideSystemMenu"
 177.240 +                },
 177.241 +                "List.focusInputMap",
 177.242 +                new UIDefaults.LazyInputMap(new Object[]{
 177.243 +                        "ctrl C", "copy",
 177.244 +                        "ctrl V", "paste",
 177.245 +                        "ctrl X", "cut",
 177.246 +                        "COPY", "copy",
 177.247 +                        "PASTE", "paste",
 177.248 +                        "CUT", "cut",
 177.249 +                        "control INSERT", "copy",
 177.250 +                        "shift INSERT", "paste",
 177.251 +                        "shift DELETE", "cut",
 177.252 +                        "UP", "selectPreviousRow",
 177.253 +                        "KP_UP", "selectPreviousRow",
 177.254 +                        "shift UP", "selectPreviousRowExtendSelection",
 177.255 +                        "shift KP_UP", "selectPreviousRowExtendSelection",
 177.256 +                        "ctrl shift UP", "selectPreviousRowExtendSelection",
 177.257 +                        "ctrl shift KP_UP", "selectPreviousRowExtendSelection",
 177.258 +                        "ctrl UP", "selectPreviousRowChangeLead",
 177.259 +                        "ctrl KP_UP", "selectPreviousRowChangeLead",
 177.260 +                        "DOWN", "selectNextRow",
 177.261 +                        "KP_DOWN", "selectNextRow",
 177.262 +                        "shift DOWN", "selectNextRowExtendSelection",
 177.263 +                        "shift KP_DOWN", "selectNextRowExtendSelection",
 177.264 +                        "ctrl shift DOWN", "selectNextRowExtendSelection",
 177.265 +                        "ctrl shift KP_DOWN", "selectNextRowExtendSelection",
 177.266 +                        "ctrl DOWN", "selectNextRowChangeLead",
 177.267 +                        "ctrl KP_DOWN", "selectNextRowChangeLead",
 177.268 +                        "LEFT", "selectPreviousColumn",
 177.269 +                        "KP_LEFT", "selectPreviousColumn",
 177.270 +                        "shift LEFT", "selectPreviousColumnExtendSelection",
 177.271 +                        "shift KP_LEFT", "selectPreviousColumnExtendSelection",
 177.272 +                        "ctrl shift LEFT", "selectPreviousColumnExtendSelection",
 177.273 +                        "ctrl shift KP_LEFT", "selectPreviousColumnExtendSelection",
 177.274 +                        "ctrl LEFT", "selectPreviousColumnChangeLead",
 177.275 +                        "ctrl KP_LEFT", "selectPreviousColumnChangeLead",
 177.276 +                        "RIGHT", "selectNextColumn",
 177.277 +                        "KP_RIGHT", "selectNextColumn",
 177.278 +                        "shift RIGHT", "selectNextColumnExtendSelection",
 177.279 +                        "shift KP_RIGHT", "selectNextColumnExtendSelection",
 177.280 +                        "ctrl shift RIGHT", "selectNextColumnExtendSelection",
 177.281 +                        "ctrl shift KP_RIGHT", "selectNextColumnExtendSelection",
 177.282 +                        "ctrl RIGHT", "selectNextColumnChangeLead",
 177.283 +                        "ctrl KP_RIGHT", "selectNextColumnChangeLead",
 177.284 +                        "HOME", "selectFirstRow",
 177.285 +                        "shift HOME", "selectFirstRowExtendSelection",
 177.286 +                        "ctrl shift HOME", "selectFirstRowExtendSelection",
 177.287 +                        "ctrl HOME", "selectFirstRowChangeLead",
 177.288 +                        "END", "selectLastRow",
 177.289 +                        "shift END", "selectLastRowExtendSelection",
 177.290 +                        "ctrl shift END", "selectLastRowExtendSelection",
 177.291 +                        "ctrl END", "selectLastRowChangeLead",
 177.292 +                        "PAGE_UP", "scrollUp",
 177.293 +                        "shift PAGE_UP", "scrollUpExtendSelection",
 177.294 +                        "ctrl shift PAGE_UP", "scrollUpExtendSelection",
 177.295 +                        "ctrl PAGE_UP", "scrollUpChangeLead",
 177.296 +                        "PAGE_DOWN", "scrollDown",
 177.297 +                        "shift PAGE_DOWN", "scrollDownExtendSelection",
 177.298 +                        "ctrl shift PAGE_DOWN", "scrollDownExtendSelection",
 177.299 +                        "ctrl PAGE_DOWN", "scrollDownChangeLead",
 177.300 +                        "ctrl A", "selectAll",
 177.301 +                        "ctrl SLASH", "selectAll",
 177.302 +                        "ctrl BACK_SLASH", "clearSelection",
 177.303 +                        "SPACE", "addToSelection",
 177.304 +                        "ctrl SPACE", "toggleAndAnchor",
 177.305 +                        "shift SPACE", "extendTo",
 177.306 +                        "ctrl shift SPACE", "moveSelectionTo"
 177.307 +                }),
 177.308 +                "MenuBar.windowBindings", new Object[]{
 177.309 +                        "F10", "takeFocus"
 177.310 +                },
 177.311 +                "RadioButton.focusInputMap",
 177.312 +                new UIDefaults.LazyInputMap(new Object[]{
 177.313 +                        "SPACE", "pressed",
 177.314 +                        "released SPACE", "released"
 177.315 +                }),
 177.316 +                "OptionPane.windowBindings", new Object[]{
 177.317 +                        "ESCAPE", "close"
 177.318 +                },
 177.319 +                "FormattedTextField.focusInputMap",
 177.320 +                new UIDefaults.LazyInputMap(new Object[]{
 177.321 +                        "ctrl C", DefaultEditorKit.copyAction,
 177.322 +                        "ctrl V", DefaultEditorKit.pasteAction,
 177.323 +                        "ctrl X", DefaultEditorKit.cutAction,
 177.324 +                        "COPY", DefaultEditorKit.copyAction,
 177.325 +                        "PASTE", DefaultEditorKit.pasteAction,
 177.326 +                        "CUT", DefaultEditorKit.cutAction,
 177.327 +                        "control INSERT", DefaultEditorKit.copyAction,
 177.328 +                        "shift INSERT", DefaultEditorKit.pasteAction,
 177.329 +                        "shift DELETE", DefaultEditorKit.cutAction,
 177.330 +                        "shift LEFT", DefaultEditorKit.selectionBackwardAction,
 177.331 +                        "shift KP_LEFT", DefaultEditorKit.selectionBackwardAction,
 177.332 +                        "shift RIGHT", DefaultEditorKit.selectionForwardAction,
 177.333 +                        "shift KP_RIGHT", DefaultEditorKit.selectionForwardAction,
 177.334 +                        "ctrl LEFT", DefaultEditorKit.previousWordAction,
 177.335 +                        "ctrl KP_LEFT", DefaultEditorKit.previousWordAction,
 177.336 +                        "ctrl RIGHT", DefaultEditorKit.nextWordAction,
 177.337 +                        "ctrl KP_RIGHT", DefaultEditorKit.nextWordAction,
 177.338 +                        "ctrl shift LEFT", DefaultEditorKit.selectionPreviousWordAction,
 177.339 +                        "ctrl shift KP_LEFT", DefaultEditorKit.selectionPreviousWordAction,
 177.340 +                        "ctrl shift RIGHT", DefaultEditorKit.selectionNextWordAction,
 177.341 +                        "ctrl shift KP_RIGHT", DefaultEditorKit.selectionNextWordAction,
 177.342 +                        "ctrl A", DefaultEditorKit.selectAllAction,
 177.343 +                        "HOME", DefaultEditorKit.beginLineAction,
 177.344 +                        "END", DefaultEditorKit.endLineAction,
 177.345 +                        "shift HOME", DefaultEditorKit.selectionBeginLineAction,
 177.346 +                        "shift END", DefaultEditorKit.selectionEndLineAction,
 177.347 +                        "BACK_SPACE", DefaultEditorKit.deletePrevCharAction,
 177.348 +                        "shift BACK_SPACE", DefaultEditorKit.deletePrevCharAction,
 177.349 +                        "ctrl H", DefaultEditorKit.deletePrevCharAction,
 177.350 +                        "DELETE", DefaultEditorKit.deleteNextCharAction,
 177.351 +                        "ctrl DELETE", DefaultEditorKit.deleteNextWordAction,
 177.352 +                        "ctrl BACK_SPACE", DefaultEditorKit.deletePrevWordAction,
 177.353 +                        "RIGHT", DefaultEditorKit.forwardAction,
 177.354 +                        "LEFT", DefaultEditorKit.backwardAction,
 177.355 +                        "KP_RIGHT", DefaultEditorKit.forwardAction,
 177.356 +                        "KP_LEFT", DefaultEditorKit.backwardAction,
 177.357 +                        "ENTER", JTextField.notifyAction,
 177.358 +                        "ctrl BACK_SLASH", "unselect",
 177.359 +                        "control shift O", "toggle-componentOrientation",
 177.360 +                        "ESCAPE", "reset-field-edit",
 177.361 +                        "UP", "increment",
 177.362 +                        "KP_UP", "increment",
 177.363 +                        "DOWN", "decrement",
 177.364 +                        "KP_DOWN", "decrement",
 177.365 +                }),
 177.366 +                // These bindings are only enabled when there is a default
 177.367 +                // button set on the rootpane.
 177.368 +                "RootPane.defaultButtonWindowKeyBindings", new Object[]{
 177.369 +                        "ENTER", "press",
 177.370 +                        "released ENTER", "release",
 177.371 +                        "ctrl ENTER", "press",
 177.372 +                        "ctrl released ENTER", "release"
 177.373 +                },
 177.374 +                "ScrollBar.ancestorInputMap",
 177.375 +                new UIDefaults.LazyInputMap(new Object[]{
 177.376 +                        "RIGHT", "positiveUnitIncrement",
 177.377 +                        "KP_RIGHT", "positiveUnitIncrement",
 177.378 +                        "DOWN", "positiveUnitIncrement",
 177.379 +                        "KP_DOWN", "positiveUnitIncrement",
 177.380 +                        "PAGE_DOWN", "positiveBlockIncrement",
 177.381 +                        "ctrl PAGE_DOWN", "positiveBlockIncrement",
 177.382 +                        "LEFT", "negativeUnitIncrement",
 177.383 +                        "KP_LEFT", "negativeUnitIncrement",
 177.384 +                        "UP", "negativeUnitIncrement",
 177.385 +                        "KP_UP", "negativeUnitIncrement",
 177.386 +                        "PAGE_UP", "negativeBlockIncrement",
 177.387 +                        "ctrl PAGE_UP", "negativeBlockIncrement",
 177.388 +                        "HOME", "minScroll",
 177.389 +                        "END", "maxScroll"
 177.390 +                }),
 177.391 +                "ScrollPane.ancestorInputMap",
 177.392 +                new UIDefaults.LazyInputMap(new Object[]{
 177.393 +                        "RIGHT", "unitScrollRight",
 177.394 +                        "KP_RIGHT", "unitScrollRight",
 177.395 +                        "DOWN", "unitScrollDown",
 177.396 +                        "KP_DOWN", "unitScrollDown",
 177.397 +                        "LEFT", "unitScrollLeft",
 177.398 +                        "KP_LEFT", "unitScrollLeft",
 177.399 +                        "UP", "unitScrollUp",
 177.400 +                        "KP_UP", "unitScrollUp",
 177.401 +                        "PAGE_UP", "scrollUp",
 177.402 +                        "PAGE_DOWN", "scrollDown",
 177.403 +                        "ctrl PAGE_UP", "scrollLeft",
 177.404 +                        "ctrl PAGE_DOWN", "scrollRight",
 177.405 +                        "ctrl HOME", "scrollHome",
 177.406 +                        "ctrl END", "scrollEnd"
 177.407 +                }),
 177.408 +                "Slider.focusInputMap",
 177.409 +                new UIDefaults.LazyInputMap(new Object[]{
 177.410 +                        "RIGHT", "positiveUnitIncrement",
 177.411 +                        "KP_RIGHT", "positiveUnitIncrement",
 177.412 +                        "DOWN", "negativeUnitIncrement",
 177.413 +                        "KP_DOWN", "negativeUnitIncrement",
 177.414 +                        "PAGE_DOWN", "negativeBlockIncrement",
 177.415 +                        "LEFT", "negativeUnitIncrement",
 177.416 +                        "KP_LEFT", "negativeUnitIncrement",
 177.417 +                        "UP", "positiveUnitIncrement",
 177.418 +                        "KP_UP", "positiveUnitIncrement",
 177.419 +                        "PAGE_UP", "positiveBlockIncrement",
 177.420 +                        "HOME", "minScroll",
 177.421 +                        "END", "maxScroll"
 177.422 +                }),
 177.423 +                "Spinner.ancestorInputMap",
 177.424 +                new UIDefaults.LazyInputMap(new Object[]{
 177.425 +                        "UP", "increment",
 177.426 +                        "KP_UP", "increment",
 177.427 +                        "DOWN", "decrement",
 177.428 +                        "KP_DOWN", "decrement",
 177.429 +                }),
 177.430 +                "SplitPane.ancestorInputMap",
 177.431 +                new UIDefaults.LazyInputMap(new Object[]{
 177.432 +                        "UP", "negativeIncrement",
 177.433 +                        "DOWN", "positiveIncrement",
 177.434 +                        "LEFT", "negativeIncrement",
 177.435 +                        "RIGHT", "positiveIncrement",
 177.436 +                        "KP_UP", "negativeIncrement",
 177.437 +                        "KP_DOWN", "positiveIncrement",
 177.438 +                        "KP_LEFT", "negativeIncrement",
 177.439 +                        "KP_RIGHT", "positiveIncrement",
 177.440 +                        "HOME", "selectMin",
 177.441 +                        "END", "selectMax",
 177.442 +                        "F8", "startResize",
 177.443 +                        "F6", "toggleFocus",
 177.444 +                        "ctrl TAB", "focusOutForward",
 177.445 +                        "ctrl shift TAB", "focusOutBackward"
 177.446 +                }),
 177.447 +                "TabbedPane.focusInputMap",
 177.448 +                new UIDefaults.LazyInputMap(new Object[]{
 177.449 +                        "RIGHT", "navigateRight",
 177.450 +                        "KP_RIGHT", "navigateRight",
 177.451 +                        "LEFT", "navigateLeft",
 177.452 +                        "KP_LEFT", "navigateLeft",
 177.453 +                        "UP", "navigateUp",
 177.454 +                        "KP_UP", "navigateUp",
 177.455 +                        "DOWN", "navigateDown",
 177.456 +                        "KP_DOWN", "navigateDown",
 177.457 +                        "ctrl DOWN", "requestFocusForVisibleComponent",
 177.458 +                        "ctrl KP_DOWN", "requestFocusForVisibleComponent",
 177.459 +                }),
 177.460 +                "TabbedPane.ancestorInputMap",
 177.461 +                new UIDefaults.LazyInputMap(new Object[]{
 177.462 +                        "ctrl TAB", "navigateNext",
 177.463 +                        "ctrl shift TAB", "navigatePrevious",
 177.464 +                        "ctrl PAGE_DOWN", "navigatePageDown",
 177.465 +                        "ctrl PAGE_UP", "navigatePageUp",
 177.466 +                        "ctrl UP", "requestFocus",
 177.467 +                        "ctrl KP_UP", "requestFocus",
 177.468 +                }),
 177.469 +                "TableHeader.ancestorInputMap",
 177.470 +                   new UIDefaults.LazyInputMap(new Object[] {
 177.471 +                                    "SPACE", "toggleSortOrder",
 177.472 +                                     "LEFT", "selectColumnToLeft",
 177.473 +                                  "KP_LEFT", "selectColumnToLeft",
 177.474 +                                    "RIGHT", "selectColumnToRight",
 177.475 +                                 "KP_RIGHT", "selectColumnToRight",
 177.476 +                                 "alt LEFT", "moveColumnLeft",
 177.477 +                              "alt KP_LEFT", "moveColumnLeft",
 177.478 +                                "alt RIGHT", "moveColumnRight",
 177.479 +                             "alt KP_RIGHT", "moveColumnRight",
 177.480 +                           "alt shift LEFT", "resizeLeft",
 177.481 +                        "alt shift KP_LEFT", "resizeLeft",
 177.482 +                          "alt shift RIGHT", "resizeRight",
 177.483 +                       "alt shift KP_RIGHT", "resizeRight",
 177.484 +                                   "ESCAPE", "focusTable",
 177.485 +                   }),
 177.486 +                "Table.ancestorInputMap",
 177.487 +                new UIDefaults.LazyInputMap(new Object[]{
 177.488 +                        "ctrl C", "copy",
 177.489 +                        "ctrl V", "paste",
 177.490 +                        "ctrl X", "cut",
 177.491 +                        "COPY", "copy",
 177.492 +                        "PASTE", "paste",
 177.493 +                        "CUT", "cut",
 177.494 +                        "control INSERT", "copy",
 177.495 +                        "shift INSERT", "paste",
 177.496 +                        "shift DELETE", "cut",
 177.497 +                        "RIGHT", "selectNextColumn",
 177.498 +                        "KP_RIGHT", "selectNextColumn",
 177.499 +                        "shift RIGHT", "selectNextColumnExtendSelection",
 177.500 +                        "shift KP_RIGHT", "selectNextColumnExtendSelection",
 177.501 +                        "ctrl shift RIGHT", "selectNextColumnExtendSelection",
 177.502 +                        "ctrl shift KP_RIGHT", "selectNextColumnExtendSelection",
 177.503 +                        "ctrl RIGHT", "selectNextColumnChangeLead",
 177.504 +                        "ctrl KP_RIGHT", "selectNextColumnChangeLead",
 177.505 +                        "LEFT", "selectPreviousColumn",
 177.506 +                        "KP_LEFT", "selectPreviousColumn",
 177.507 +                        "shift LEFT", "selectPreviousColumnExtendSelection",
 177.508 +                        "shift KP_LEFT", "selectPreviousColumnExtendSelection",
 177.509 +                        "ctrl shift LEFT", "selectPreviousColumnExtendSelection",
 177.510 +                        "ctrl shift KP_LEFT", "selectPreviousColumnExtendSelection",
 177.511 +                        "ctrl LEFT", "selectPreviousColumnChangeLead",
 177.512 +                        "ctrl KP_LEFT", "selectPreviousColumnChangeLead",
 177.513 +                        "DOWN", "selectNextRow",
 177.514 +                        "KP_DOWN", "selectNextRow",
 177.515 +                        "shift DOWN", "selectNextRowExtendSelection",
 177.516 +                        "shift KP_DOWN", "selectNextRowExtendSelection",
 177.517 +                        "ctrl shift DOWN", "selectNextRowExtendSelection",
 177.518 +                        "ctrl shift KP_DOWN", "selectNextRowExtendSelection",
 177.519 +                        "ctrl DOWN", "selectNextRowChangeLead",
 177.520 +                        "ctrl KP_DOWN", "selectNextRowChangeLead",
 177.521 +                        "UP", "selectPreviousRow",
 177.522 +                        "KP_UP", "selectPreviousRow",
 177.523 +                        "shift UP", "selectPreviousRowExtendSelection",
 177.524 +                        "shift KP_UP", "selectPreviousRowExtendSelection",
 177.525 +                        "ctrl shift UP", "selectPreviousRowExtendSelection",
 177.526 +                        "ctrl shift KP_UP", "selectPreviousRowExtendSelection",
 177.527 +                        "ctrl UP", "selectPreviousRowChangeLead",
 177.528 +                        "ctrl KP_UP", "selectPreviousRowChangeLead",
 177.529 +                        "HOME", "selectFirstColumn",
 177.530 +                        "shift HOME", "selectFirstColumnExtendSelection",
 177.531 +                        "ctrl shift HOME", "selectFirstRowExtendSelection",
 177.532 +                        "ctrl HOME", "selectFirstRow",
 177.533 +                        "END", "selectLastColumn",
 177.534 +                        "shift END", "selectLastColumnExtendSelection",
 177.535 +                        "ctrl shift END", "selectLastRowExtendSelection",
 177.536 +                        "ctrl END", "selectLastRow",
 177.537 +                        "PAGE_UP", "scrollUpChangeSelection",
 177.538 +                        "shift PAGE_UP", "scrollUpExtendSelection",
 177.539 +                        "ctrl shift PAGE_UP", "scrollLeftExtendSelection",
 177.540 +                        "ctrl PAGE_UP", "scrollLeftChangeSelection",
 177.541 +                        "PAGE_DOWN", "scrollDownChangeSelection",
 177.542 +                        "shift PAGE_DOWN", "scrollDownExtendSelection",
 177.543 +                        "ctrl shift PAGE_DOWN", "scrollRightExtendSelection",
 177.544 +                        "ctrl PAGE_DOWN", "scrollRightChangeSelection",
 177.545 +                        "TAB", "selectNextColumnCell",
 177.546 +                        "shift TAB", "selectPreviousColumnCell",
 177.547 +                        "ENTER", "selectNextRowCell",
 177.548 +                        "shift ENTER", "selectPreviousRowCell",
 177.549 +                        "ctrl A", "selectAll",
 177.550 +                        "ctrl SLASH", "selectAll",
 177.551 +                        "ctrl BACK_SLASH", "clearSelection",
 177.552 +                        "ESCAPE", "cancel",
 177.553 +                        "F2", "startEditing",
 177.554 +                        "SPACE", "addToSelection",
 177.555 +                        "ctrl SPACE", "toggleAndAnchor",
 177.556 +                        "shift SPACE", "extendTo",
 177.557 +                        "ctrl shift SPACE", "moveSelectionTo",
 177.558 +                        "F8", "focusHeader"
 177.559 +                }),
 177.560 +                "ToggleButton.focusInputMap",
 177.561 +                new UIDefaults.LazyInputMap(new Object[]{
 177.562 +                        "SPACE", "pressed",
 177.563 +                        "released SPACE", "released"
 177.564 +                }),
 177.565 +                "ToolBar.ancestorInputMap",
 177.566 +                new UIDefaults.LazyInputMap(new Object[]{
 177.567 +                        "UP", "navigateUp",
 177.568 +                        "KP_UP", "navigateUp",
 177.569 +                        "DOWN", "navigateDown",
 177.570 +                        "KP_DOWN", "navigateDown",
 177.571 +                        "LEFT", "navigateLeft",
 177.572 +                        "KP_LEFT", "navigateLeft",
 177.573 +                        "RIGHT", "navigateRight",
 177.574 +                        "KP_RIGHT", "navigateRight"
 177.575 +                }),
 177.576 +                "Tree.focusInputMap",
 177.577 +                new UIDefaults.LazyInputMap(new Object[]{
 177.578 +                        "ADD", "expand",
 177.579 +                        "SUBTRACT", "collapse",
 177.580 +                        "ctrl C", "copy",
 177.581 +                        "ctrl V", "paste",
 177.582 +                        "ctrl X", "cut",
 177.583 +                        "COPY", "copy",
 177.584 +                        "PASTE", "paste",
 177.585 +                        "CUT", "cut",
 177.586 +                        "control INSERT", "copy",
 177.587 +                        "shift INSERT", "paste",
 177.588 +                        "shift DELETE", "cut",
 177.589 +                        "UP", "selectPrevious",
 177.590 +                        "KP_UP", "selectPrevious",
 177.591 +                        "shift UP", "selectPreviousExtendSelection",
 177.592 +                        "shift KP_UP", "selectPreviousExtendSelection",
 177.593 +                        "ctrl shift UP", "selectPreviousExtendSelection",
 177.594 +                        "ctrl shift KP_UP", "selectPreviousExtendSelection",
 177.595 +                        "ctrl UP", "selectPreviousChangeLead",
 177.596 +                        "ctrl KP_UP", "selectPreviousChangeLead",
 177.597 +                        "DOWN", "selectNext",
 177.598 +                        "KP_DOWN", "selectNext",
 177.599 +                        "shift DOWN", "selectNextExtendSelection",
 177.600 +                        "shift KP_DOWN", "selectNextExtendSelection",
 177.601 +                        "ctrl shift DOWN", "selectNextExtendSelection",
 177.602 +                        "ctrl shift KP_DOWN", "selectNextExtendSelection",
 177.603 +                        "ctrl DOWN", "selectNextChangeLead",
 177.604 +                        "ctrl KP_DOWN", "selectNextChangeLead",
 177.605 +                        "RIGHT", "selectChild",
 177.606 +                        "KP_RIGHT", "selectChild",
 177.607 +                        "LEFT", "selectParent",
 177.608 +                        "KP_LEFT", "selectParent",
 177.609 +                        "PAGE_UP", "scrollUpChangeSelection",
 177.610 +                        "shift PAGE_UP", "scrollUpExtendSelection",
 177.611 +                        "ctrl shift PAGE_UP", "scrollUpExtendSelection",
 177.612 +                        "ctrl PAGE_UP", "scrollUpChangeLead",
 177.613 +                        "PAGE_DOWN", "scrollDownChangeSelection",
 177.614 +                        "shift PAGE_DOWN", "scrollDownExtendSelection",
 177.615 +                        "ctrl shift PAGE_DOWN", "scrollDownExtendSelection",
 177.616 +                        "ctrl PAGE_DOWN", "scrollDownChangeLead",
 177.617 +                        "HOME", "selectFirst",
 177.618 +                        "shift HOME", "selectFirstExtendSelection",
 177.619 +                        "ctrl shift HOME", "selectFirstExtendSelection",
 177.620 +                        "ctrl HOME", "selectFirstChangeLead",
 177.621 +                        "END", "selectLast",
 177.622 +                        "shift END", "selectLastExtendSelection",
 177.623 +                        "ctrl shift END", "selectLastExtendSelection",
 177.624 +                        "ctrl END", "selectLastChangeLead",
 177.625 +                        "F2", "startEditing",
 177.626 +                        "ctrl A", "selectAll",
 177.627 +                        "ctrl SLASH", "selectAll",
 177.628 +                        "ctrl BACK_SLASH", "clearSelection",
 177.629 +                        "ctrl LEFT", "scrollLeft",
 177.630 +                        "ctrl KP_LEFT", "scrollLeft",
 177.631 +                        "ctrl RIGHT", "scrollRight",
 177.632 +                        "ctrl KP_RIGHT", "scrollRight",
 177.633 +                        "SPACE", "addToSelection",
 177.634 +                        "ctrl SPACE", "toggleAndAnchor",
 177.635 +                        "shift SPACE", "extendTo",
 177.636 +                        "ctrl shift SPACE", "moveSelectionTo"
 177.637 +                }),
 177.638 +                "Tree.ancestorInputMap",
 177.639 +                new UIDefaults.LazyInputMap(new Object[]{
 177.640 +                        "ESCAPE", "cancel"
 177.641 +                }),
 177.642 +        };
 177.643 +        table.putDefaults(defaults);
 177.644 +    }
 177.645 +
 177.646 +}
   178.1 --- a/src/share/classes/sun/swing/plaf/synth/SynthFileChooserUI.java	Tue Apr 28 14:43:44 2009 -0700
   178.2 +++ b/src/share/classes/sun/swing/plaf/synth/SynthFileChooserUI.java	Wed Apr 29 00:27:46 2009 -0700
   178.3 @@ -183,14 +183,7 @@
   178.4          }
   178.5      }
   178.6  
   178.7 -    ActionMap createActionMap() {
   178.8 -        ActionMap map = new ActionMapUIResource();
   178.9 -        map.put("approveSelection", getApproveSelectionAction());
  178.10 -        map.put("cancelSelection", getCancelSelectionAction());
  178.11 -        map.put("Go Up", getChangeToParentDirectoryAction());
  178.12 -        map.put("fileNameCompletion", getFileNameCompletionAction());
  178.13 -        return map;
  178.14 -    }
  178.15 +    protected abstract ActionMap createActionMap();
  178.16  
  178.17  
  178.18      protected void installDefaults(JFileChooser fc) {
   179.1 --- a/src/share/classes/sun/swing/plaf/synth/SynthFileChooserUIImpl.java	Tue Apr 28 14:43:44 2009 -0700
   179.2 +++ b/src/share/classes/sun/swing/plaf/synth/SynthFileChooserUIImpl.java	Wed Apr 29 00:27:46 2009 -0700
   179.3 @@ -38,8 +38,7 @@
   179.4  import javax.swing.filechooser.FileFilter;
   179.5  import javax.swing.plaf.basic.*;
   179.6  import javax.swing.plaf.synth.*;
   179.7 -
   179.8 -import sun.swing.SwingUtilities2;
   179.9 +import javax.swing.plaf.ActionMapUIResource;
  179.10  
  179.11  import sun.awt.shell.ShellFolder;
  179.12  import sun.swing.*;
  179.13 @@ -286,9 +285,9 @@
  179.14          b.setAlignmentX(JComponent.LEFT_ALIGNMENT);
  179.15          b.setAlignmentY(JComponent.CENTER_ALIGNMENT);
  179.16          b.setMargin(shrinkwrap);
  179.17 +        topButtonPanel.add(b);
  179.18 +        topButtonPanel.add(Box.createRigidArea(hstrut5));
  179.19      }
  179.20 -    topButtonPanel.add(b);
  179.21 -    topButtonPanel.add(Box.createRigidArea(hstrut5));
  179.22  
  179.23      // View button group
  179.24      ButtonGroup viewButtonGroup = new ButtonGroup();
  179.25 @@ -521,6 +520,9 @@
  179.26          }
  179.27      }
  179.28  
  179.29 +    @Override public void rescanCurrentDirectory(JFileChooser fc) {
  179.30 +        filePane.rescanCurrentDirectory();
  179.31 +    }
  179.32  
  179.33      protected void doSelectedFileChanged(PropertyChangeEvent e) {
  179.34          super.doSelectedFileChanged(e);
  179.35 @@ -635,6 +637,14 @@
  179.36      // ************ FileChooser UI PLAF methods **************
  179.37      // *******************************************************
  179.38  
  179.39 +    protected ActionMap createActionMap() {
  179.40 +        ActionMap map = new ActionMapUIResource();
  179.41 +        // add standard actions
  179.42 +        FilePane.addActionsToMap(map, filePane.getActions());
  179.43 +        // add synth only actions
  179.44 +        map.put("fileNameCompletion", getFileNameCompletionAction());
  179.45 +        return map;
  179.46 +    }
  179.47  
  179.48      // *****************************
  179.49      // ***** Directory Actions *****
  179.50 @@ -649,32 +659,44 @@
  179.51      }
  179.52  
  179.53      protected DirectoryComboBoxRenderer createDirectoryComboBoxRenderer(JFileChooser fc) {
  179.54 -        return new DirectoryComboBoxRenderer();
  179.55 +        return new DirectoryComboBoxRenderer(directoryComboBox.getRenderer());
  179.56      }
  179.57  
  179.58      //
  179.59      // Renderer for DirectoryComboBox
  179.60      //
  179.61 -    class DirectoryComboBoxRenderer extends DefaultListCellRenderer  {
  179.62 +    // Synth has some odd behavior with regards to renderers. Renderers are styled
  179.63 +    // in a specific manner by the SynthComboBoxUI. If we extend DefaultListCellRenderer
  179.64 +    // here, then we get none of those benefits or behaviors, leading to poor
  179.65 +    // looking combo boxes.
  179.66 +    // So what we do here is delegate most jobs to the "real" or original renderer,
  179.67 +    // and simply monkey with the icon and text of the renderer.
  179.68 +    private class DirectoryComboBoxRenderer implements ListCellRenderer {
  179.69 +        private ListCellRenderer delegate;
  179.70          IndentIcon ii = new IndentIcon();
  179.71 -        public Component getListCellRendererComponent(JList list, Object value,
  179.72 -                                                      int index, boolean isSelected,
  179.73 -                                                      boolean cellHasFocus) {
  179.74  
  179.75 -            super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
  179.76 +        private DirectoryComboBoxRenderer(ListCellRenderer delegate) {
  179.77 +            this.delegate = delegate;
  179.78 +        }
  179.79  
  179.80 +        @Override
  179.81 +        public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
  179.82 +            Component c = delegate.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
  179.83 +
  179.84 +            assert c instanceof JLabel;
  179.85 +            JLabel label = (JLabel)c;
  179.86              if (value == null) {
  179.87 -                setText("");
  179.88 -                return this;
  179.89 +                label.setText("");
  179.90 +                return label;
  179.91              }
  179.92 -            File directory = (File)value;
  179.93 -            setText(getFileChooser().getName(directory));
  179.94 +            File directory = (File) value;
  179.95 +            label.setText(getFileChooser().getName(directory));
  179.96              Icon icon = getFileChooser().getIcon(directory);
  179.97              ii.icon = icon;
  179.98              ii.depth = directoryComboBoxModel.getDepth(index);
  179.99 -            setIcon(ii);
 179.100 +            label.setIcon(ii);
 179.101  
 179.102 -            return this;
 179.103 +            return label;
 179.104          }
 179.105      }
 179.106  
 179.107 @@ -862,24 +884,33 @@
 179.108      // Renderer for Types ComboBox
 179.109      //
 179.110      protected FilterComboBoxRenderer createFilterComboBoxRenderer() {
 179.111 -        return new FilterComboBoxRenderer();
 179.112 +        return new FilterComboBoxRenderer(filterComboBox.getRenderer());
 179.113      }
 179.114  
 179.115      /**
 179.116       * Render different type sizes and styles.
 179.117       */
 179.118 -    public class FilterComboBoxRenderer extends DefaultListCellRenderer {
 179.119 -        public Component getListCellRendererComponent(JList list,
 179.120 -            Object value, int index, boolean isSelected,
 179.121 -            boolean cellHasFocus) {
 179.122 +    public class FilterComboBoxRenderer implements ListCellRenderer {
 179.123 +        private ListCellRenderer delegate;
 179.124 +        private FilterComboBoxRenderer(ListCellRenderer delegate) {
 179.125 +            this.delegate = delegate;
 179.126 +        }
 179.127  
 179.128 -            super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
 179.129 +        public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
 179.130 +            Component c = delegate.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
 179.131  
 179.132 +            String text = null;
 179.133              if (value != null && value instanceof FileFilter) {
 179.134 -                setText(((FileFilter)value).getDescription());
 179.135 +                text = ((FileFilter) value).getDescription();
 179.136              }
 179.137  
 179.138 -            return this;
 179.139 +            //this should always be true, since SynthComboBoxUI's SynthComboBoxRenderer
 179.140 +            //extends JLabel
 179.141 +            assert c instanceof JLabel;
 179.142 +            if (text != null) {
 179.143 +                ((JLabel)c).setText(text);
 179.144 +            }
 179.145 +            return c;
 179.146          }
 179.147      }
 179.148  
   180.1 --- a/src/share/classes/sun/swing/table/DefaultTableCellHeaderRenderer.java	Tue Apr 28 14:43:44 2009 -0700
   180.2 +++ b/src/share/classes/sun/swing/table/DefaultTableCellHeaderRenderer.java	Wed Apr 29 00:27:46 2009 -0700
   180.3 @@ -26,16 +26,23 @@
   180.4  
   180.5  import java.awt.Component;
   180.6  import java.awt.Color;
   180.7 +import java.awt.FontMetrics;
   180.8 +import java.awt.Graphics;
   180.9 +import java.awt.Insets;
  180.10 +import java.awt.Point;
  180.11 +import java.awt.Rectangle;
  180.12  import javax.swing.*;
  180.13  import javax.swing.plaf.UIResource;
  180.14  import javax.swing.border.Border;
  180.15  import javax.swing.table.*;
  180.16 +import sun.swing.DefaultLookup;
  180.17  
  180.18 -/**
  180.19 - */
  180.20 +
  180.21  public class DefaultTableCellHeaderRenderer extends DefaultTableCellRenderer
  180.22          implements UIResource {
  180.23      private boolean horizontalTextPositionSet;
  180.24 +    private Icon sortArrow;
  180.25 +    private EmptyIcon emptyIcon = new EmptyIcon();
  180.26  
  180.27      public DefaultTableCellHeaderRenderer() {
  180.28          setHorizontalAlignment(JLabel.CENTER);
  180.29 @@ -58,8 +65,8 @@
  180.30                  Color fgColor = null;
  180.31                  Color bgColor = null;
  180.32                  if (hasFocus) {
  180.33 -                    fgColor = UIManager.getColor("TableHeader.focusCellForeground");
  180.34 -                    bgColor = UIManager.getColor("TableHeader.focusCellBackground");
  180.35 +                    fgColor = DefaultLookup.getColor(this, ui, "TableHeader.focusCellForeground");
  180.36 +                    bgColor = DefaultLookup.getColor(this, ui, "TableHeader.focusCellBackground");
  180.37                  }
  180.38                  if (fgColor == null) {
  180.39                      fgColor = header.getForeground();
  180.40 @@ -85,16 +92,16 @@
  180.41                  if (sortOrder != null) {
  180.42                      switch(sortOrder) {
  180.43                      case ASCENDING:
  180.44 -                        sortIcon = UIManager.getIcon(
  180.45 -                            "Table.ascendingSortIcon");
  180.46 +                        sortIcon = DefaultLookup.getIcon(
  180.47 +                            this, ui, "Table.ascendingSortIcon");
  180.48                          break;
  180.49                      case DESCENDING:
  180.50 -                        sortIcon = UIManager.getIcon(
  180.51 -                            "Table.descendingSortIcon");
  180.52 +                        sortIcon = DefaultLookup.getIcon(
  180.53 +                            this, ui, "Table.descendingSortIcon");
  180.54                          break;
  180.55                      case UNSORTED:
  180.56 -                        sortIcon = UIManager.getIcon(
  180.57 -                            "Table.naturalSortIcon");
  180.58 +                        sortIcon = DefaultLookup.getIcon(
  180.59 +                            this, ui, "Table.naturalSortIcon");
  180.60                          break;
  180.61                      }
  180.62                  }
  180.63 @@ -103,13 +110,14 @@
  180.64  
  180.65          setText(value == null ? "" : value.toString());
  180.66          setIcon(sortIcon);
  180.67 +        sortArrow = sortIcon;
  180.68  
  180.69          Border border = null;
  180.70          if (hasFocus) {
  180.71 -            border = UIManager.getBorder("TableHeader.focusCellBorder");
  180.72 +            border = DefaultLookup.getBorder(this, ui, "TableHeader.focusCellBorder");
  180.73          }
  180.74          if (border == null) {
  180.75 -            border = UIManager.getBorder("TableHeader.cellBorder");
  180.76 +            border = DefaultLookup.getBorder(this, ui, "TableHeader.cellBorder");
  180.77          }
  180.78          setBorder(border);
  180.79  
  180.80 @@ -129,4 +137,60 @@
  180.81          }
  180.82          return rv;
  180.83      }
  180.84 +
  180.85 +    @Override
  180.86 +    public void paintComponent(Graphics g) {
  180.87 +        boolean b = DefaultLookup.getBoolean(this, ui,
  180.88 +                "TableHeader.rightAlignSortArrow", false);
  180.89 +        if (b && sortArrow != null) {
  180.90 +            //emptyIcon is used so that if the text in the header is right
  180.91 +            //aligned, or if the column is too narrow, then the text will
  180.92 +            //be sized appropriately to make room for the icon that is about
  180.93 +            //to be painted manually here.
  180.94 +            emptyIcon.width = sortArrow.getIconWidth();
  180.95 +            emptyIcon.height = sortArrow.getIconHeight();
  180.96 +            setIcon(emptyIcon);
  180.97 +            super.paintComponent(g);
  180.98 +            Point position = computeIconPosition(g);
  180.99 +            sortArrow.paintIcon(this, g, position.x, position.y);
 180.100 +        } else {
 180.101 +            super.paintComponent(g);
 180.102 +        }
 180.103 +    }
 180.104 +
 180.105 +    private Point computeIconPosition(Graphics g) {
 180.106 +        FontMetrics fontMetrics = g.getFontMetrics();
 180.107 +        Rectangle viewR = new Rectangle();
 180.108 +        Rectangle textR = new Rectangle();
 180.109 +        Rectangle iconR = new Rectangle();
 180.110 +        Insets i = getInsets();
 180.111 +        viewR.x = i.left;
 180.112 +        viewR.y = i.top;
 180.113 +        viewR.width = getWidth() - (i.left + i.right);
 180.114 +        viewR.height = getHeight() - (i.top + i.bottom);
 180.115 +        SwingUtilities.layoutCompoundLabel(
 180.116 +            this,
 180.117 +            fontMetrics,
 180.118 +            getText(),
 180.119 +            sortArrow,
 180.120 +            getVerticalAlignment(),
 180.121 +            getHorizontalAlignment(),
 180.122 +            getVerticalTextPosition(),
 180.123 +            getHorizontalTextPosition(),
 180.124 +            viewR,
 180.125 +            iconR,
 180.126 +            textR,
 180.127 +            getIconTextGap());
 180.128 +        int x = getWidth() - i.right - sortArrow.getIconWidth();
 180.129 +        int y = iconR.y;
 180.130 +        return new Point(x, y);
 180.131 +    }
 180.132 +
 180.133 +    private class EmptyIcon implements Icon {
 180.134 +        int width = 0;
 180.135 +        int height = 0;
 180.136 +        public void paintIcon(Component c, Graphics g, int x, int y) {}
 180.137 +        public int getIconWidth() { return width; }
 180.138 +        public int getIconHeight() { return height; }
 180.139 +    }
 180.140  }
   181.1 --- a/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java	Tue Apr 28 14:43:44 2009 -0700
   181.2 +++ b/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java	Wed Apr 29 00:27:46 2009 -0700
   181.3 @@ -490,8 +490,7 @@
   181.4              // if the window manager or any other part of the windowing
   181.5              // system sets inappropriate size for this window, we can
   181.6              // do nothing but accept it.
   181.7 -            Rectangle reqBounds = newDimensions.getBounds();
   181.8 -            Rectangle newBounds = constrainBounds(reqBounds.x, reqBounds.y, reqBounds.width, reqBounds.height);
   181.9 +            Rectangle newBounds = newDimensions.getBounds();
  181.10              Insets insets = newDimensions.getInsets();
  181.11              // Inherit isClientSizeSet from newDimensions
  181.12              if (newDimensions.isClientSizeSet()) {
  181.13 @@ -619,46 +618,6 @@
  181.14      // This method gets overriden in XFramePeer & XDialogPeer.
  181.15      abstract boolean isTargetUndecorated();
  181.16  
  181.17 -    @Override
  181.18 -    Rectangle constrainBounds(int x, int y, int width, int height) {
  181.19 -        // We don't restrict the setBounds() operation if the code is trusted.
  181.20 -        if (!hasWarningWindow()) {
  181.21 -            return new Rectangle(x, y, width, height);
  181.22 -        }
  181.23 -
  181.24 -        // If it's undecorated or is not currently visible,
  181.25 -        // apply the same constraints as for the Window.
  181.26 -        if (!isVisible() || isTargetUndecorated()) {
  181.27 -            return super.constrainBounds(x, y, width, height);
  181.28 -        }
  181.29 -
  181.30 -        // If it's visible & decorated, constraint the size only
  181.31 -        int newX = x;
  181.32 -        int newY = y;
  181.33 -        int newW = width;
  181.34 -        int newH = height;
  181.35 -
  181.36 -        GraphicsConfiguration gc = ((Window)target).getGraphicsConfiguration();
  181.37 -        Rectangle sB = gc.getBounds();
  181.38 -        Insets sIn = ((Window)target).getToolkit().getScreenInsets(gc);
  181.39 -
  181.40 -        Rectangle curBounds = getBounds();
  181.41 -
  181.42 -        int maxW = Math.max(sB.width - sIn.left - sIn.right, curBounds.width);
  181.43 -        int maxH = Math.max(sB.height - sIn.top - sIn.bottom, curBounds.height);
  181.44 -
  181.45 -        // First make sure the size is withing the visible part of the screen
  181.46 -        if (newW > maxW) {
  181.47 -            newW = maxW;
  181.48 -        }
  181.49 -
  181.50 -        if (newH > maxH) {
  181.51 -            newH = maxH;
  181.52 -        }
  181.53 -
  181.54 -        return new Rectangle(newX, newY, newW, newH);
  181.55 -    }
  181.56 -
  181.57      /**
  181.58       * @see java.awt.peer.ComponentPeer#setBounds
  181.59       */
   182.1 --- a/src/solaris/classes/sun/awt/X11/XEmbeddedFramePeer.java	Tue Apr 28 14:43:44 2009 -0700
   182.2 +++ b/src/solaris/classes/sun/awt/X11/XEmbeddedFramePeer.java	Wed Apr 29 00:27:46 2009 -0700
   182.3 @@ -196,12 +196,6 @@
   182.4          }
   182.5      }
   182.6  
   182.7 -    @Override
   182.8 -    Rectangle constrainBounds(int x, int y, int width, int height) {
   182.9 -        // We don't constrain the bounds of the EmbeddedFrames
  182.10 -        return new Rectangle(x, y, width, height);
  182.11 -    }
  182.12 -
  182.13      // don't use getBounds() inherited from XDecoratedPeer
  182.14      public Rectangle getBounds() {
  182.15          return new Rectangle(x, y, width, height);
   183.1 --- a/src/solaris/classes/sun/awt/X11/XToolkit.java	Tue Apr 28 14:43:44 2009 -0700
   183.2 +++ b/src/solaris/classes/sun/awt/X11/XToolkit.java	Wed Apr 29 00:27:46 2009 -0700
   183.3 @@ -568,6 +568,17 @@
   183.4      {
   183.5          XEvent ev = new XEvent();
   183.6          while(true) {
   183.7 +            // Fix for 6829923: we should gracefully handle toolkit thread interruption
   183.8 +            if (Thread.currentThread().isInterrupted()) {
   183.9 +                // We expect interruption from the AppContext.dispose() method only.
  183.10 +                // If the thread is interrupted from another place, let's skip it
  183.11 +                // for compatibility reasons. Probably some time later we'll remove
  183.12 +                // the check for AppContext.isDisposed() and will unconditionally
  183.13 +                // break the loop here.
  183.14 +                if (AppContext.getAppContext().isDisposed()) {
  183.15 +                    break;
  183.16 +                }
  183.17 +            }
  183.18              awtLock();
  183.19              try {
  183.20                  if (loop == SECONDARY_LOOP) {
   184.1 --- a/src/solaris/classes/sun/awt/X11/XWindow.java	Tue Apr 28 14:43:44 2009 -0700
   184.2 +++ b/src/solaris/classes/sun/awt/X11/XWindow.java	Wed Apr 29 00:27:46 2009 -0700
   184.3 @@ -156,11 +156,11 @@
   184.4      }
   184.5  
   184.6      XWindow(Component target, long parentWindow) {
   184.7 -        this(target, parentWindow, target.getBounds());
   184.8 +        this(target, parentWindow, new Rectangle(target.getBounds()));
   184.9      }
  184.10  
  184.11      XWindow(Component target) {
  184.12 -        this(target, (target.getParent() == null) ? 0 : getParentWindowID(target), target.getBounds());
  184.13 +        this(target, (target.getParent() == null) ? 0 : getParentWindowID(target), new Rectangle(target.getBounds()));
  184.14      }
  184.15  
  184.16      XWindow(Object target) {
  184.17 @@ -198,7 +198,7 @@
  184.18              | XConstants.ButtonMotionMask | XConstants.ExposureMask | XConstants.StructureNotifyMask);
  184.19  
  184.20          if (target != null) {
  184.21 -            params.putIfNull(BOUNDS, target.getBounds());
  184.22 +            params.putIfNull(BOUNDS, new Rectangle(target.getBounds()));
  184.23          } else {
  184.24              params.putIfNull(BOUNDS, new Rectangle(0, 0, MIN_SIZE, MIN_SIZE));
  184.25          }
   185.1 --- a/src/solaris/classes/sun/awt/X11/XWindowPeer.java	Tue Apr 28 14:43:44 2009 -0700
   185.2 +++ b/src/solaris/classes/sun/awt/X11/XWindowPeer.java	Wed Apr 29 00:27:46 2009 -0700
   185.3 @@ -146,6 +146,13 @@
   185.4  
   185.5          params.put(OVERRIDE_REDIRECT, Boolean.valueOf(isOverrideRedirect()));
   185.6  
   185.7 +        SunToolkit.awtLock();
   185.8 +        try {
   185.9 +            windows.add(this);
  185.10 +        } finally {
  185.11 +            SunToolkit.awtUnlock();
  185.12 +        }
  185.13 +
  185.14          cachedFocusableWindow = isFocusableWindow();
  185.15  
  185.16          Font f = target.getFont();
  185.17 @@ -173,9 +180,6 @@
  185.18  
  185.19          GraphicsConfiguration gc = getGraphicsConfiguration();
  185.20          ((X11GraphicsDevice)gc.getDevice()).addDisplayChangedListener(this);
  185.21 -
  185.22 -        Rectangle bounds = (Rectangle)(params.get(BOUNDS));
  185.23 -        params.put(BOUNDS, constrainBounds(bounds.x, bounds.y, bounds.width, bounds.height));
  185.24      }
  185.25  
  185.26      protected String getWMName() {
  185.27 @@ -430,56 +434,6 @@
  185.28          return ownerPeer;
  185.29      }
  185.30  
  185.31 -    // This method is overriden at the XDecoratedPeer to handle
  185.32 -    // decorated windows a bit differently.
  185.33 -    Rectangle constrainBounds(int x, int y, int width, int height) {
  185.34 -        // We don't restrict the setBounds() operation if the code is trusted.
  185.35 -        if (!hasWarningWindow()) {
  185.36 -            return new Rectangle(x, y, width, height);
  185.37 -        }
  185.38 -
  185.39 -        // The window bounds should be within the visible part of the screen
  185.40 -        int newX = x;
  185.41 -        int newY = y;
  185.42 -        int newW = width;
  185.43 -        int newH = height;
  185.44 -
  185.45 -        // Now check each point is within the visible part of the screen
  185.46 -        GraphicsConfiguration gc = ((Window)target).getGraphicsConfiguration();
  185.47 -        Rectangle sB = gc.getBounds();
  185.48 -        Insets sIn = ((Window)target).getToolkit().getScreenInsets(gc);
  185.49 -
  185.50 -        int screenX = sB.x + sIn.left;
  185.51 -        int screenY = sB.y + sIn.top;
  185.52 -        int screenW = sB.width - sIn.left - sIn.right;
  185.53 -        int screenH = sB.height - sIn.top - sIn.bottom;
  185.54 -
  185.55 -
  185.56 -        // First make sure the size is withing the visible part of the screen
  185.57 -        if (newW > screenW) {
  185.58 -            newW = screenW;
  185.59 -        }
  185.60 -
  185.61 -        if (newH > screenH) {
  185.62 -            newH = screenH;
  185.63 -        }
  185.64 -
  185.65 -        // Tweak the location if needed
  185.66 -        if (newX < screenX) {
  185.67 -            newX = screenX;
  185.68 -        } else if (newX + newW > screenX + screenW) {
  185.69 -            newX = screenX + screenW - newW;
  185.70 -        }
  185.71 -
  185.72 -        if (newY < screenY) {
  185.73 -            newY = screenY;
  185.74 -        } else if (newY + newH > screenY + screenH) {
  185.75 -            newY = screenY + screenH - newH;
  185.76 -        }
  185.77 -
  185.78 -        return new Rectangle(newX, newY, newW, newH);
  185.79 -    }
  185.80 -
  185.81      //Fix for 6318144: PIT:Setting Min Size bigger than current size enlarges
  185.82      //the window but fails to revalidate, Sol-CDE
  185.83      //This bug is regression for
  185.84 @@ -488,13 +442,11 @@
  185.85      //Note that this function is overriden in XDecoratedPeer so event
  185.86      //posting is not changing for decorated peers
  185.87      public void setBounds(int x, int y, int width, int height, int op) {
  185.88 -        Rectangle newBounds = constrainBounds(x, y, width, height);
  185.89 -
  185.90          XToolkit.awtLock();
  185.91          try {
  185.92              Rectangle oldBounds = getBounds();
  185.93  
  185.94 -            super.setBounds(newBounds.x, newBounds.y, newBounds.width, newBounds.height, op);
  185.95 +            super.setBounds(x, y, width, height, op);
  185.96  
  185.97              Rectangle bounds = getBounds();
  185.98  
   186.1 --- a/src/solaris/classes/sun/awt/X11GraphicsConfig.java	Tue Apr 28 14:43:44 2009 -0700
   186.2 +++ b/src/solaris/classes/sun/awt/X11GraphicsConfig.java	Wed Apr 29 00:27:46 2009 -0700
   186.3 @@ -451,9 +451,7 @@
   186.4          }
   186.5      }
   186.6  
   186.7 -    /*
   186.8      @Override
   186.9 -    */
  186.10      public boolean isTranslucencyCapable() {
  186.11          return isTranslucencyCapable(getAData());
  186.12      }
   187.1 --- a/src/windows/classes/sun/awt/Win32GraphicsConfig.java	Tue Apr 28 14:43:44 2009 -0700
   187.2 +++ b/src/windows/classes/sun/awt/Win32GraphicsConfig.java	Wed Apr 29 00:27:46 2009 -0700
   187.3 @@ -332,9 +332,7 @@
   187.4          // the rest of the flip actions are not supported
   187.5      }
   187.6  
   187.7 -    /*
   187.8      @Override
   187.9 -    */
  187.10      public boolean isTranslucencyCapable() {
  187.11          //XXX: worth checking if 8-bit? Anyway, it doesn't hurt.
  187.12          return true;
   188.1 --- a/src/windows/classes/sun/awt/windows/WComponentPeer.java	Tue Apr 28 14:43:44 2009 -0700
   188.2 +++ b/src/windows/classes/sun/awt/windows/WComponentPeer.java	Wed Apr 29 00:27:46 2009 -0700
   188.3 @@ -970,11 +970,12 @@
   188.4       *
   188.5       * Conditions which could prevent hw acceleration include the toplevel
   188.6       * window containing this component being
   188.7 -     * {@link com.sun.awt.AWTUtilities.Translucency#TRANSLUCENT TRANSLUCENT}.
   188.8 +     * {@link GraphicsDevice.WindowTranslucency#PERPIXEL_TRANSLUCENT
   188.9 +     * PERPIXEL_TRANSLUCENT}.
  188.10       *
  188.11       * @return {@code true} if this component is capable of being hw
  188.12       * accelerated, {@code false} otherwise
  188.13 -     * @see com.sun.awt.AWTUtilities.Translucency#TRANSLUCENT
  188.14 +     * @see GraphicsDevice.WindowTranslucency#PERPIXEL_TRANSLUCENT
  188.15       */
  188.16      public boolean isAccelCapable() {
  188.17          boolean isTranslucent =
   189.1 --- a/src/windows/classes/sun/awt/windows/WDialogPeer.java	Tue Apr 28 14:43:44 2009 -0700
   189.2 +++ b/src/windows/classes/sun/awt/windows/WDialogPeer.java	Wed Apr 29 00:27:46 2009 -0700
   189.3 @@ -114,12 +114,10 @@
   189.4      }
   189.5  
   189.6      public void reshape(int x, int y, int width, int height) {
   189.7 -        Rectangle newBounds = constrainBounds(x, y, width, height);
   189.8 -
   189.9          if (((Dialog)target).isUndecorated()) {
  189.10 -            super.reshape(newBounds.x, newBounds.y, newBounds.width, newBounds.height);
  189.11 +            super.reshape(x, y, width, height);
  189.12          } else {
  189.13 -            reshapeFrame(newBounds.x, newBounds.y, newBounds.width, newBounds.height);
  189.14 +            reshapeFrame(x, y, width, height);
  189.15          }
  189.16      }
  189.17  
   190.1 --- a/src/windows/classes/sun/awt/windows/WEmbeddedFramePeer.java	Tue Apr 28 14:43:44 2009 -0700
   190.2 +++ b/src/windows/classes/sun/awt/windows/WEmbeddedFramePeer.java	Wed Apr 29 00:27:46 2009 -0700
   190.3 @@ -68,12 +68,6 @@
   190.4      public native void synthesizeWmActivate(boolean doActivate);
   190.5  
   190.6      @Override
   190.7 -    Rectangle constrainBounds(int x, int y, int width, int height) {
   190.8 -        // We don't constrain the bounds of the EmbeddedFrames
   190.9 -        return new Rectangle(x, y, width, height);
  190.10 -    }
  190.11 -
  190.12 -    @Override
  190.13      public boolean isAccelCapable() {
  190.14          // REMIND: Temp workaround for issues with using HW acceleration
  190.15          // in the browser on Vista when DWM is enabled
   191.1 --- a/src/windows/classes/sun/awt/windows/WFramePeer.java	Tue Apr 28 14:43:44 2009 -0700
   191.2 +++ b/src/windows/classes/sun/awt/windows/WFramePeer.java	Wed Apr 29 00:27:46 2009 -0700
   191.3 @@ -89,12 +89,10 @@
   191.4      }
   191.5  
   191.6      public void reshape(int x, int y, int width, int height) {
   191.7 -        Rectangle newBounds = constrainBounds(x, y, width, height);
   191.8 -
   191.9          if (((Frame)target).isUndecorated()) {
  191.10 -            super.reshape(newBounds.x, newBounds.y, newBounds.width, newBounds.height);
  191.11 +            super.reshape(x, y, width, height);
  191.12          } else {
  191.13 -            reshapeFrame(newBounds.x, newBounds.y, newBounds.width, newBounds.height);
  191.14 +            reshapeFrame(x, y, width, height);
  191.15          }
  191.16      }
  191.17  
   192.1 --- a/src/windows/classes/sun/awt/windows/WPanelPeer.java	Tue Apr 28 14:43:44 2009 -0700
   192.2 +++ b/src/windows/classes/sun/awt/windows/WPanelPeer.java	Wed Apr 29 00:27:46 2009 -0700
   192.3 @@ -99,45 +99,4 @@
   192.4      public Insets insets() {
   192.5          return getInsets();
   192.6      }
   192.7 -
   192.8 -    private native void pRestack(Object[] peers);
   192.9 -    private void restack(Container cont, Vector peers) {
  192.10 -        for (int i = 0; i < cont.getComponentCount(); i++) {
  192.11 -            Component comp = cont.getComponent(i);
  192.12 -            if (!comp.isLightweight()) {
  192.13 -                ComponentPeer peer = comp.getPeer();
  192.14 -                if (peer != null && (peer instanceof WComponentPeer))
  192.15 -                {
  192.16 -                    peers.add(peer);
  192.17 -                } else {
  192.18 -                    if (log.isLoggable(Level.FINE)) {
  192.19 -                        log.log(Level.FINE,
  192.20 -                                "peer of a {0} is null or not a WComponentPeer: {1}.",
  192.21 -                                new Object[]{comp, peer});
  192.22 -                    }
  192.23 -                }
  192.24 -            }
  192.25 -            if (comp.isLightweight() && comp instanceof Container) {
  192.26 -                restack((Container)comp, peers);
  192.27 -            }
  192.28 -        }
  192.29 -    }
  192.30 -
  192.31 -    /**
  192.32 -     * @see java.awt.peer.ContainerPeer#restack
  192.33 -     */
  192.34 -    public void restack() {
  192.35 -        Vector peers = new Vector();
  192.36 -        peers.add(this);
  192.37 -        Container cont = (Container)target;
  192.38 -        restack(cont, peers);
  192.39 -        pRestack(peers.toArray());
  192.40 -    }
  192.41 -
  192.42 -    /**
  192.43 -     * @see java.awt.peer.ContainerPeer#isRestackSupported
  192.44 -     */
  192.45 -    public boolean isRestackSupported() {
  192.46 -        return true;
  192.47 -    }
  192.48  }
   193.1 --- a/src/windows/classes/sun/awt/windows/WWindowPeer.java	Tue Apr 28 14:43:44 2009 -0700
   193.2 +++ b/src/windows/classes/sun/awt/windows/WWindowPeer.java	Wed Apr 29 00:27:46 2009 -0700
   193.3 @@ -335,16 +335,14 @@
   193.4      }
   193.5  
   193.6      private void updateShape() {
   193.7 -        // Shape shape = ((Window)target).getShape();
   193.8 -        Shape shape = AWTAccessor.getWindowAccessor().getShape((Window)target);
   193.9 +        Shape shape = ((Window)target).getShape();
  193.10          if (shape != null) {
  193.11              applyShape(Region.getInstance(shape, null));
  193.12          }
  193.13      }
  193.14  
  193.15      private void updateOpacity() {
  193.16 -        // float opacity = ((Window)target).getOpacity();
  193.17 -        float opacity = AWTAccessor.getWindowAccessor().getOpacity((Window)target);
  193.18 +        float opacity = ((Window)target).getOpacity();
  193.19          if (opacity < 1.0f) {
  193.20              setOpacity(opacity);
  193.21          }
  193.22 @@ -546,81 +544,16 @@
  193.23       private volatile int sysW = 0;
  193.24       private volatile int sysH = 0;
  193.25  
  193.26 -     Rectangle constrainBounds(int x, int y, int width, int height) {
  193.27 -         GraphicsConfiguration gc = this.winGraphicsConfig;
  193.28 -
  193.29 -         // We don't restrict the setBounds() operation if the code is trusted.
  193.30 -         if (!hasWarningWindow() || gc == null) {
  193.31 -             return new Rectangle(x, y, width, height);
  193.32 -         }
  193.33 -
  193.34 -         int newX = x;
  193.35 -         int newY = y;
  193.36 -         int newW = width;
  193.37 -         int newH = height;
  193.38 -
  193.39 -         Rectangle sB = gc.getBounds();
  193.40 -         Insets sIn = Toolkit.getDefaultToolkit().getScreenInsets(gc);
  193.41 -
  193.42 -         int screenW = sB.width - sIn.left - sIn.right;
  193.43 -         int screenH = sB.height - sIn.top - sIn.bottom;
  193.44 -
  193.45 -         // If it's undecorated or is not currently visible
  193.46 -         if (!AWTAccessor.getComponentAccessor().isVisible_NoClientCode(
  193.47 -                     (Component)target) || isTargetUndecorated())
  193.48 -         {
  193.49 -             // Now check each point is within the visible part of the screen
  193.50 -             int screenX = sB.x + sIn.left;
  193.51 -             int screenY = sB.y + sIn.top;
  193.52 -
  193.53 -             // First make sure the size is within the visible part of the screen
  193.54 -             if (newW > screenW) {
  193.55 -                 newW = screenW;
  193.56 -             }
  193.57 -             if (newH > screenH) {
  193.58 -                 newH = screenH;
  193.59 -             }
  193.60 -
  193.61 -             // Tweak the location if needed
  193.62 -             if (newX < screenX) {
  193.63 -                 newX = screenX;
  193.64 -             } else if (newX + newW > screenX + screenW) {
  193.65 -                 newX = screenX + screenW - newW;
  193.66 -             }
  193.67 -             if (newY < screenY) {
  193.68 -                 newY = screenY;
  193.69 -             } else if (newY + newH > screenY + screenH) {
  193.70 -                 newY = screenY + screenH - newH;
  193.71 -             }
  193.72 -         } else {
  193.73 -             int maxW = Math.max(screenW, sysW);
  193.74 -             int maxH = Math.max(screenH, sysH);
  193.75 -
  193.76 -             // Make sure the size is withing the visible part of the screen
  193.77 -             // OR less that the current size of the window.
  193.78 -             if (newW > maxW) {
  193.79 -                 newW = maxW;
  193.80 -             }
  193.81 -             if (newH > maxH) {
  193.82 -                 newH = maxH;
  193.83 -             }
  193.84 -         }
  193.85 -
  193.86 -         return new Rectangle(newX, newY, newW, newH);
  193.87 -     }
  193.88 -
  193.89       public native void repositionSecurityWarning();
  193.90  
  193.91       @Override
  193.92       public void setBounds(int x, int y, int width, int height, int op) {
  193.93 -         Rectangle newBounds = constrainBounds(x, y, width, height);
  193.94 +         sysX = x;
  193.95 +         sysY = y;
  193.96 +         sysW = width;
  193.97 +         sysH = height;
  193.98  
  193.99 -         sysX = newBounds.x;
 193.100 -         sysY = newBounds.y;
 193.101 -         sysW = newBounds.width;
 193.102 -         sysH = newBounds.height;
 193.103 -
 193.104 -         super.setBounds(newBounds.x, newBounds.y, newBounds.width, newBounds.height, op);
 193.105 +         super.setBounds(x, y, width, height, op);
 193.106       }
 193.107  
 193.108      @Override
 193.109 @@ -675,11 +608,13 @@
 193.110      public void setOpaque(boolean isOpaque) {
 193.111          Window target = (Window)getTarget();
 193.112  
 193.113 -        SunToolkit sunToolkit = (SunToolkit)target.getToolkit();
 193.114 -        if (!sunToolkit.isWindowTranslucencySupported() ||
 193.115 -            !sunToolkit.isTranslucencyCapable(target.getGraphicsConfiguration()))
 193.116 -        {
 193.117 -            return;
 193.118 +        if (!isOpaque) {
 193.119 +            SunToolkit sunToolkit = (SunToolkit)target.getToolkit();
 193.120 +            if (!sunToolkit.isWindowTranslucencySupported() ||
 193.121 +                !sunToolkit.isTranslucencyCapable(target.getGraphicsConfiguration()))
 193.122 +            {
 193.123 +                return;
 193.124 +            }
 193.125          }
 193.126  
 193.127          boolean opaqueChanged = this.isOpaque != isOpaque;
 193.128 @@ -713,9 +648,9 @@
 193.129              // its shape only. To restore the correct visual appearance
 193.130              // of the window (i.e. w/ the correct shape) we have to reset
 193.131              // the shape.
 193.132 -            Shape shape = AWTAccessor.getWindowAccessor().getShape(target);
 193.133 +            Shape shape = ((Window)target).getShape();
 193.134              if (shape != null) {
 193.135 -                AWTAccessor.getWindowAccessor().setShape(target, shape);
 193.136 +                ((Window)target).setShape(shape);
 193.137              }
 193.138          }
 193.139  
 193.140 @@ -729,6 +664,11 @@
 193.141              return;
 193.142          }
 193.143  
 193.144 +        Component target = (Component)this.target;
 193.145 +        if (target.getWidth() <= 0 || target.getHeight() <= 0) {
 193.146 +            return;
 193.147 +        }
 193.148 +
 193.149          TranslucentWindowPainter currentPainter = painter;
 193.150          if (currentPainter != null) {
 193.151              currentPainter.updateWindow(backBuffer);
   194.1 --- a/src/windows/native/sun/windows/awt_Component.cpp	Tue Apr 28 14:43:44 2009 -0700
   194.2 +++ b/src/windows/native/sun/windows/awt_Component.cpp	Wed Apr 29 00:27:46 2009 -0700
   194.3 @@ -1843,8 +1843,13 @@
   194.4        case WM_AWT_SETALWAYSONTOP: {
   194.5          AwtWindow* w = (AwtWindow*)lParam;
   194.6          BOOL value = (BOOL)wParam;
   194.7 +        UINT flags = SWP_NOMOVE | SWP_NOSIZE;
   194.8 +        // transient windows shouldn't change the owner window's position in the z-order
   194.9 +        if (w->IsRetainingHierarchyZOrder()) {
  194.10 +            flags |= SWP_NOOWNERZORDER;
  194.11 +        }
  194.12          ::SetWindowPos(w->GetHWnd(), (value != 0 ? HWND_TOPMOST : HWND_NOTOPMOST),
  194.13 -                       0,0,0,0, SWP_NOMOVE|SWP_NOSIZE);
  194.14 +                       0,0,0,0, flags);
  194.15          break;
  194.16        }
  194.17  
   195.1 --- a/src/windows/native/sun/windows/awt_Window.cpp	Tue Apr 28 14:43:44 2009 -0700
   195.2 +++ b/src/windows/native/sun/windows/awt_Window.cpp	Wed Apr 29 00:27:46 2009 -0700
   195.3 @@ -165,7 +165,6 @@
   195.4  int AwtWindow::ms_instanceCounter = 0;
   195.5  HHOOK AwtWindow::ms_hCBTFilter;
   195.6  AwtWindow * AwtWindow::m_grabbedWindow = NULL;
   195.7 -HWND AwtWindow::sm_retainingHierarchyZOrderInShow = NULL;
   195.8  BOOL AwtWindow::sm_resizing = FALSE;
   195.9  UINT AwtWindow::untrustedWindowsCounter = 0;
  195.10  
  195.11 @@ -341,23 +340,6 @@
  195.12  }
  195.13  
  195.14  MsgRouting AwtWindow::WmWindowPosChanging(LPARAM windowPos) {
  195.15 -    /*
  195.16 -     * See 6178004.
  195.17 -     * Some windows shouldn't trigger a change in z-order of
  195.18 -     * any window from the hierarchy.
  195.19 -     */
  195.20 -    if (IsRetainingHierarchyZOrder()) {
  195.21 -        if (((WINDOWPOS *)windowPos)->flags & SWP_SHOWWINDOW) {
  195.22 -            sm_retainingHierarchyZOrderInShow = GetHWnd();
  195.23 -        }
  195.24 -    } else if (sm_retainingHierarchyZOrderInShow != NULL) {
  195.25 -        HWND ancestor = ::GetAncestor(sm_retainingHierarchyZOrderInShow, GA_ROOTOWNER);
  195.26 -        HWND windowAncestor = ::GetAncestor(GetHWnd(), GA_ROOTOWNER);
  195.27 -
  195.28 -        if (windowAncestor == ancestor) {
  195.29 -            ((WINDOWPOS *)windowPos)->flags |= SWP_NOZORDER;
  195.30 -        }
  195.31 -    }
  195.32      return mrDoDefault;
  195.33  }
  195.34  
  195.35 @@ -369,19 +351,14 @@
  195.36      ::SetWindowPos(warningWindow, HWND_NOTOPMOST,
  195.37              rect.left, rect.top,
  195.38              rect.right - rect.left, rect.bottom - rect.top,
  195.39 -            SWP_ASYNCWINDOWPOS | SWP_NOACTIVATE | SWP_NOZORDER
  195.40 +            SWP_ASYNCWINDOWPOS | SWP_NOACTIVATE | SWP_NOZORDER |
  195.41 +            SWP_NOOWNERZORDER
  195.42              );
  195.43  }
  195.44  
  195.45  MsgRouting AwtWindow::WmWindowPosChanged(LPARAM windowPos) {
  195.46      WINDOWPOS * wp = (WINDOWPOS *)windowPos;
  195.47  
  195.48 -    if (IsRetainingHierarchyZOrder() && wp->flags & SWP_SHOWWINDOW) {
  195.49 -        // By this time all the windows from the hierarchy are already notified about z-order change.
  195.50 -        // Thus we may and we should reset the trigger in order not to affect other changes.
  195.51 -        sm_retainingHierarchyZOrderInShow = NULL;
  195.52 -    }
  195.53 -
  195.54      // Reposition the warning window
  195.55      if (IsUntrusted() && warningWindow != NULL) {
  195.56          if (wp->flags & SWP_HIDEWINDOW) {
  195.57 @@ -854,7 +831,7 @@
  195.58      if (securityAnimationKind == akShow) {
  195.59          ::SetWindowPos(warningWindow, HWND_NOTOPMOST, 0, 0, 0, 0,
  195.60                  SWP_NOACTIVATE | SWP_NOSIZE | SWP_NOMOVE |
  195.61 -                SWP_SHOWWINDOW);
  195.62 +                SWP_SHOWWINDOW | SWP_NOOWNERZORDER);
  195.63  
  195.64          ::SetLayeredWindowAttributes(warningWindow, RGB(0, 0, 0),
  195.65                  0xFF, LWA_ALPHA);
  195.66 @@ -880,7 +857,7 @@
  195.67          case akPreHide:
  195.68              ::SetWindowPos(warningWindow, HWND_NOTOPMOST, 0, 0, 0, 0,
  195.69                      SWP_NOACTIVATE | SWP_NOSIZE | SWP_NOMOVE |
  195.70 -                    SWP_HIDEWINDOW);
  195.71 +                    SWP_HIDEWINDOW | SWP_NOOWNERZORDER);
  195.72              break;
  195.73          case akShow:
  195.74              RepaintWarningWindow();
  195.75 @@ -1250,7 +1227,16 @@
  195.76          }
  195.77      }
  195.78      if (!done) {
  195.79 -        ::ShowWindow(GetHWnd(), nCmdShow);
  195.80 +        // transient windows shouldn't change the owner window's position in the z-order
  195.81 +        if (IsRetainingHierarchyZOrder()){
  195.82 +            UINT flags = SWP_NOSIZE | SWP_NOMOVE | SWP_SHOWWINDOW | SWP_NOOWNERZORDER;
  195.83 +            if (nCmdShow == SW_SHOWNA) {
  195.84 +                flags |= SWP_NOACTIVATE;
  195.85 +            }
  195.86 +            ::SetWindowPos(GetHWnd(), HWND_TOPMOST, 0, 0, 0, 0, flags);
  195.87 +        } else {
  195.88 +            ::ShowWindow(GetHWnd(), nCmdShow);
  195.89 +        }
  195.90      }
  195.91      env->DeleteLocalRef(target);
  195.92  }
   196.1 --- a/src/windows/native/sun/windows/awt_Window.h	Tue Apr 28 14:43:44 2009 -0700
   196.2 +++ b/src/windows/native/sun/windows/awt_Window.h	Wed Apr 29 00:27:46 2009 -0700
   196.3 @@ -248,7 +248,6 @@
   196.4      static int ms_instanceCounter;
   196.5      static HHOOK ms_hCBTFilter;
   196.6      static LRESULT CALLBACK CBTFilter(int nCode, WPARAM wParam, LPARAM lParam);
   196.7 -    static HWND sm_retainingHierarchyZOrderInShow; // a referred window in the process of show
   196.8      static BOOL sm_resizing;        /* in the middle of a resizing operation */
   196.9  
  196.10      RECT m_insets;          /* a cache of the insets being used */
   197.1 --- a/test/com/sun/awt/Translucency/TranslucentJAppletTest/TranslucentJAppletTest.java	Tue Apr 28 14:43:44 2009 -0700
   197.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   197.3 @@ -1,103 +0,0 @@
   197.4 -/*
   197.5 - * Copyright 2008-2009 Sun Microsystems, Inc.  All Rights Reserved.
   197.6 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   197.7 - *
   197.8 - * This code is free software; you can redistribute it and/or modify it
   197.9 - * under the terms of the GNU General Public License version 2 only, as
  197.10 - * published by the Free Software Foundation.
  197.11 - *
  197.12 - * This code is distributed in the hope that it will be useful, but WITHOUT
  197.13 - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  197.14 - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  197.15 - * version 2 for more details (a copy is included in the LICENSE file that
  197.16 - * accompanied this code).
  197.17 - *
  197.18 - * You should have received a copy of the GNU General Public License version
  197.19 - * 2 along with this work; if not, write to the Free Software Foundation,
  197.20 - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  197.21 - *
  197.22 - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  197.23 - * CA 95054 USA or visit www.sun.com if you need additional information or
  197.24 - * have any questions.
  197.25 - */
  197.26 -
  197.27 -/*
  197.28 - * @test %I% %E%
  197.29 - * @bug 6683728
  197.30 - * @summary Tests that a JApplet in a translucent JFrame works properly
  197.31 - * @author Kenneth.Russell@sun.com: area=Graphics
  197.32 - * @compile -XDignore.symbol.file=true TranslucentJAppletTest.java
  197.33 - * @run main/manual/othervm TranslucentJAppletTest
  197.34 - */
  197.35 -
  197.36 -import java.awt.*;
  197.37 -import java.awt.image.*;
  197.38 -
  197.39 -import javax.swing.*;
  197.40 -
  197.41 -public class TranslucentJAppletTest {
  197.42 -
  197.43 -    private static JFrame frame;
  197.44 -    private static volatile boolean paintComponentCalled = false;
  197.45 -
  197.46 -    private static void initAndShowGUI() {
  197.47 -        frame = new JFrame();
  197.48 -        JApplet applet = new JApplet();
  197.49 -        JPanel panel = new JPanel() {
  197.50 -            protected void paintComponent(Graphics g) {
  197.51 -                paintComponentCalled = true;
  197.52 -                g.setColor(Color.RED);
  197.53 -                g.fillOval(0, 0, getWidth(), getHeight());
  197.54 -            }
  197.55 -        };
  197.56 -        panel.setDoubleBuffered(false);
  197.57 -        panel.setOpaque(false);
  197.58 -        applet.add(panel);
  197.59 -        frame.add(applet);
  197.60 -        frame.setBounds(100, 100, 200, 200);
  197.61 -        frame.setUndecorated(true);
  197.62 -        com.sun.awt.AWTUtilities.setWindowOpaque(frame, false);
  197.63 -        frame.setVisible(true);
  197.64 -    }
  197.65 -
  197.66 -    public static void main(String[] args)
  197.67 -        throws Exception
  197.68 -    {
  197.69 -        sun.awt.SunToolkit tk = (sun.awt.SunToolkit)Toolkit.getDefaultToolkit();
  197.70 -
  197.71 -        Robot r = new Robot();
  197.72 -        Color color1 = r.getPixelColor(100, 100); // (0, 0) in frame coordinates
  197.73 -
  197.74 -        SwingUtilities.invokeAndWait(new Runnable() {
  197.75 -            public void run() {
  197.76 -                initAndShowGUI();
  197.77 -            }
  197.78 -        });
  197.79 -        tk.realSync();
  197.80 -
  197.81 -        if (!paintComponentCalled) {
  197.82 -            throw new RuntimeException("Test FAILED: panel's paintComponent() method is not called");
  197.83 -        }
  197.84 -
  197.85 -        Color newColor1 = r.getPixelColor(100, 100);
  197.86 -        // unfortunately, robot.getPixelColor() doesn't work for some unknown reason
  197.87 -        // Color newColor2 = r.getPixelColor(200, 200);
  197.88 -        BufferedImage bim = r.createScreenCapture(new Rectangle(200, 200, 1, 1));
  197.89 -        Color newColor2 = new Color(bim.getRGB(0, 0));
  197.90 -
  197.91 -        // Frame must be transparent at (100, 100) in screen coords
  197.92 -        if (!color1.equals(newColor1)) {
  197.93 -            System.err.println("color1 = " + color1);
  197.94 -            System.err.println("newColor1 = " + newColor1);
  197.95 -            throw new RuntimeException("Test FAILED: frame pixel at (0, 0) is not transparent");
  197.96 -        }
  197.97 -
  197.98 -        // Frame must be RED at (200, 200) in screen coords
  197.99 -        if (!newColor2.equals(Color.RED)) {
 197.100 -            System.err.println("newColor2 = " + newColor2);
 197.101 -            throw new RuntimeException("Test FAILED: frame pixel at (100, 100) is not red (transparent?)");
 197.102 -        }
 197.103 -
 197.104 -        System.out.println("Test PASSED");
 197.105 -    }
 197.106 -}
   198.1 --- a/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TSFrame.java	Tue Apr 28 14:43:44 2009 -0700
   198.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   198.3 @@ -1,306 +0,0 @@
   198.4 -/*
   198.5 - * Copyright 2008-2009 Sun Microsystems, Inc.  All Rights Reserved.
   198.6 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   198.7 - *
   198.8 - * This code is free software; you can redistribute it and/or modify it
   198.9 - * under the terms of the GNU General Public License version 2 only, as
  198.10 - * published by the Free Software Foundation.  Sun designates this
  198.11 - * particular file as subject to the "Classpath" exception as provided
  198.12 - * by Sun in the LICENSE file that accompanied this code.
  198.13 - *
  198.14 - * This code is distributed in the hope that it will be useful, but WITHOUT
  198.15 - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  198.16 - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  198.17 - * version 2 for more details (a copy is included in the LICENSE file that
  198.18 - * accompanied this code).
  198.19 - *
  198.20 - * You should have received a copy of the GNU General Public License version
  198.21 - * 2 along with this work; if not, write to the Free Software Foundation,
  198.22 - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  198.23 - *
  198.24 - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  198.25 - * CA 95054 USA or visit www.sun.com if you need additional information or
  198.26 - * have any questions.
  198.27 - */
  198.28 -
  198.29 -import com.sun.awt.AWTUtilities;
  198.30 -import static com.sun.awt.AWTUtilities.Translucency.*;
  198.31 -import java.awt.BorderLayout;
  198.32 -import java.awt.Color;
  198.33 -import java.awt.Dimension;
  198.34 -import java.awt.Frame;
  198.35 -import java.awt.Graphics;
  198.36 -import java.awt.GraphicsConfiguration;
  198.37 -import java.awt.GraphicsEnvironment;
  198.38 -import java.awt.RenderingHints;
  198.39 -import java.awt.event.MouseAdapter;
  198.40 -import java.awt.event.MouseEvent;
  198.41 -import java.awt.event.WindowAdapter;
  198.42 -import java.awt.event.WindowEvent;
  198.43 -import java.awt.Canvas;
  198.44 -import java.awt.Component;
  198.45 -import java.awt.GradientPaint;
  198.46 -import java.awt.Graphics2D;
  198.47 -import java.awt.Paint;
  198.48 -import java.util.Random;
  198.49 -import java.awt.geom.Ellipse2D;
  198.50 -import javax.swing.JApplet;
  198.51 -import javax.swing.JButton;
  198.52 -import javax.swing.JComponent;
  198.53 -import javax.swing.JFrame;
  198.54 -import javax.swing.JPanel;
  198.55 -import javax.swing.SwingUtilities;
  198.56 -
  198.57 -public class TSFrame {
  198.58 -
  198.59 -    static volatile boolean done = false;
  198.60 -
  198.61 -    static final boolean useSwing = System.getProperty("useswing") != null;
  198.62 -    static final boolean useShape = System.getProperty("useshape") != null;
  198.63 -    static final boolean useTransl = System.getProperty("usetransl") != null;
  198.64 -    static final boolean useNonOpaque = System.getProperty("usenonop") != null;
  198.65 -
  198.66 -    static final Random rnd = new Random();
  198.67 -    private static void render(Graphics g, int w, int h, boolean useNonOpaque) {
  198.68 -        if (useNonOpaque) {
  198.69 -            Graphics2D g2d = (Graphics2D)g;
  198.70 -            GradientPaint p =
  198.71 -                new GradientPaint(0.0f, 0.0f,
  198.72 -                                  new Color(rnd.nextInt(0xffffff)),
  198.73 -                                  w, h,
  198.74 -                                  new Color(rnd.nextInt(0xff),
  198.75 -                                            rnd.nextInt(0xff),
  198.76 -                                            rnd.nextInt(0xff), 0),
  198.77 -                                  true);
  198.78 -            g2d.setPaint(p);
  198.79 -            g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
  198.80 -                                 RenderingHints.VALUE_ANTIALIAS_ON);
  198.81 -            g2d.fillOval(0, 0, w, h);
  198.82 -        } else {
  198.83 -            g.setColor(new Color(rnd.nextInt(0xffffff)));
  198.84 -            g.fillRect(0, 0, w, h);
  198.85 -        }
  198.86 -    }
  198.87 -
  198.88 -    private static class MyCanvas extends Canvas {
  198.89 -        @Override
  198.90 -        public void paint(Graphics g) {
  198.91 -            render(g, getWidth(), getHeight(), false);
  198.92 -        }
  198.93 -        @Override
  198.94 -        public Dimension getPreferredSize() {
  198.95 -            return new Dimension(200, 100);
  198.96 -        }
  198.97 -    }
  198.98 -    private static class NonOpaqueJFrame extends JFrame {
  198.99 -        NonOpaqueJFrame(GraphicsConfiguration gc) {
 198.100 -            super("NonOpaque Swing JFrame", gc);
 198.101 -            JPanel p = new JPanel() {
 198.102 -                public void paintComponent(Graphics g) {
 198.103 -                    super.paintComponent(g);
 198.104 -                    render(g, getWidth(), getHeight(), true);
 198.105 -                    g.setColor(Color.red);
 198.106 -                    g.drawString("Non-Opaque Swing JFrame", 10, 15);
 198.107 -                }
 198.108 -            };
 198.109 -            p.setDoubleBuffered(false);
 198.110 -            p.setOpaque(false);
 198.111 -            add(p);
 198.112 -            setUndecorated(true);
 198.113 -        }
 198.114 -    }
 198.115 -    private static class NonOpaqueJAppletFrame extends JFrame {
 198.116 -        JPanel p;
 198.117 -        NonOpaqueJAppletFrame(GraphicsConfiguration gc) {
 198.118 -            super("NonOpaque Swing JAppletFrame", gc);
 198.119 -            JApplet ja = new JApplet() {
 198.120 -                public void paint(Graphics g) {
 198.121 -                    super.paint(g);
 198.122 -                    System.err.println("JAppletFrame paint called");
 198.123 -                }
 198.124 -            };
 198.125 -            p = new JPanel() {
 198.126 -                public void paintComponent(Graphics g) {
 198.127 -                    super.paintComponent(g);
 198.128 -                    render(g, getWidth(), getHeight(), true);
 198.129 -                    g.setColor(Color.red);
 198.130 -                    g.drawString("Non-Opaque Swing JFrame", 10, 15);
 198.131 -                }
 198.132 -            };
 198.133 -            p.setDoubleBuffered(false);
 198.134 -            p.setOpaque(false);
 198.135 -            ja.add(p);
 198.136 -            add(ja);
 198.137 -            setUndecorated(true);
 198.138 -        }
 198.139 -    }
 198.140 -    private static class NonOpaqueFrame extends Frame {
 198.141 -        NonOpaqueFrame(GraphicsConfiguration gc) {
 198.142 -            super("NonOpaque AWT Frame", gc);
 198.143 -            // uncomment to test with hw child
 198.144 -//            setLayout(null);
 198.145 -//            Component c = new Panel() {
 198.146 -//                public void paint(Graphics g) {
 198.147 -//                    g.setColor(new Color(1.0f, 1.0f, 1.0f, 0.5f));
 198.148 -//                    g.fillRect(0, 0, getWidth(), getHeight());
 198.149 -//                }
 198.150 -//            };
 198.151 -//            c.setSize(100, 100);
 198.152 -//            c.setBackground(Color.red);
 198.153 -//            c.setForeground(Color.red);
 198.154 -//            add(c);
 198.155 -//            c.setLocation(130, 130);
 198.156 -        }
 198.157 -        @Override
 198.158 -        public void paint(Graphics g) {
 198.159 -            render(g, getWidth(), getHeight(), true);
 198.160 -            g.setColor(Color.red);
 198.161 -            g.drawString("Non-Opaque AWT Frame", 10, 15);
 198.162 -        }
 198.163 -    }
 198.164 -
 198.165 -    private static class MyJPanel extends JPanel {
 198.166 -        @Override
 198.167 -        public void paintComponent(Graphics g) {
 198.168 -            render(g, getWidth(), getHeight(), false);
 198.169 -        }
 198.170 -    }
 198.171 -
 198.172 -    public static Frame createGui(GraphicsConfiguration gc,
 198.173 -                                  final boolean useSwing,
 198.174 -                                  final boolean useShape,
 198.175 -                                  final boolean useTransl,
 198.176 -                                  final boolean useNonOpaque,
 198.177 -                                  final float factor)
 198.178 -    {
 198.179 -        Frame frame;
 198.180 -        done = false;
 198.181 -
 198.182 -        if (gc == null) {
 198.183 -            gc = GraphicsEnvironment.getLocalGraphicsEnvironment().
 198.184 -                    getDefaultScreenDevice().getDefaultConfiguration();
 198.185 -        }
 198.186 -
 198.187 -        if (useNonOpaque) {
 198.188 -            if (useSwing) {
 198.189 -                frame = new NonOpaqueJFrame(gc);
 198.190 -//                frame = new NonOpaqueJAppletFrame(gc);
 198.191 -            } else {
 198.192 -                frame = new NonOpaqueFrame(gc);
 198.193 -            }
 198.194 -            animateComponent(frame);
 198.195 -        } else if (useSwing) {
 198.196 -            frame = new JFrame("Swing Frame", gc);
 198.197 -            JComponent p = new JButton("Swing!");
 198.198 -            p.setPreferredSize(new Dimension(200, 100));
 198.199 -            frame.add("North", p);
 198.200 -            p = new MyJPanel();
 198.201 -            animateComponent(p);
 198.202 -            frame.add("Center", p);
 198.203 -        } else {
 198.204 -            frame = new Frame("AWT Frame", gc) {
 198.205 -                public void paint(Graphics g) {
 198.206 -                    g.setColor(Color.red);
 198.207 -                    g.fillRect(0, 0, 100, 100);
 198.208 -                }
 198.209 -            };
 198.210 -            frame.setLayout(new BorderLayout());
 198.211 -            Canvas c = new MyCanvas();
 198.212 -            frame.add("North", c);
 198.213 -            animateComponent(c);
 198.214 -            c = new MyCanvas();
 198.215 -            frame.add("Center", c);
 198.216 -            animateComponent(c);
 198.217 -            c = new MyCanvas();
 198.218 -            frame.add("South", c);
 198.219 -            animateComponent(c);
 198.220 -        }
 198.221 -        final Frame finalFrame = frame;
 198.222 -        frame.addWindowListener(new WindowAdapter() {
 198.223 -            @Override
 198.224 -            public void windowClosing(WindowEvent e) {
 198.225 -                finalFrame.dispose();
 198.226 -                done = true;
 198.227 -            }
 198.228 -        });
 198.229 -        frame.addMouseListener(new MouseAdapter() {
 198.230 -            @Override
 198.231 -            public void mouseClicked(MouseEvent e) {
 198.232 -                finalFrame.dispose();
 198.233 -                done = true;
 198.234 -            }
 198.235 -        });
 198.236 -        frame.setPreferredSize(new Dimension(800, 600));
 198.237 -
 198.238 -        if (useShape) {
 198.239 -            frame.setUndecorated(true);
 198.240 -        }
 198.241 -
 198.242 -        frame.setLocation(450, 10);
 198.243 -        frame.pack();
 198.244 -
 198.245 -        if (useShape) {
 198.246 -            if (AWTUtilities.isTranslucencySupported(PERPIXEL_TRANSPARENT)) {
 198.247 -                System.out.println("applying PERPIXEL_TRANSPARENT");
 198.248 -                AWTUtilities.setWindowShape(frame,
 198.249 -                    new Ellipse2D.Double(0, 0, frame.getWidth(),
 198.250 -                                               frame.getHeight()/3));
 198.251 -                frame.setTitle("PERPIXEL_TRANSPARENT");
 198.252 -            } else {
 198.253 -                System.out.println("Passed: PERPIXEL_TRANSPARENT unsupported");
 198.254 -            }
 198.255 -        }
 198.256 -        if (useTransl) {
 198.257 -            if (AWTUtilities.isTranslucencySupported(TRANSLUCENT)) {
 198.258 -                System.out.println("applying TRANSLUCENT");
 198.259 -                AWTUtilities.setWindowOpacity(frame, factor);
 198.260 -                frame.setTitle("TRANSLUCENT");
 198.261 -            } else {
 198.262 -                System.out.println("Passed: TRANSLUCENT unsupported");
 198.263 -            }
 198.264 -        }
 198.265 -        if (useNonOpaque) {
 198.266 -            if (AWTUtilities.isTranslucencySupported(PERPIXEL_TRANSLUCENT) &&
 198.267 -                AWTUtilities.isTranslucencyCapable(gc))
 198.268 -            {
 198.269 -                System.out.println("applying PERPIXEL_TRANSLUCENT");
 198.270 -                AWTUtilities.setWindowOpaque(frame, false);
 198.271 -                frame.setTitle("PERPIXEL_TRANSLUCENT");
 198.272 -            } else {
 198.273 -                System.out.println("Passed: PERPIXEL_TRANSLUCENT unsupported");
 198.274 -            }
 198.275 -        }
 198.276 -        frame.setVisible(true);
 198.277 -        return frame;
 198.278 -    }
 198.279 -
 198.280 -    public static void stopThreads() {
 198.281 -        done = true;
 198.282 -    }
 198.283 -
 198.284 -    private static void animateComponent(final Component comp) {
 198.285 -        Thread t = new Thread(new Runnable() {
 198.286 -            public void run() {
 198.287 -                do {
 198.288 -                    try {
 198.289 -                        Thread.sleep(50);
 198.290 -                    } catch (InterruptedException ex) {}
 198.291 -                    comp.repaint();
 198.292 -                } while (!done);
 198.293 -            }
 198.294 -        });
 198.295 -        t.start();
 198.296 -    }
 198.297 -
 198.298 -    public static void main(String[] args) throws Exception {
 198.299 -        SwingUtilities.invokeLater(new Runnable() {
 198.300 -            public void run() {
 198.301 -                TSFrame.createGui(null, useSwing,
 198.302 -                                  useShape,
 198.303 -                                  useTransl,
 198.304 -                                  useNonOpaque,
 198.305 -                                  0.7f);
 198.306 -            }
 198.307 -        });
 198.308 -    }
 198.309 -}
   199.1 --- a/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.form	Tue Apr 28 14:43:44 2009 -0700
   199.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   199.3 @@ -1,230 +0,0 @@
   199.4 -<?xml version="1.0" encoding="UTF-8" ?>
   199.5 -
   199.6 -<Form version="1.3" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
   199.7 -  <NonVisualComponents>
   199.8 -    <Component class="javax.swing.ButtonGroup" name="createDisposeGrp">
   199.9 -    </Component>
  199.10 -  </NonVisualComponents>
  199.11 -  <Properties>
  199.12 -    <Property name="defaultCloseOperation" type="int" value="3"/>
  199.13 -    <Property name="title" type="java.lang.String" value="TranslucentShapedFrameTest"/>
  199.14 -  </Properties>
  199.15 -  <SyntheticProperties>
  199.16 -    <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
  199.17 -  </SyntheticProperties>
  199.18 -  <AuxValues>
  199.19 -    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
  199.20 -    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
  199.21 -    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
  199.22 -    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
  199.23 -    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
  199.24 -    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
  199.25 -  </AuxValues>
  199.26 -
  199.27 -  <Layout>
  199.28 -    <DimensionLayout dim="0">
  199.29 -      <Group type="103" groupAlignment="0" attributes="0">
  199.30 -          <Group type="102" attributes="0">
  199.31 -              <EmptySpace max="-2" attributes="0"/>
  199.32 -              <Group type="103" groupAlignment="0" attributes="0">
  199.33 -                  <Group type="102" alignment="0" attributes="0">
  199.34 -                      <Component id="transparencySld" pref="375" max="32767" attributes="0"/>
  199.35 -                      <EmptySpace max="-2" attributes="0"/>
  199.36 -                  </Group>
  199.37 -                  <Component id="jLabel1" alignment="0" min="-2" max="-2" attributes="0"/>
  199.38 -                  <Group type="102" alignment="0" attributes="0">
  199.39 -                      <Component id="shapedCb" min="-2" max="-2" attributes="0"/>
  199.40 -                      <EmptySpace max="-2" attributes="0"/>
  199.41 -                      <Component id="nonOpaqueChb" min="-2" max="-2" attributes="0"/>
  199.42 -                      <EmptySpace max="-2" attributes="0"/>
  199.43 -                      <Component id="useSwingCb" min="-2" max="-2" attributes="0"/>
  199.44 -                      <EmptySpace pref="102" max="32767" attributes="0"/>
  199.45 -                  </Group>
  199.46 -                  <Group type="102" alignment="0" attributes="0">
  199.47 -                      <Group type="103" groupAlignment="0" attributes="0">
  199.48 -                          <Group type="102" alignment="0" attributes="0">
  199.49 -                              <Component id="jLabel2" min="-2" max="-2" attributes="0"/>
  199.50 -                              <EmptySpace pref="314" max="-2" attributes="0"/>
  199.51 -                          </Group>
  199.52 -                          <Group type="102" alignment="0" attributes="0">
  199.53 -                              <Component id="passedBtn" min="-2" max="-2" attributes="0"/>
  199.54 -                              <EmptySpace max="-2" attributes="0"/>
  199.55 -                              <Component id="failedBtn" min="-2" max="-2" attributes="0"/>
  199.56 -                              <EmptySpace pref="241" max="-2" attributes="0"/>
  199.57 -                          </Group>
  199.58 -                          <Component id="jScrollPane1" alignment="1" pref="375" max="32767" attributes="0"/>
  199.59 -                          <Group type="102" alignment="0" attributes="0">
  199.60 -                              <Component id="createFrameBtn" min="-2" pref="187" max="-2" attributes="0"/>
  199.61 -                              <EmptySpace max="-2" attributes="0"/>
  199.62 -                              <Component id="disposeFrameBtn" min="-2" pref="182" max="-2" attributes="0"/>
  199.63 -                          </Group>
  199.64 -                      </Group>
  199.65 -                      <EmptySpace max="-2" attributes="0"/>
  199.66 -                  </Group>
  199.67 -              </Group>
  199.68 -          </Group>
  199.69 -      </Group>
  199.70 -    </DimensionLayout>
  199.71 -    <DimensionLayout dim="1">
  199.72 -      <Group type="103" groupAlignment="0" attributes="0">
  199.73 -          <Group type="102" alignment="0" attributes="0">
  199.74 -              <EmptySpace max="-2" attributes="0"/>
  199.75 -              <Component id="jLabel1" min="-2" max="-2" attributes="0"/>
  199.76 -              <EmptySpace max="-2" attributes="0"/>
  199.77 -              <Component id="transparencySld" min="-2" max="-2" attributes="0"/>
  199.78 -              <EmptySpace max="-2" attributes="0"/>
  199.79 -              <Group type="103" groupAlignment="3" attributes="0">
  199.80 -                  <Component id="shapedCb" alignment="3" min="-2" max="-2" attributes="0"/>
  199.81 -                  <Component id="nonOpaqueChb" alignment="3" min="-2" max="-2" attributes="0"/>
  199.82 -                  <Component id="useSwingCb" alignment="3" min="-2" max="-2" attributes="0"/>
  199.83 -              </Group>
  199.84 -              <EmptySpace max="-2" attributes="0"/>
  199.85 -              <Group type="103" groupAlignment="3" attributes="0">
  199.86 -                  <Component id="disposeFrameBtn" alignment="3" min="-2" max="-2" attributes="0"/>
  199.87 -                  <Component id="createFrameBtn" alignment="3" min="-2" max="-2" attributes="0"/>
  199.88 -              </Group>
  199.89 -              <EmptySpace min="-2" pref="17" max="-2" attributes="0"/>
  199.90 -              <Component id="jLabel2" min="-2" max="-2" attributes="0"/>
  199.91 -              <EmptySpace max="-2" attributes="0"/>
  199.92 -              <Component id="jScrollPane1" min="-2" pref="148" max="-2" attributes="0"/>
  199.93 -              <EmptySpace max="-2" attributes="0"/>
  199.94 -              <Group type="103" groupAlignment="3" attributes="0">
  199.95 -                  <Component id="passedBtn" alignment="3" min="-2" max="-2" attributes="0"/>
  199.96 -                  <Component id="failedBtn" alignment="3" min="-2" max="-2" attributes="0"/>
  199.97 -              </Group>
  199.98 -              <EmptySpace max="32767" attributes="0"/>
  199.99 -          </Group>
 199.100 -      </Group>
 199.101 -    </DimensionLayout>
 199.102 -  </Layout>
 199.103 -  <SubComponents>
 199.104 -    <Component class="javax.swing.JLabel" name="jLabel1">
 199.105 -      <Properties>
 199.106 -        <Property name="text" type="java.lang.String" value="Frame Opacity:"/>
 199.107 -      </Properties>
 199.108 -    </Component>
 199.109 -    <Component class="javax.swing.JSlider" name="transparencySld">
 199.110 -      <Properties>
 199.111 -        <Property name="majorTickSpacing" type="int" value="10"/>
 199.112 -        <Property name="minorTickSpacing" type="int" value="5"/>
 199.113 -        <Property name="paintLabels" type="boolean" value="true"/>
 199.114 -        <Property name="paintTicks" type="boolean" value="true"/>
 199.115 -        <Property name="value" type="int" value="100"/>
 199.116 -      </Properties>
 199.117 -      <Events>
 199.118 -        <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="transparencySldStateChanged"/>
 199.119 -      </Events>
 199.120 -    </Component>
 199.121 -    <Component class="javax.swing.JCheckBox" name="shapedCb">
 199.122 -      <Properties>
 199.123 -        <Property name="text" type="java.lang.String" value="Shaped Frame"/>
 199.124 -        <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
 199.125 -          <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
 199.126 -            <EmptyBorder bottom="0" left="0" right="0" top="0"/>
 199.127 -          </Border>
 199.128 -        </Property>
 199.129 -        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
 199.130 -          <Insets value="[0, 0, 0, 0]"/>
 199.131 -        </Property>
 199.132 -      </Properties>
 199.133 -      <Events>
 199.134 -        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="shapedCbActionPerformed"/>
 199.135 -      </Events>
 199.136 -    </Component>
 199.137 -    <Component class="javax.swing.JCheckBox" name="nonOpaqueChb">
 199.138 -      <Properties>
 199.139 -        <Property name="text" type="java.lang.String" value="Non Opaque Frame"/>
 199.140 -        <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
 199.141 -          <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
 199.142 -            <EmptyBorder bottom="0" left="0" right="0" top="0"/>
 199.143 -          </Border>
 199.144 -        </Property>
 199.145 -        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
 199.146 -          <Insets value="[0, 0, 0, 0]"/>
 199.147 -        </Property>
 199.148 -      </Properties>
 199.149 -      <Events>
 199.150 -        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="nonOpaqueChbActionPerformed"/>
 199.151 -      </Events>
 199.152 -    </Component>
 199.153 -    <Container class="javax.swing.JScrollPane" name="jScrollPane1">
 199.154 -      <AuxValues>
 199.155 -        <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
 199.156 -      </AuxValues>
 199.157 -
 199.158 -      <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
 199.159 -      <SubComponents>
 199.160 -        <Component class="javax.swing.JTextArea" name="jTextArea1">
 199.161 -          <Properties>
 199.162 -            <Property name="columns" type="int" value="20"/>
 199.163 -            <Property name="rows" type="int" value="5"/>
 199.164 -            <Property name="text" type="java.lang.String" value="Create translucent and/or shaped, or&#xa;non-opaque frame. Make sure it behaves&#xa;correctly (no artifacts left on the screen&#xa;when dragging - if dragging is possible).&#xa;Click &quot;Passed&quot; if the test behaves correctly,&#xa;&quot;Falied&quot; otherwise."/>
 199.165 -          </Properties>
 199.166 -        </Component>
 199.167 -      </SubComponents>
 199.168 -    </Container>
 199.169 -    <Component class="javax.swing.JLabel" name="jLabel2">
 199.170 -      <Properties>
 199.171 -        <Property name="text" type="java.lang.String" value="Instructions:"/>
 199.172 -      </Properties>
 199.173 -    </Component>
 199.174 -    <Component class="javax.swing.JButton" name="passedBtn">
 199.175 -      <Properties>
 199.176 -        <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
 199.177 -          <Color blue="64" green="ff" red="81" type="rgb"/>
 199.178 -        </Property>
 199.179 -        <Property name="text" type="java.lang.String" value="Passed"/>
 199.180 -      </Properties>
 199.181 -      <Events>
 199.182 -        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="passedBtnActionPerformed"/>
 199.183 -      </Events>
 199.184 -    </Component>
 199.185 -    <Component class="javax.swing.JButton" name="failedBtn">
 199.186 -      <Properties>
 199.187 -        <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
 199.188 -          <Color blue="0" green="0" id="red" palette="1" red="ff" type="palette"/>
 199.189 -        </Property>
 199.190 -        <Property name="text" type="java.lang.String" value="Failed"/>
 199.191 -      </Properties>
 199.192 -      <Events>
 199.193 -        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="failedBtnActionPerformed"/>
 199.194 -      </Events>
 199.195 -    </Component>
 199.196 -    <Component class="javax.swing.JToggleButton" name="createFrameBtn">
 199.197 -      <Properties>
 199.198 -        <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
 199.199 -          <ComponentRef name="createDisposeGrp"/>
 199.200 -        </Property>
 199.201 -        <Property name="text" type="java.lang.String" value="Create Frame"/>
 199.202 -      </Properties>
 199.203 -      <Events>
 199.204 -        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="createFrameBtnActionPerformed"/>
 199.205 -      </Events>
 199.206 -    </Component>
 199.207 -    <Component class="javax.swing.JToggleButton" name="disposeFrameBtn">
 199.208 -      <Properties>
 199.209 -        <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
 199.210 -          <ComponentRef name="createDisposeGrp"/>
 199.211 -        </Property>
 199.212 -        <Property name="selected" type="boolean" value="true"/>
 199.213 -        <Property name="text" type="java.lang.String" value="Dispose Frame"/>
 199.214 -      </Properties>
 199.215 -      <Events>
 199.216 -        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="disposeFrameBtnActionPerformed"/>
 199.217 -      </Events>
 199.218 -    </Component>
 199.219 -    <Component class="javax.swing.JCheckBox" name="useSwingCb">
 199.220 -      <Properties>
 199.221 -        <Property name="text" type="java.lang.String" value="Use JFrame"/>
 199.222 -        <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
 199.223 -          <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
 199.224 -            <EmptyBorder bottom="0" left="0" right="0" top="0"/>
 199.225 -          </Border>
 199.226 -        </Property>
 199.227 -        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
 199.228 -          <Insets value="[0, 0, 0, 0]"/>
 199.229 -        </Property>
 199.230 -      </Properties>
 199.231 -    </Component>
 199.232 -  </SubComponents>
 199.233 -</Form>
   200.1 --- a/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java	Tue Apr 28 14:43:44 2009 -0700
   200.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   200.3 @@ -1,359 +0,0 @@
   200.4 -/*
   200.5 - * Copyright 2008-2009 Sun Microsystems, Inc.  All Rights Reserved.
   200.6 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   200.7 - *
   200.8 - * This code is free software; you can redistribute it and/or modify it
   200.9 - * under the terms of the GNU General Public License version 2 only, as
  200.10 - * published by the Free Software Foundation.  Sun designates this
  200.11 - * particular file as subject to the "Classpath" exception as provided
  200.12 - * by Sun in the LICENSE file that accompanied this code.
  200.13 - *
  200.14 - * This code is distributed in the hope that it will be useful, but WITHOUT
  200.15 - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  200.16 - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  200.17 - * version 2 for more details (a copy is included in the LICENSE file that
  200.18 - * accompanied this code).
  200.19 - *
  200.20 - * You should have received a copy of the GNU General Public License version
  200.21 - * 2 along with this work; if not, write to the Free Software Foundation,
  200.22 - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  200.23 - *
  200.24 - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  200.25 - * CA 95054 USA or visit www.sun.com if you need additional information or
  200.26 - * have any questions.
  200.27 - */
  200.28 -
  200.29 -/*
  200.30 - * @test %I% %E%
  200.31 - * @bug 6655001 6670649 6687141
  200.32 - * @summary Tests that hw acceleration doesn't affect translucent/shaped windows
  200.33 - * @author Dmitri.Trembovetski@sun.com: area=Graphics
  200.34 - * @compile -XDignore.symbol.file=true TranslucentShapedFrameTest.java
  200.35 - * @compile -XDignore.symbol.file=true TSFrame.java
  200.36 - * @run main/manual/othervm TranslucentShapedFrameTest
  200.37 - * @run main/manual/othervm -Dsun.java2d.noddraw=true TranslucentShapedFrameTest
  200.38 - * @run main/manual/othervm -Dsun.java2d.opengl=True TranslucentShapedFrameTest
  200.39 - */
  200.40 -import com.sun.awt.AWTUtilities;
  200.41 -import static com.sun.awt.AWTUtilities.Translucency.*;
  200.42 -import java.awt.Frame;
  200.43 -import java.awt.GraphicsConfiguration;
  200.44 -import java.awt.GraphicsDevice;
  200.45 -import java.awt.GraphicsEnvironment;
  200.46 -import java.awt.Shape;
  200.47 -import java.awt.geom.Ellipse2D;
  200.48 -import java.util.concurrent.CountDownLatch;
  200.49 -import javax.swing.JSlider;
  200.50 -import javax.swing.SwingUtilities;
  200.51 -import javax.swing.UIManager;
  200.52 -import javax.swing.UnsupportedLookAndFeelException;
  200.53 -
  200.54 -public class TranslucentShapedFrameTest extends javax.swing.JFrame {
  200.55 -    Frame testFrame;
  200.56 -    static CountDownLatch done;
  200.57 -    static volatile boolean failed = false;
  200.58 -    GraphicsConfiguration gcToUse = null;
  200.59 -
  200.60 -    /**
  200.61 -     * Creates new form TranslucentShapedFrameTest
  200.62 -     */
  200.63 -    public TranslucentShapedFrameTest() {
  200.64 -        // not necessary, but we just look nicer
  200.65 -        try {
  200.66 -            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
  200.67 -        } catch (Exception ex) {}
  200.68 -
  200.69 -        initComponents();
  200.70 -        checkEffects();
  200.71 -
  200.72 -        SwingUtilities.updateComponentTreeUI(this);
  200.73 -    }
  200.74 -
  200.75 -    /** This method is called from within the constructor to
  200.76 -     * initialize the form.
  200.77 -     * WARNING: Do NOT modify this code. The content of this method is
  200.78 -     * always regenerated by the Form Editor.
  200.79 -     */
  200.80 -    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
  200.81 -    private void initComponents() {
  200.82 -        createDisposeGrp = new javax.swing.ButtonGroup();
  200.83 -        jLabel1 = new javax.swing.JLabel();
  200.84 -        transparencySld = new javax.swing.JSlider();
  200.85 -        shapedCb = new javax.swing.JCheckBox();
  200.86 -        nonOpaqueChb = new javax.swing.JCheckBox();
  200.87 -        jScrollPane1 = new javax.swing.JScrollPane();
  200.88 -        jTextArea1 = new javax.swing.JTextArea();
  200.89 -        jLabel2 = new javax.swing.JLabel();
  200.90 -        passedBtn = new javax.swing.JButton();
  200.91 -        failedBtn = new javax.swing.JButton();
  200.92 -        createFrameBtn = new javax.swing.JToggleButton();
  200.93 -        disposeFrameBtn = new javax.swing.JToggleButton();
  200.94 -        useSwingCb = new javax.swing.JCheckBox();
  200.95 -
  200.96 -        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  200.97 -        setTitle("TranslucentShapedFrameTest");
  200.98 -        jLabel1.setText("Frame Opacity:");
  200.99 -
 200.100 -        transparencySld.setMajorTickSpacing(10);
 200.101 -        transparencySld.setMinorTickSpacing(5);
 200.102 -        transparencySld.setPaintLabels(true);
 200.103 -        transparencySld.setPaintTicks(true);
 200.104 -        transparencySld.setValue(100);
 200.105 -        transparencySld.addChangeListener(new javax.swing.event.ChangeListener() {
 200.106 -            public void stateChanged(javax.swing.event.ChangeEvent evt) {
 200.107 -                transparencySldStateChanged(evt);
 200.108 -            }
 200.109 -        });
 200.110 -
 200.111 -        shapedCb.setText("Shaped Frame");
 200.112 -        shapedCb.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
 200.113 -        shapedCb.setMargin(new java.awt.Insets(0, 0, 0, 0));
 200.114 -        shapedCb.addActionListener(new java.awt.event.ActionListener() {
 200.115 -            public void actionPerformed(java.awt.event.ActionEvent evt) {
 200.116 -                shapedCbActionPerformed(evt);
 200.117 -            }
 200.118 -        });
 200.119 -
 200.120 -        nonOpaqueChb.setText("Non Opaque Frame");
 200.121 -        nonOpaqueChb.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
 200.122 -        nonOpaqueChb.setMargin(new java.awt.Insets(0, 0, 0, 0));
 200.123 -        nonOpaqueChb.addActionListener(new java.awt.event.ActionListener() {
 200.124 -            public void actionPerformed(java.awt.event.ActionEvent evt) {
 200.125 -                nonOpaqueChbActionPerformed(evt);
 200.126 -            }
 200.127 -        });
 200.128 -
 200.129 -        jTextArea1.setColumns(20);
 200.130 -        jTextArea1.setRows(5);
 200.131 -        jTextArea1.setText("Create translucent and/or shaped, or\nnon-opaque frame. Make sure it behaves\ncorrectly (no artifacts left on the screen\nwhen dragging - if dragging is possible).\nClick \"Passed\" if the test behaves correctly,\n\"Falied\" otherwise.");
 200.132 -        jScrollPane1.setViewportView(jTextArea1);
 200.133 -
 200.134 -        jLabel2.setText("Instructions:");
 200.135 -
 200.136 -        passedBtn.setBackground(new java.awt.Color(129, 255, 100));
 200.137 -        passedBtn.setText("Passed");
 200.138 -        passedBtn.addActionListener(new java.awt.event.ActionListener() {
 200.139 -            public void actionPerformed(java.awt.event.ActionEvent evt) {
 200.140 -                passedBtnActionPerformed(evt);
 200.141 -            }
 200.142 -        });
 200.143 -
 200.144 -        failedBtn.setBackground(java.awt.Color.red);
 200.145 -        failedBtn.setText("Failed");
 200.146 -        failedBtn.addActionListener(new java.awt.event.ActionListener() {
 200.147 -            public void actionPerformed(java.awt.event.ActionEvent evt) {
 200.148 -                failedBtnActionPerformed(evt);
 200.149 -            }
 200.150 -        });
 200.151 -
 200.152 -        createDisposeGrp.add(createFrameBtn);
 200.153 -        createFrameBtn.setText("Create Frame");
 200.154 -        createFrameBtn.addActionListener(new java.awt.event.ActionListener() {
 200.155 -            public void actionPerformed(java.awt.event.ActionEvent evt) {
 200.156 -                createFrameBtnActionPerformed(evt);
 200.157 -            }
 200.158 -        });
 200.159 -
 200.160 -        createDisposeGrp.add(disposeFrameBtn);
 200.161 -        disposeFrameBtn.setSelected(true);
 200.162 -        disposeFrameBtn.setText("Dispose Frame");
 200.163 -        disposeFrameBtn.addActionListener(new java.awt.event.ActionListener() {
 200.164 -            public void actionPerformed(java.awt.event.ActionEvent evt) {
 200.165 -                disposeFrameBtnActionPerformed(evt);
 200.166 -            }
 200.167 -        });
 200.168 -
 200.169 -        useSwingCb.setText("Use JFrame");
 200.170 -        useSwingCb.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
 200.171 -        useSwingCb.setMargin(new java.awt.Insets(0, 0, 0, 0));
 200.172 -
 200.173 -        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
 200.174 -        getContentPane().setLayout(layout);
 200.175 -        layout.setHorizontalGroup(
 200.176 -            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 200.177 -            .addGroup(layout.createSequentialGroup()
 200.178 -                .addContainerGap()
 200.179 -                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 200.180 -                    .addGroup(layout.createSequentialGroup()
 200.181 -                        .addComponent(transparencySld, javax.swing.GroupLayout.DEFAULT_SIZE, 375, Short.MAX_VALUE)
 200.182 -                        .addContainerGap())
 200.183 -                    .addComponent(jLabel1)
 200.184 -                    .addGroup(layout.createSequentialGroup()
 200.185 -                        .addComponent(shapedCb)
 200.186 -                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 200.187 -                        .addComponent(nonOpaqueChb)
 200.188 -                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 200.189 -                        .addComponent(useSwingCb)
 200.190 -                        .addContainerGap(102, Short.MAX_VALUE))
 200.191 -                    .addGroup(layout.createSequentialGroup()
 200.192 -                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 200.193 -                            .addGroup(layout.createSequentialGroup()
 200.194 -                                .addComponent(jLabel2)
 200.195 -                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 314, javax.swing.GroupLayout.PREFERRED_SIZE))
 200.196 -                            .addGroup(layout.createSequentialGroup()
 200.197 -                                .addComponent(passedBtn)
 200.198 -                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 200.199 -                                .addComponent(failedBtn)
 200.200 -                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 241, javax.swing.GroupLayout.PREFERRED_SIZE))
 200.201 -                            .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 375, Short.MAX_VALUE)
 200.202 -                            .addGroup(layout.createSequentialGroup()
 200.203 -                                .addComponent(createFrameBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 187, javax.swing.GroupLayout.PREFERRED_SIZE)
 200.204 -                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 200.205 -                                .addComponent(disposeFrameBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 182, javax.swing.GroupLayout.PREFERRED_SIZE)))
 200.206 -                        .addContainerGap())))
 200.207 -        );
 200.208 -        layout.setVerticalGroup(
 200.209 -            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 200.210 -            .addGroup(layout.createSequentialGroup()
 200.211 -                .addContainerGap()
 200.212 -                .addComponent(jLabel1)
 200.213 -                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 200.214 -                .addComponent(transparencySld, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 200.215 -                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 200.216 -                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 200.217 -                    .addComponent(shapedCb)
 200.218 -                    .addComponent(nonOpaqueChb)
 200.219 -                    .addComponent(useSwingCb))
 200.220 -                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 200.221 -                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 200.222 -                    .addComponent(disposeFrameBtn)
 200.223 -                    .addComponent(createFrameBtn))
 200.224 -                .addGap(17, 17, 17)
 200.225 -                .addComponent(jLabel2)
 200.226 -                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 200.227 -                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 148, javax.swing.GroupLayout.PREFERRED_SIZE)
 200.228 -                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 200.229 -                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 200.230 -                    .addComponent(passedBtn)
 200.231 -                    .addComponent(failedBtn))
 200.232 -                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
 200.233 -        );
 200.234 -        pack();
 200.235 -    }// </editor-fold>//GEN-END:initComponents
 200.236 -
 200.237 -    private void nonOpaqueChbActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nonOpaqueChbActionPerformed
 200.238 -        if (testFrame != null) {
 200.239 -            // REMIND: this path in the test doesn't work well (test bug)
 200.240 -//            AWTUtilities.setWindowOpaque(testFrame, !nonOpaqueChb.isSelected());
 200.241 -        }
 200.242 -    }//GEN-LAST:event_nonOpaqueChbActionPerformed
 200.243 -
 200.244 -    private void shapedCbActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_shapedCbActionPerformed
 200.245 -        if (testFrame != null) {
 200.246 -            Shape s = null;
 200.247 -            if (shapedCb.isSelected()) {
 200.248 -                s = new Ellipse2D.Double(0, 0,
 200.249 -                                         testFrame.getWidth(),
 200.250 -                                         testFrame.getHeight());
 200.251 -            }
 200.252 -            AWTUtilities.setWindowShape(testFrame, s);
 200.253 -        }
 200.254 -    }//GEN-LAST:event_shapedCbActionPerformed
 200.255 -
 200.256 -    private void transparencySldStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_transparencySldStateChanged
 200.257 -        JSlider source = (JSlider)evt.getSource();
 200.258 -            int transl = transparencySld.getValue();
 200.259 -            if (testFrame != null) {
 200.260 -                AWTUtilities.setWindowOpacity(testFrame, (float)transl/100f);
 200.261 -            }
 200.262 -    }//GEN-LAST:event_transparencySldStateChanged
 200.263 -
 200.264 -    private void failedBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_failedBtnActionPerformed
 200.265 -        disposeFrameBtnActionPerformed(evt);
 200.266 -        dispose();
 200.267 -        failed = true;
 200.268 -        done.countDown();
 200.269 -    }//GEN-LAST:event_failedBtnActionPerformed
 200.270 -
 200.271 -    private void disposeFrameBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_disposeFrameBtnActionPerformed
 200.272 -        TSFrame.stopThreads();
 200.273 -        if (testFrame != null) {
 200.274 -            testFrame.dispose();
 200.275 -            testFrame = null;
 200.276 -        }
 200.277 -    }//GEN-LAST:event_disposeFrameBtnActionPerformed
 200.278 -
 200.279 -    private void createFrameBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_createFrameBtnActionPerformed
 200.280 -        disposeFrameBtnActionPerformed(evt);
 200.281 -        int transl = transparencySld.getValue();
 200.282 -        testFrame = TSFrame.createGui(gcToUse,
 200.283 -                useSwingCb.isSelected(), shapedCb.isSelected(),
 200.284 -                (transl < 100), nonOpaqueChb.isSelected(),
 200.285 -                (float)transl/100f);
 200.286 -    }//GEN-LAST:event_createFrameBtnActionPerformed
 200.287 -
 200.288 -    private void passedBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_passedBtnActionPerformed
 200.289 -        disposeFrameBtnActionPerformed(evt);
 200.290 -        dispose();
 200.291 -        done.countDown();
 200.292 -    }//GEN-LAST:event_passedBtnActionPerformed
 200.293 -
 200.294 -    /**
 200.295 -     * @param args the command line arguments
 200.296 -     */
 200.297 -    public static void main(String args[]) {
 200.298 -        done = new CountDownLatch(1);
 200.299 -        java.awt.EventQueue.invokeLater(new Runnable() {
 200.300 -            public void run() {
 200.301 -                new TranslucentShapedFrameTest().setVisible(true);
 200.302 -            }
 200.303 -        });
 200.304 -        try {
 200.305 -            done.await();
 200.306 -        } catch (InterruptedException ex) {}
 200.307 -        if (failed) {
 200.308 -            throw new RuntimeException("Test FAILED");
 200.309 -        }
 200.310 -        System.out.println("Test PASSED");
 200.311 -    }
 200.312 -
 200.313 -    private void checkEffects() {
 200.314 -        if (!AWTUtilities.isTranslucencySupported(PERPIXEL_TRANSPARENT)) {
 200.315 -            shapedCb.setEnabled(false);
 200.316 -        }
 200.317 -
 200.318 -        if (!AWTUtilities.isTranslucencySupported(TRANSLUCENT)) {
 200.319 -            transparencySld.setEnabled(false);
 200.320 -        }
 200.321 -
 200.322 -        GraphicsConfiguration gc = null;
 200.323 -        if (AWTUtilities.isTranslucencySupported(PERPIXEL_TRANSLUCENT)) {
 200.324 -            gc = findGraphicsConfig();
 200.325 -            if (gc == null) {
 200.326 -                nonOpaqueChb.setEnabled(false);
 200.327 -            }
 200.328 -        }
 200.329 -
 200.330 -        gcToUse = gc;
 200.331 -    }
 200.332 -
 200.333 -    private GraphicsConfiguration findGraphicsConfig() {
 200.334 -        GraphicsDevice gd =
 200.335 -            GraphicsEnvironment.getLocalGraphicsEnvironment().
 200.336 -                getDefaultScreenDevice();
 200.337 -        GraphicsConfiguration gcs[] = gd.getConfigurations();
 200.338 -        for (GraphicsConfiguration gc : gcs) {
 200.339 -            if (AWTUtilities.isTranslucencyCapable(gc)) {
 200.340 -                return gc;
 200.341 -            }
 200.342 -        }
 200.343 -        return null;
 200.344 -    }
 200.345 -
 200.346 -    // Variables declaration - do not modify//GEN-BEGIN:variables
 200.347 -    private javax.swing.ButtonGroup createDisposeGrp;
 200.348 -    private javax.swing.JToggleButton createFrameBtn;
 200.349 -    private javax.swing.JToggleButton disposeFrameBtn;
 200.350 -    private javax.swing.JButton failedBtn;
 200.351 -    private javax.swing.JLabel jLabel1;
 200.352 -    private javax.swing.JLabel jLabel2;
 200.353 -    private javax.swing.JScrollPane jScrollPane1;
 200.354 -    private javax.swing.JTextArea jTextArea1;
 200.355 -    private javax.swing.JCheckBox nonOpaqueChb;
 200.356 -    private javax.swing.JButton passedBtn;
 200.357 -    private javax.swing.JCheckBox shapedCb;
 200.358 -    private javax.swing.JSlider transparencySld;
 200.359 -    private javax.swing.JCheckBox useSwingCb;
 200.360 -    // End of variables declaration//GEN-END:variables
 200.361 -
 200.362 -}
   201.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   201.2 +++ b/test/java/awt/Mixing/MixingInHwPanel.java	Wed Apr 29 00:27:46 2009 -0700
   201.3 @@ -0,0 +1,428 @@
   201.4 +/*
   201.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
   201.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   201.7 + *
   201.8 + * This code is free software; you can redistribute it and/or modify it
   201.9 + * under the terms of the GNU General Public License version 2 only, as
  201.10 + * published by the Free Software Foundation.
  201.11 + *
  201.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  201.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  201.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  201.15 + * version 2 for more details (a copy is included in the LICENSE file that
  201.16 + * accompanied this code).
  201.17 + *
  201.18 + * You should have received a copy of the GNU General Public License version
  201.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  201.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  201.21 + *
  201.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  201.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
  201.24 + * have any questions.
  201.25 + */
  201.26 +
  201.27 +/*
  201.28 +  @test %W% %E%
  201.29 +  @bug 6829858
  201.30 +  @summary Mixing should work inside heavyweight containers
  201.31 +  @author anthony.petrov@sun.com: area=awt.mixing
  201.32 +  @library ../regtesthelpers
  201.33 +  @build Util
  201.34 +  @run main MixingInHwPanel
  201.35 +*/
  201.36 +
  201.37 +
  201.38 +/**
  201.39 + * MixingInHwPanel.java
  201.40 + *
  201.41 + * summary: Mixing should work inside heavyweight containers
  201.42 + */
  201.43 +
  201.44 +import java.awt.*;
  201.45 +import java.awt.event.*;
  201.46 +import javax.swing.*;
  201.47 +import test.java.awt.regtesthelpers.Util;
  201.48 +
  201.49 +
  201.50 +
  201.51 +public class MixingInHwPanel
  201.52 +{
  201.53 +    static volatile boolean failed = true;
  201.54 +
  201.55 +    private static void init()
  201.56 +    {
  201.57 +        //*** Create instructions for the user here ***
  201.58 +
  201.59 +        String[] instructions =
  201.60 +        {
  201.61 +            "This is an AUTOMATIC test, simply wait until it is done.",
  201.62 +            "The result (passed or failed) will be shown in the",
  201.63 +            "message window below."
  201.64 +        };
  201.65 +        Sysout.createDialog( );
  201.66 +        Sysout.printInstructions( instructions );
  201.67 +
  201.68 +        // Create the components: frame -> hwPanel -> JDesktopPane ->
  201.69 +        //    -> JInternalFrame -> hwButton
  201.70 +        Frame frame = new Frame("Mixing in a heavyweight Panel");
  201.71 +        frame.setBounds(100, 100, 640, 480);
  201.72 +
  201.73 +        Panel hwPanel = new Panel(new BorderLayout());
  201.74 +        frame.add(hwPanel);
  201.75 +
  201.76 +        JDesktopPane desktop = new JDesktopPane();
  201.77 +        hwPanel.add(desktop);
  201.78 +
  201.79 +        JInternalFrame iFrame = new JInternalFrame("one",
  201.80 +                true, true, true, true);
  201.81 +        iFrame.setPreferredSize(new Dimension(150, 55));
  201.82 +        iFrame.setBounds(600, 100, 150, 55);
  201.83 +        iFrame.setVisible(true);
  201.84 +        desktop.add(iFrame);
  201.85 +
  201.86 +        Button button = new Button("HW Button");
  201.87 +        button.addActionListener(new ActionListener() {
  201.88 +            public void actionPerformed(ActionEvent e) {
  201.89 +                failed = false;
  201.90 +            }
  201.91 +        });
  201.92 +        iFrame.add(button);
  201.93 +
  201.94 +        // Show the frame with the hwButton slightly hidden initially
  201.95 +        frame.setVisible(true);
  201.96 +
  201.97 +        Robot robot = Util.createRobot();
  201.98 +        robot.setAutoDelay(20);
  201.99 +
 201.100 +        Util.waitForIdle(robot);
 201.101 +
 201.102 +        // Now resize the frame so that the button is fully visible
 201.103 +        frame.setBounds(100, 100, 800, 480);
 201.104 +        frame.validate();
 201.105 +
 201.106 +        Util.waitForIdle(robot);
 201.107 +
 201.108 +        // And click the part of the button that has been previously hidden
 201.109 +        Point bLoc = button.getLocationOnScreen();
 201.110 +        robot.mouseMove(bLoc.x + button.getWidth() - 6, bLoc.y + button.getHeight() / 2);
 201.111 +
 201.112 +        Util.waitForIdle(robot);
 201.113 +
 201.114 +        robot.mousePress(InputEvent.BUTTON1_MASK);
 201.115 +        robot.mouseRelease(InputEvent.BUTTON1_MASK);
 201.116 +
 201.117 +        Util.waitForIdle(robot);
 201.118 +
 201.119 +        // If the click happens (the shape is reapplied), the button's action
 201.120 +        // listener will make failed == false.
 201.121 +        if (failed) {
 201.122 +            MixingInHwPanel.fail("The HW button did not receive the click.");
 201.123 +        } else {
 201.124 +            MixingInHwPanel.pass();
 201.125 +        }
 201.126 +    }//End  init()
 201.127 +
 201.128 +
 201.129 +
 201.130 +    /*****************************************************
 201.131 +     * Standard Test Machinery Section
 201.132 +     * DO NOT modify anything in this section -- it's a
 201.133 +     * standard chunk of code which has all of the
 201.134 +     * synchronisation necessary for the test harness.
 201.135 +     * By keeping it the same in all tests, it is easier
 201.136 +     * to read and understand someone else's test, as
 201.137 +     * well as insuring that all tests behave correctly
 201.138 +     * with the test harness.
 201.139 +     * There is a section following this for test-
 201.140 +     * classes
 201.141 +     ******************************************************/
 201.142 +    private static boolean theTestPassed = false;
 201.143 +    private static boolean testGeneratedInterrupt = false;
 201.144 +    private static String failureMessage = "";
 201.145 +
 201.146 +    private static Thread mainThread = null;
 201.147 +
 201.148 +    private static int sleepTime = 300000;
 201.149 +
 201.150 +    // Not sure about what happens if multiple of this test are
 201.151 +    //  instantiated in the same VM.  Being static (and using
 201.152 +    //  static vars), it aint gonna work.  Not worrying about
 201.153 +    //  it for now.
 201.154 +    public static void main( String args[] ) throws InterruptedException
 201.155 +    {
 201.156 +        mainThread = Thread.currentThread();
 201.157 +        try
 201.158 +        {
 201.159 +            init();
 201.160 +        }
 201.161 +        catch( TestPassedException e )
 201.162 +        {
 201.163 +            //The test passed, so just return from main and harness will
 201.164 +            // interepret this return as a pass
 201.165 +            return;
 201.166 +        }
 201.167 +        //At this point, neither test pass nor test fail has been
 201.168 +        // called -- either would have thrown an exception and ended the
 201.169 +        // test, so we know we have multiple threads.
 201.170 +
 201.171 +        //Test involves other threads, so sleep and wait for them to
 201.172 +        // called pass() or fail()
 201.173 +        try
 201.174 +        {
 201.175 +            Thread.sleep( sleepTime );
 201.176 +            //Timed out, so fail the test
 201.177 +            throw new RuntimeException( "Timed out after " + sleepTime/1000 + " seconds" );
 201.178 +        }
 201.179 +        catch (InterruptedException e)
 201.180 +        {
 201.181 +            //The test harness may have interrupted the test.  If so, rethrow the exception
 201.182 +            // so that the harness gets it and deals with it.
 201.183 +            if( ! testGeneratedInterrupt ) throw e;
 201.184 +
 201.185 +            //reset flag in case hit this code more than once for some reason (just safety)
 201.186 +            testGeneratedInterrupt = false;
 201.187 +
 201.188 +            if ( theTestPassed == false )
 201.189 +            {
 201.190 +                throw new RuntimeException( failureMessage );
 201.191 +            }
 201.192 +        }
 201.193 +
 201.194 +    }//main
 201.195 +
 201.196 +    public static synchronized void setTimeoutTo( int seconds )
 201.197 +    {
 201.198 +        sleepTime = seconds * 1000;
 201.199 +    }
 201.200 +
 201.201 +    public static synchronized void pass()
 201.202 +    {
 201.203 +        Sysout.println( "The test passed." );
 201.204 +        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
 201.205 +        //first check if this is executing in main thread
 201.206 +        if ( mainThread == Thread.currentThread() )
 201.207 +        {
 201.208 +            //Still in the main thread, so set the flag just for kicks,
 201.209 +            // and throw a test passed exception which will be caught
 201.210 +            // and end the test.
 201.211 +            theTestPassed = true;
 201.212 +            throw new TestPassedException();
 201.213 +        }
 201.214 +        theTestPassed = true;
 201.215 +        testGeneratedInterrupt = true;
 201.216 +        mainThread.interrupt();
 201.217 +    }//pass()
 201.218 +
 201.219 +    public static synchronized void fail()
 201.220 +    {
 201.221 +        //test writer didn't specify why test failed, so give generic
 201.222 +        fail( "it just plain failed! :-)" );
 201.223 +    }
 201.224 +
 201.225 +    public static synchronized void fail( String whyFailed )
 201.226 +    {
 201.227 +        Sysout.println( "The test failed: " + whyFailed );
 201.228 +        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
 201.229 +        //check if this called from main thread
 201.230 +        if ( mainThread == Thread.currentThread() )
 201.231 +        {
 201.232 +            //If main thread, fail now 'cause not sleeping
 201.233 +            throw new RuntimeException( whyFailed );
 201.234 +        }
 201.235 +        theTestPassed = false;
 201.236 +        testGeneratedInterrupt = true;
 201.237 +        failureMessage = whyFailed;
 201.238 +        mainThread.interrupt();
 201.239 +    }//fail()
 201.240 +
 201.241 +}// class MixingInHwPanel
 201.242 +
 201.243 +//This exception is used to exit from any level of call nesting
 201.244 +// when it's determined that the test has passed, and immediately
 201.245 +// end the test.
 201.246 +class TestPassedException extends RuntimeException
 201.247 +{
 201.248 +}
 201.249 +
 201.250 +//*********** End Standard Test Machinery Section **********
 201.251 +
 201.252 +
 201.253 +//************ Begin classes defined for the test ****************
 201.254 +
 201.255 +// if want to make listeners, here is the recommended place for them, then instantiate
 201.256 +//  them in init()
 201.257 +
 201.258 +/* Example of a class which may be written as part of a test
 201.259 +class NewClass implements anInterface
 201.260 + {
 201.261 +   static int newVar = 0;
 201.262 +
 201.263 +   public void eventDispatched(AWTEvent e)
 201.264 +    {
 201.265 +      //Counting events to see if we get enough
 201.266 +      eventCount++;
 201.267 +
 201.268 +      if( eventCount == 20 )
 201.269 +       {
 201.270 +         //got enough events, so pass
 201.271 +
 201.272 +         MixingInHwPanel.pass();
 201.273 +       }
 201.274 +      else if( tries == 20 )
 201.275 +       {
 201.276 +         //tried too many times without getting enough events so fail
 201.277 +
 201.278 +         MixingInHwPanel.fail();
 201.279 +       }
 201.280 +
 201.281 +    }// eventDispatched()
 201.282 +
 201.283 + }// NewClass class
 201.284 +
 201.285 +*/
 201.286 +
 201.287 +
 201.288 +//************** End classes defined for the test *******************
 201.289 +
 201.290 +
 201.291 +
 201.292 +
 201.293 +/****************************************************
 201.294 + Standard Test Machinery
 201.295 + DO NOT modify anything below -- it's a standard
 201.296 +  chunk of code whose purpose is to make user
 201.297 +  interaction uniform, and thereby make it simpler
 201.298 +  to read and understand someone else's test.
 201.299 + ****************************************************/
 201.300 +
 201.301 +/**
 201.302 + This is part of the standard test machinery.
 201.303 + It creates a dialog (with the instructions), and is the interface
 201.304 +  for sending text messages to the user.
 201.305 + To print the instructions, send an array of strings to Sysout.createDialog
 201.306 +  WithInstructions method.  Put one line of instructions per array entry.
 201.307 + To display a message for the tester to see, simply call Sysout.println
 201.308 +  with the string to be displayed.
 201.309 + This mimics System.out.println but works within the test harness as well
 201.310 +  as standalone.
 201.311 + */
 201.312 +
 201.313 +class Sysout
 201.314 +{
 201.315 +    private static TestDialog dialog;
 201.316 +
 201.317 +    public static void createDialogWithInstructions( String[] instructions )
 201.318 +    {
 201.319 +        dialog = new TestDialog( new Frame(), "Instructions" );
 201.320 +        dialog.printInstructions( instructions );
 201.321 +        dialog.setVisible(true);
 201.322 +        println( "Any messages for the tester will display here." );
 201.323 +    }
 201.324 +
 201.325 +    public static void createDialog( )
 201.326 +    {
 201.327 +        dialog = new TestDialog( new Frame(), "Instructions" );
 201.328 +        String[] defInstr = { "Instructions will appear here. ", "" } ;
 201.329 +        dialog.printInstructions( defInstr );
 201.330 +        dialog.setVisible(true);
 201.331 +        println( "Any messages for the tester will display here." );
 201.332 +    }
 201.333 +
 201.334 +
 201.335 +    public static void printInstructions( String[] instructions )
 201.336 +    {
 201.337 +        dialog.printInstructions( instructions );
 201.338 +    }
 201.339 +
 201.340 +
 201.341 +    public static void println( String messageIn )
 201.342 +    {
 201.343 +        dialog.displayMessage( messageIn );
 201.344 +        System.out.println(messageIn);
 201.345 +    }
 201.346 +
 201.347 +}// Sysout  class
 201.348 +
 201.349 +/**
 201.350 +  This is part of the standard test machinery.  It provides a place for the
 201.351 +   test instructions to be displayed, and a place for interactive messages
 201.352 +   to the user to be displayed.
 201.353 +  To have the test instructions displayed, see Sysout.
 201.354 +  To have a message to the user be displayed, see Sysout.
 201.355 +  Do not call anything in this dialog directly.
 201.356 +  */
 201.357 +class TestDialog extends Dialog
 201.358 +{
 201.359 +
 201.360 +    TextArea instructionsText;
 201.361 +    TextArea messageText;
 201.362 +    int maxStringLength = 80;
 201.363 +
 201.364 +    //DO NOT call this directly, go through Sysout
 201.365 +    public TestDialog( Frame frame, String name )
 201.366 +    {
 201.367 +        super( frame, name );
 201.368 +        int scrollBoth = TextArea.SCROLLBARS_BOTH;
 201.369 +        instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
 201.370 +        add( "North", instructionsText );
 201.371 +
 201.372 +        messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
 201.373 +        add("Center", messageText);
 201.374 +
 201.375 +        pack();
 201.376 +
 201.377 +        setVisible(true);
 201.378 +    }// TestDialog()
 201.379 +
 201.380 +    //DO NOT call this directly, go through Sysout
 201.381 +    public void printInstructions( String[] instructions )
 201.382 +    {
 201.383 +        //Clear out any current instructions
 201.384 +        instructionsText.setText( "" );
 201.385 +
 201.386 +        //Go down array of instruction strings
 201.387 +
 201.388 +        String printStr, remainingStr;
 201.389 +        for( int i=0; i < instructions.length; i++ )
 201.390 +        {
 201.391 +            //chop up each into pieces maxSringLength long
 201.392 +            remainingStr = instructions[ i ];
 201.393 +            while( remainingStr.length() > 0 )
 201.394 +            {
 201.395 +                //if longer than max then chop off first max chars to print
 201.396 +                if( remainingStr.length() >= maxStringLength )
 201.397 +                {
 201.398 +                    //Try to chop on a word boundary
 201.399 +                    int posOfSpace = remainingStr.
 201.400 +                        lastIndexOf( ' ', maxStringLength - 1 );
 201.401 +
 201.402 +                    if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
 201.403 +
 201.404 +                    printStr = remainingStr.substring( 0, posOfSpace + 1 );
 201.405 +                    remainingStr = remainingStr.substring( posOfSpace + 1 );
 201.406 +                }
 201.407 +                //else just print
 201.408 +                else
 201.409 +                {
 201.410 +                    printStr = remainingStr;
 201.411 +                    remainingStr = "";
 201.412 +                }
 201.413 +
 201.414 +                instructionsText.append( printStr + "\n" );
 201.415 +
 201.416 +            }// while
 201.417 +
 201.418 +        }// for
 201.419 +
 201.420 +    }//printInstructions()
 201.421 +
 201.422 +    //DO NOT call this directly, go through Sysout
 201.423 +    public void displayMessage( String messageIn )
 201.424 +    {
 201.425 +        messageText.append( messageIn + "\n" );
 201.426 +        System.out.println(messageIn);
 201.427 +    }
 201.428 +
 201.429 +}// TestDialog  class
 201.430 +
 201.431 +
   202.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   202.2 +++ b/test/java/awt/Window/TranslucentJAppletTest/TranslucentJAppletTest.java	Wed Apr 29 00:27:46 2009 -0700
   202.3 @@ -0,0 +1,103 @@
   202.4 +/*
   202.5 + * Copyright 2008-2009 Sun Microsystems, Inc.  All Rights Reserved.
   202.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   202.7 + *
   202.8 + * This code is free software; you can redistribute it and/or modify it
   202.9 + * under the terms of the GNU General Public License version 2 only, as
  202.10 + * published by the Free Software Foundation.
  202.11 + *
  202.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  202.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  202.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  202.15 + * version 2 for more details (a copy is included in the LICENSE file that
  202.16 + * accompanied this code).
  202.17 + *
  202.18 + * You should have received a copy of the GNU General Public License version
  202.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  202.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  202.21 + *
  202.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  202.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
  202.24 + * have any questions.
  202.25 + */
  202.26 +
  202.27 +/*
  202.28 + * @test %I% %E%
  202.29 + * @bug 6683728
  202.30 + * @summary Tests that a JApplet in a translucent JFrame works properly
  202.31 + * @author Kenneth.Russell@sun.com: area=Graphics
  202.32 + * @compile -XDignore.symbol.file=true TranslucentJAppletTest.java
  202.33 + * @run main/manual/othervm TranslucentJAppletTest
  202.34 + */
  202.35 +
  202.36 +import java.awt.*;
  202.37 +import java.awt.image.*;
  202.38 +
  202.39 +import javax.swing.*;
  202.40 +
  202.41 +public class TranslucentJAppletTest {
  202.42 +
  202.43 +    private static JFrame frame;
  202.44 +    private static volatile boolean paintComponentCalled = false;
  202.45 +
  202.46 +    private static void initAndShowGUI() {
  202.47 +        frame = new JFrame();
  202.48 +        JApplet applet = new JApplet();
  202.49 +        JPanel panel = new JPanel() {
  202.50 +            protected void paintComponent(Graphics g) {
  202.51 +                paintComponentCalled = true;
  202.52 +                g.setColor(Color.RED);
  202.53 +                g.fillOval(0, 0, getWidth(), getHeight());
  202.54 +            }
  202.55 +        };
  202.56 +        panel.setDoubleBuffered(false);
  202.57 +        panel.setOpaque(false);
  202.58 +        applet.add(panel);
  202.59 +        frame.add(applet);
  202.60 +        frame.setBounds(100, 100, 200, 200);
  202.61 +        frame.setUndecorated(true);
  202.62 +        frame.setBackground(new Color(0, 0, 0, 0));
  202.63 +        frame.setVisible(true);
  202.64 +    }
  202.65 +
  202.66 +    public static void main(String[] args)
  202.67 +        throws Exception
  202.68 +    {
  202.69 +        sun.awt.SunToolkit tk = (sun.awt.SunToolkit)Toolkit.getDefaultToolkit();
  202.70 +
  202.71 +        Robot r = new Robot();
  202.72 +        Color color1 = r.getPixelColor(100, 100); // (0, 0) in frame coordinates
  202.73 +
  202.74 +        SwingUtilities.invokeAndWait(new Runnable() {
  202.75 +            public void run() {
  202.76 +                initAndShowGUI();
  202.77 +            }
  202.78 +        });
  202.79 +        tk.realSync();
  202.80 +
  202.81 +        if (!paintComponentCalled) {
  202.82 +            throw new RuntimeException("Test FAILED: panel's paintComponent() method is not called");
  202.83 +        }
  202.84 +
  202.85 +        Color newColor1 = r.getPixelColor(100, 100);
  202.86 +        // unfortunately, robot.getPixelColor() doesn't work for some unknown reason
  202.87 +        // Color newColor2 = r.getPixelColor(200, 200);
  202.88 +        BufferedImage bim = r.createScreenCapture(new Rectangle(200, 200, 1, 1));
  202.89 +        Color newColor2 = new Color(bim.getRGB(0, 0));
  202.90 +
  202.91 +        // Frame must be transparent at (100, 100) in screen coords
  202.92 +        if (!color1.equals(newColor1)) {
  202.93 +            System.err.println("color1 = " + color1);
  202.94 +            System.err.println("newColor1 = " + newColor1);
  202.95 +            throw new RuntimeException("Test FAILED: frame pixel at (0, 0) is not transparent");
  202.96 +        }
  202.97 +
  202.98 +        // Frame must be RED at (200, 200) in screen coords
  202.99 +        if (!newColor2.equals(Color.RED)) {
 202.100 +            System.err.println("newColor2 = " + newColor2);
 202.101 +            throw new RuntimeException("Test FAILED: frame pixel at (100, 100) is not red (transparent?)");
 202.102 +        }
 202.103 +
 202.104 +        System.out.println("Test PASSED");
 202.105 +    }
 202.106 +}
   203.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   203.2 +++ b/test/java/awt/Window/TranslucentShapedFrameTest/TSFrame.java	Wed Apr 29 00:27:46 2009 -0700
   203.3 @@ -0,0 +1,299 @@
   203.4 +/*
   203.5 + * Copyright 2008-2009 Sun Microsystems, Inc.  All Rights Reserved.
   203.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   203.7 + *
   203.8 + * This code is free software; you can redistribute it and/or modify it
   203.9 + * under the terms of the GNU General Public License version 2 only, as
  203.10 + * published by the Free Software Foundation.  Sun designates this
  203.11 + * particular file as subject to the "Classpath" exception as provided
  203.12 + * by Sun in the LICENSE file that accompanied this code.
  203.13 + *
  203.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  203.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  203.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  203.17 + * version 2 for more details (a copy is included in the LICENSE file that
  203.18 + * accompanied this code).
  203.19 + *
  203.20 + * You should have received a copy of the GNU General Public License version
  203.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  203.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  203.23 + *
  203.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  203.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  203.26 + * have any questions.
  203.27 + */
  203.28 +
  203.29 +import java.awt.BorderLayout;
  203.30 +import java.awt.Color;
  203.31 +import java.awt.Dimension;
  203.32 +import java.awt.Frame;
  203.33 +import java.awt.Graphics;
  203.34 +import java.awt.GraphicsConfiguration;
  203.35 +import java.awt.GraphicsDevice;
  203.36 +import java.awt.GraphicsDevice.WindowTranslucency;
  203.37 +import java.awt.GraphicsEnvironment;
  203.38 +import java.awt.RenderingHints;
  203.39 +import java.awt.event.MouseAdapter;
  203.40 +import java.awt.event.MouseEvent;
  203.41 +import java.awt.event.WindowAdapter;
  203.42 +import java.awt.event.WindowEvent;
  203.43 +import java.awt.Canvas;
  203.44 +import java.awt.Component;
  203.45 +import java.awt.GradientPaint;
  203.46 +import java.awt.Graphics2D;
  203.47 +import java.awt.Paint;
  203.48 +import java.util.Random;
  203.49 +import java.awt.geom.Ellipse2D;
  203.50 +import javax.swing.JApplet;
  203.51 +import javax.swing.JButton;
  203.52 +import javax.swing.JComponent;
  203.53 +import javax.swing.JFrame;
  203.54 +import javax.swing.JPanel;
  203.55 +import javax.swing.SwingUtilities;
  203.56 +
  203.57 +public class TSFrame {
  203.58 +
  203.59 +    static volatile boolean done = false;
  203.60 +
  203.61 +    static final boolean useSwing = System.getProperty("useswing") != null;
  203.62 +    static final boolean useShape = System.getProperty("useshape") != null;
  203.63 +    static final boolean useTransl = System.getProperty("usetransl") != null;
  203.64 +    static final boolean useNonOpaque = System.getProperty("usenonop") != null;
  203.65 +
  203.66 +    static final Random rnd = new Random();
  203.67 +    private static void render(Graphics g, int w, int h, boolean useNonOpaque) {
  203.68 +        if (useNonOpaque) {
  203.69 +            Graphics2D g2d = (Graphics2D)g;
  203.70 +            GradientPaint p =
  203.71 +                new GradientPaint(0.0f, 0.0f,
  203.72 +                                  new Color(rnd.nextInt(0xffffff)),
  203.73 +                                  w, h,
  203.74 +                                  new Color(rnd.nextInt(0xff),
  203.75 +                                            rnd.nextInt(0xff),
  203.76 +                                            rnd.nextInt(0xff), 0),
  203.77 +                                  true);
  203.78 +            g2d.setPaint(p);
  203.79 +            g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
  203.80 +                                 RenderingHints.VALUE_ANTIALIAS_ON);
  203.81 +            g2d.fillOval(0, 0, w, h);
  203.82 +        } else {
  203.83 +            g.setColor(new Color(rnd.nextInt(0xffffff)));
  203.84 +            g.fillRect(0, 0, w, h);
  203.85 +        }
  203.86 +    }
  203.87 +
  203.88 +    private static class MyCanvas extends Canvas {
  203.89 +        @Override
  203.90 +        public void paint(Graphics g) {
  203.91 +            render(g, getWidth(), getHeight(), false);
  203.92 +        }
  203.93 +        @Override
  203.94 +        public Dimension getPreferredSize() {
  203.95 +            return new Dimension(200, 100);
  203.96 +        }
  203.97 +    }
  203.98 +    private static class NonOpaqueJFrame extends JFrame {
  203.99 +        NonOpaqueJFrame() {
 203.100 +            super("NonOpaque Swing JFrame");
 203.101 +            JPanel p = new JPanel() {
 203.102 +                public void paintComponent(Graphics g) {
 203.103 +                    super.paintComponent(g);
 203.104 +                    render(g, getWidth(), getHeight(), true);
 203.105 +                    g.setColor(Color.red);
 203.106 +                    g.drawString("Non-Opaque Swing JFrame", 10, 15);
 203.107 +                }
 203.108 +            };
 203.109 +            p.setDoubleBuffered(false);
 203.110 +            p.setOpaque(false);
 203.111 +            add(p);
 203.112 +            setUndecorated(true);
 203.113 +        }
 203.114 +    }
 203.115 +    private static class NonOpaqueJAppletFrame extends JFrame {
 203.116 +        JPanel p;
 203.117 +        NonOpaqueJAppletFrame() {
 203.118 +            super("NonOpaque Swing JAppletFrame");
 203.119 +            JApplet ja = new JApplet() {
 203.120 +                public void paint(Graphics g) {
 203.121 +                    super.paint(g);
 203.122 +                    System.err.println("JAppletFrame paint called");
 203.123 +                }
 203.124 +            };
 203.125 +            p = new JPanel() {
 203.126 +                public void paintComponent(Graphics g) {
 203.127 +                    super.paintComponent(g);
 203.128 +                    render(g, getWidth(), getHeight(), true);
 203.129 +                    g.setColor(Color.red);
 203.130 +                    g.drawString("Non-Opaque Swing JFrame", 10, 15);
 203.131 +                }
 203.132 +            };
 203.133 +            p.setDoubleBuffered(false);
 203.134 +            p.setOpaque(false);
 203.135 +            ja.add(p);
 203.136 +            add(ja);
 203.137 +            setUndecorated(true);
 203.138 +        }
 203.139 +    }
 203.140 +    private static class NonOpaqueFrame extends Frame {
 203.141 +        NonOpaqueFrame() {
 203.142 +            super("NonOpaque AWT Frame");
 203.143 +            // uncomment to test with hw child
 203.144 +//            setLayout(null);
 203.145 +//            Component c = new Panel() {
 203.146 +//                public void paint(Graphics g) {
 203.147 +//                    g.setColor(new Color(1.0f, 1.0f, 1.0f, 0.5f));
 203.148 +//                    g.fillRect(0, 0, getWidth(), getHeight());
 203.149 +//                }
 203.150 +//            };
 203.151 +//            c.setSize(100, 100);
 203.152 +//            c.setBackground(Color.red);
 203.153 +//            c.setForeground(Color.red);
 203.154 +//            add(c);
 203.155 +//            c.setLocation(130, 130);
 203.156 +        }
 203.157 +        @Override
 203.158 +        public void paint(Graphics g) {
 203.159 +            render(g, getWidth(), getHeight(), true);
 203.160 +            g.setColor(Color.red);
 203.161 +            g.drawString("Non-Opaque AWT Frame", 10, 15);
 203.162 +        }
 203.163 +    }
 203.164 +
 203.165 +    private static class MyJPanel extends JPanel {
 203.166 +        @Override
 203.167 +        public void paintComponent(Graphics g) {
 203.168 +            render(g, getWidth(), getHeight(), false);
 203.169 +        }
 203.170 +    }
 203.171 +
 203.172 +    public static Frame createGui(
 203.173 +                                  final boolean useSwing,
 203.174 +                                  final boolean useShape,
 203.175 +                                  final boolean useTransl,
 203.176 +                                  final boolean useNonOpaque,
 203.177 +                                  final float factor)
 203.178 +    {
 203.179 +        Frame frame;
 203.180 +        done = false;
 203.181 +
 203.182 +        if (useNonOpaque) {
 203.183 +            if (useSwing) {
 203.184 +                frame = new NonOpaqueJFrame();
 203.185 +//                frame = new NonOpaqueJAppletFrame(gc);
 203.186 +            } else {
 203.187 +                frame = new NonOpaqueFrame();
 203.188 +            }
 203.189 +            animateComponent(frame);
 203.190 +        } else if (useSwing) {
 203.191 +            frame = new JFrame("Swing Frame");
 203.192 +            JComponent p = new JButton("Swing!");
 203.193 +            p.setPreferredSize(new Dimension(200, 100));
 203.194 +            frame.add("North", p);
 203.195 +            p = new MyJPanel();
 203.196 +            animateComponent(p);
 203.197 +            frame.add("Center", p);
 203.198 +        } else {
 203.199 +            frame = new Frame("AWT Frame") {
 203.200 +                public void paint(Graphics g) {
 203.201 +                    g.setColor(Color.red);
 203.202 +                    g.fillRect(0, 0, 100, 100);
 203.203 +                }
 203.204 +            };
 203.205 +            frame.setLayout(new BorderLayout());
 203.206 +            Canvas c = new MyCanvas();
 203.207 +            frame.add("North", c);
 203.208 +            animateComponent(c);
 203.209 +            c = new MyCanvas();
 203.210 +            frame.add("Center", c);
 203.211 +            animateComponent(c);
 203.212 +            c = new MyCanvas();
 203.213 +            frame.add("South", c);
 203.214 +            animateComponent(c);
 203.215 +        }
 203.216 +        final Frame finalFrame = frame;
 203.217 +        frame.addWindowListener(new WindowAdapter() {
 203.218 +            @Override
 203.219 +            public void windowClosing(WindowEvent e) {
 203.220 +                finalFrame.dispose();
 203.221 +                done = true;
 203.222 +            }
 203.223 +        });
 203.224 +        frame.addMouseListener(new MouseAdapter() {
 203.225 +            @Override
 203.226 +            public void mouseClicked(MouseEvent e) {
 203.227 +                finalFrame.dispose();
 203.228 +                done = true;
 203.229 +            }
 203.230 +        });
 203.231 +        frame.setPreferredSize(new Dimension(800, 600));
 203.232 +
 203.233 +        if (useShape) {
 203.234 +            frame.setUndecorated(true);
 203.235 +        }
 203.236 +
 203.237 +        frame.setLocation(450, 10);
 203.238 +        frame.pack();
 203.239 +
 203.240 +        GraphicsDevice gd = frame.getGraphicsConfiguration().getDevice();
 203.241 +        if (useShape) {
 203.242 +            if (gd.isWindowTranslucencySupported(WindowTranslucency.PERPIXEL_TRANSPARENT)) {
 203.243 +                System.out.println("applying PERPIXEL_TRANSPARENT");
 203.244 +                frame.setShape(new Ellipse2D.Double(0, 0, frame.getWidth(),
 203.245 +                                                    frame.getHeight()/3));
 203.246 +                frame.setTitle("PERPIXEL_TRANSPARENT");
 203.247 +            } else {
 203.248 +                System.out.println("Passed: PERPIXEL_TRANSPARENT unsupported");
 203.249 +            }
 203.250 +        }
 203.251 +        if (useTransl) {
 203.252 +            if (gd.isWindowTranslucencySupported(WindowTranslucency.TRANSLUCENT)) {
 203.253 +                System.out.println("applying TRANSLUCENT");
 203.254 +                frame.setOpacity(factor);
 203.255 +                frame.setTitle("TRANSLUCENT");
 203.256 +            } else {
 203.257 +                System.out.println("Passed: TRANSLUCENT unsupported");
 203.258 +            }
 203.259 +        }
 203.260 +        if (useNonOpaque) {
 203.261 +            if (gd.isWindowTranslucencySupported(WindowTranslucency.PERPIXEL_TRANSLUCENT)) {
 203.262 +                System.out.println("applying PERPIXEL_TRANSLUCENT");
 203.263 +                frame.setBackground(new Color(0, 0, 0, 0));
 203.264 +                frame.setTitle("PERPIXEL_TRANSLUCENT");
 203.265 +            } else {
 203.266 +                System.out.println("Passed: PERPIXEL_TRANSLUCENT unsupported");
 203.267 +            }
 203.268 +        }
 203.269 +        frame.setVisible(true);
 203.270 +        return frame;
 203.271 +    }
 203.272 +
 203.273 +    public static void stopThreads() {
 203.274 +        done = true;
 203.275 +    }
 203.276 +
 203.277 +    private static void animateComponent(final Component comp) {
 203.278 +        Thread t = new Thread(new Runnable() {
 203.279 +            public void run() {
 203.280 +                do {
 203.281 +                    try {
 203.282 +                        Thread.sleep(50);
 203.283 +                    } catch (InterruptedException ex) {}
 203.284 +                    comp.repaint();
 203.285 +                } while (!done);
 203.286 +            }
 203.287 +        });
 203.288 +        t.start();
 203.289 +    }
 203.290 +
 203.291 +    public static void main(String[] args) throws Exception {
 203.292 +        SwingUtilities.invokeLater(new Runnable() {
 203.293 +            public void run() {
 203.294 +                TSFrame.createGui(useSwing,
 203.295 +                                  useShape,
 203.296 +                                  useTransl,
 203.297 +                                  useNonOpaque,
 203.298 +                                  0.7f);
 203.299 +            }
 203.300 +        });
 203.301 +    }
 203.302 +}
   204.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   204.2 +++ b/test/java/awt/Window/TranslucentShapedFrameTest/TranslucentShapedFrameTest.form	Wed Apr 29 00:27:46 2009 -0700
   204.3 @@ -0,0 +1,230 @@
   204.4 +<?xml version="1.0" encoding="UTF-8" ?>
   204.5 +
   204.6 +<Form version="1.3" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
   204.7 +  <NonVisualComponents>
   204.8 +    <Component class="javax.swing.ButtonGroup" name="createDisposeGrp">
   204.9 +    </Component>
  204.10 +  </NonVisualComponents>
  204.11 +  <Properties>
  204.12 +    <Property name="defaultCloseOperation" type="int" value="3"/>
  204.13 +    <Property name="title" type="java.lang.String" value="TranslucentShapedFrameTest"/>
  204.14 +  </Properties>
  204.15 +  <SyntheticProperties>
  204.16 +    <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
  204.17 +  </SyntheticProperties>
  204.18 +  <AuxValues>
  204.19 +    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
  204.20 +    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
  204.21 +    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
  204.22 +    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
  204.23 +    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
  204.24 +    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
  204.25 +  </AuxValues>
  204.26 +
  204.27 +  <Layout>
  204.28 +    <DimensionLayout dim="0">
  204.29 +      <Group type="103" groupAlignment="0" attributes="0">
  204.30 +          <Group type="102" attributes="0">
  204.31 +              <EmptySpace max="-2" attributes="0"/>
  204.32 +              <Group type="103" groupAlignment="0" attributes="0">
  204.33 +                  <Group type="102" alignment="0" attributes="0">
  204.34 +                      <Component id="transparencySld" pref="375" max="32767" attributes="0"/>
  204.35 +                      <EmptySpace max="-2" attributes="0"/>
  204.36 +                  </Group>
  204.37 +                  <Component id="jLabel1" alignment="0" min="-2" max="-2" attributes="0"/>
  204.38 +                  <Group type="102" alignment="0" attributes="0">
  204.39 +                      <Component id="shapedCb" min="-2" max="-2" attributes="0"/>
  204.40 +                      <EmptySpace max="-2" attributes="0"/>
  204.41 +                      <Component id="nonOpaqueChb" min="-2" max="-2" attributes="0"/>
  204.42 +                      <EmptySpace max="-2" attributes="0"/>
  204.43 +                      <Component id="useSwingCb" min="-2" max="-2" attributes="0"/>
  204.44 +                      <EmptySpace pref="102" max="32767" attributes="0"/>
  204.45 +                  </Group>
  204.46 +                  <Group type="102" alignment="0" attributes="0">
  204.47 +                      <Group type="103" groupAlignment="0" attributes="0">
  204.48 +                          <Group type="102" alignment="0" attributes="0">
  204.49 +                              <Component id="jLabel2" min="-2" max="-2" attributes="0"/>
  204.50 +                              <EmptySpace pref="314" max="-2" attributes="0"/>
  204.51 +                          </Group>
  204.52 +                          <Group type="102" alignment="0" attributes="0">
  204.53 +                              <Component id="passedBtn" min="-2" max="-2" attributes="0"/>
  204.54 +                              <EmptySpace max="-2" attributes="0"/>
  204.55 +                              <Component id="failedBtn" min="-2" max="-2" attributes="0"/>
  204.56 +                              <EmptySpace pref="241" max="-2" attributes="0"/>
  204.57 +                          </Group>
  204.58 +                          <Component id="jScrollPane1" alignment="1" pref="375" max="32767" attributes="0"/>
  204.59 +                          <Group type="102" alignment="0" attributes="0">
  204.60 +                              <Component id="createFrameBtn" min="-2" pref="187" max="-2" attributes="0"/>
  204.61 +                              <EmptySpace max="-2" attributes="0"/>
  204.62 +                              <Component id="disposeFrameBtn" min="-2" pref="182" max="-2" attributes="0"/>
  204.63 +                          </Group>
  204.64 +                      </Group>
  204.65 +                      <EmptySpace max="-2" attributes="0"/>
  204.66 +                  </Group>
  204.67 +              </Group>
  204.68 +          </Group>
  204.69 +      </Group>
  204.70 +    </DimensionLayout>
  204.71 +    <DimensionLayout dim="1">
  204.72 +      <Group type="103" groupAlignment="0" attributes="0">
  204.73 +          <Group type="102" alignment="0" attributes="0">
  204.74 +              <EmptySpace max="-2" attributes="0"/>
  204.75 +              <Component id="jLabel1" min="-2" max="-2" attributes="0"/>
  204.76 +              <EmptySpace max="-2" attributes="0"/>
  204.77 +              <Component id="transparencySld" min="-2" max="-2" attributes="0"/>
  204.78 +              <EmptySpace max="-2" attributes="0"/>
  204.79 +              <Group type="103" groupAlignment="3" attributes="0">
  204.80 +                  <Component id="shapedCb" alignment="3" min="-2" max="-2" attributes="0"/>
  204.81 +                  <Component id="nonOpaqueChb" alignment="3" min="-2" max="-2" attributes="0"/>
  204.82 +                  <Component id="useSwingCb" alignment="3" min="-2" max="-2" attributes="0"/>
  204.83 +              </Group>
  204.84 +              <EmptySpace max="-2" attributes="0"/>
  204.85 +              <Group type="103" groupAlignment="3" attributes="0">
  204.86 +                  <Component id="disposeFrameBtn" alignment="3" min="-2" max="-2" attributes="0"/>
  204.87 +                  <Component id="createFrameBtn" alignment="3" min="-2" max="-2" attributes="0"/>
  204.88 +              </Group>
  204.89 +              <EmptySpace min="-2" pref="17" max="-2" attributes="0"/>
  204.90 +              <Component id="jLabel2" min="-2" max="-2" attributes="0"/>
  204.91 +              <EmptySpace max="-2" attributes="0"/>
  204.92 +              <Component id="jScrollPane1" min="-2" pref="148" max="-2" attributes="0"/>
  204.93 +              <EmptySpace max="-2" attributes="0"/>
  204.94 +              <Group type="103" groupAlignment="3" attributes="0">
  204.95 +                  <Component id="passedBtn" alignment="3" min="-2" max="-2" attributes="0"/>
  204.96 +                  <Component id="failedBtn" alignment="3" min="-2" max="-2" attributes="0"/>
  204.97 +              </Group>
  204.98 +              <EmptySpace max="32767" attributes="0"/>
  204.99 +          </Group>
 204.100 +      </Group>
 204.101 +    </DimensionLayout>
 204.102 +  </Layout>
 204.103 +  <SubComponents>
 204.104 +    <Component class="javax.swing.JLabel" name="jLabel1">
 204.105 +      <Properties>
 204.106 +        <Property name="text" type="java.lang.String" value="Frame Opacity:"/>
 204.107 +      </Properties>
 204.108 +    </Component>
 204.109 +    <Component class="javax.swing.JSlider" name="transparencySld">
 204.110 +      <Properties>
 204.111 +        <Property name="majorTickSpacing" type="int" value="10"/>
 204.112 +        <Property name="minorTickSpacing" type="int" value="5"/>
 204.113 +        <Property name="paintLabels" type="boolean" value="true"/>
 204.114 +        <Property name="paintTicks" type="boolean" value="true"/>
 204.115 +        <Property name="value" type="int" value="100"/>
 204.116 +      </Properties>
 204.117 +      <Events>
 204.118 +        <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="transparencySldStateChanged"/>
 204.119 +      </Events>
 204.120 +    </Component>
 204.121 +    <Component class="javax.swing.JCheckBox" name="shapedCb">
 204.122 +      <Properties>
 204.123 +        <Property name="text" type="java.lang.String" value="Shaped Frame"/>
 204.124 +        <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
 204.125 +          <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
 204.126 +            <EmptyBorder bottom="0" left="0" right="0" top="0"/>
 204.127 +          </Border>
 204.128 +        </Property>
 204.129 +        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
 204.130 +          <Insets value="[0, 0, 0, 0]"/>
 204.131 +        </Property>
 204.132 +      </Properties>
 204.133 +      <Events>
 204.134 +        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="shapedCbActionPerformed"/>
 204.135 +      </Events>
 204.136 +    </Component>
 204.137 +    <Component class="javax.swing.JCheckBox" name="nonOpaqueChb">
 204.138 +      <Properties>
 204.139 +        <Property name="text" type="java.lang.String" value="Non Opaque Frame"/>
 204.140 +        <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
 204.141 +          <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
 204.142 +            <EmptyBorder bottom="0" left="0" right="0" top="0"/>
 204.143 +          </Border>
 204.144 +        </Property>
 204.145 +        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
 204.146 +          <Insets value="[0, 0, 0, 0]"/>
 204.147 +        </Property>
 204.148 +      </Properties>
 204.149 +      <Events>
 204.150 +        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="nonOpaqueChbActionPerformed"/>
 204.151 +      </Events>
 204.152 +    </Component>
 204.153 +    <Container class="javax.swing.JScrollPane" name="jScrollPane1">
 204.154 +      <AuxValues>
 204.155 +        <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
 204.156 +      </AuxValues>
 204.157 +
 204.158 +      <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
 204.159 +      <SubComponents>
 204.160 +        <Component class="javax.swing.JTextArea" name="jTextArea1">
 204.161 +          <Properties>
 204.162 +            <Property name="columns" type="int" value="20"/>
 204.163 +            <Property name="rows" type="int" value="5"/>
 204.164 +            <Property name="text" type="java.lang.String" value="Create translucent and/or shaped, or&#xa;non-opaque frame. Make sure it behaves&#xa;correctly (no artifacts left on the screen&#xa;when dragging - if dragging is possible).&#xa;Click &quot;Passed&quot; if the test behaves correctly,&#xa;&quot;Falied&quot; otherwise."/>
 204.165 +          </Properties>
 204.166 +        </Component>
 204.167 +      </SubComponents>
 204.168 +    </Container>
 204.169 +    <Component class="javax.swing.JLabel" name="jLabel2">
 204.170 +      <Properties>
 204.171 +        <Property name="text" type="java.lang.String" value="Instructions:"/>
 204.172 +      </Properties>
 204.173 +    </Component>
 204.174 +    <Component class="javax.swing.JButton" name="passedBtn">
 204.175 +      <Properties>
 204.176 +        <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
 204.177 +          <Color blue="64" green="ff" red="81" type="rgb"/>
 204.178 +        </Property>
 204.179 +        <Property name="text" type="java.lang.String" value="Passed"/>
 204.180 +      </Properties>
 204.181 +      <Events>
 204.182 +        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="passedBtnActionPerformed"/>
 204.183 +      </Events>
 204.184 +    </Component>
 204.185 +    <Component class="javax.swing.JButton" name="failedBtn">
 204.186 +      <Properties>
 204.187 +        <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
 204.188 +          <Color blue="0" green="0" id="red" palette="1" red="ff" type="palette"/>
 204.189 +        </Property>
 204.190 +        <Property name="text" type="java.lang.String" value="Failed"/>
 204.191 +      </Properties>
 204.192 +      <Events>
 204.193 +        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="failedBtnActionPerformed"/>
 204.194 +      </Events>
 204.195 +    </Component>
 204.196 +    <Component class="javax.swing.JToggleButton" name="createFrameBtn">
 204.197 +      <Properties>
 204.198 +        <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
 204.199 +          <ComponentRef name="createDisposeGrp"/>
 204.200 +        </Property>
 204.201 +        <Property name="text" type="java.lang.String" value="Create Frame"/>
 204.202 +      </Properties>
 204.203 +      <Events>
 204.204 +        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="createFrameBtnActionPerformed"/>
 204.205 +      </Events>
 204.206 +    </Component>
 204.207 +    <Component class="javax.swing.JToggleButton" name="disposeFrameBtn">
 204.208 +      <Properties>
 204.209 +        <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
 204.210 +          <ComponentRef name="createDisposeGrp"/>
 204.211 +        </Property>
 204.212 +        <Property name="selected" type="boolean" value="true"/>
 204.213 +        <Property name="text" type="java.lang.String" value="Dispose Frame"/>
 204.214 +      </Properties>
 204.215 +      <Events>
 204.216 +        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="disposeFrameBtnActionPerformed"/>
 204.217 +      </Events>
 204.218 +    </Component>
 204.219 +    <Component class="javax.swing.JCheckBox" name="useSwingCb">
 204.220 +      <Properties>
 204.221 +        <Property name="text" type="java.lang.String" value="Use JFrame"/>
 204.222 +        <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
 204.223 +          <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
 204.224 +            <EmptyBorder bottom="0" left="0" right="0" top="0"/>
 204.225 +          </Border>
 204.226 +        </Property>
 204.227 +        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
 204.228 +          <Insets value="[0, 0, 0, 0]"/>
 204.229 +        </Property>
 204.230 +      </Properties>
 204.231 +    </Component>
 204.232 +  </SubComponents>
 204.233 +</Form>
   205.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   205.2 +++ b/test/java/awt/Window/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java	Wed Apr 29 00:27:46 2009 -0700
   205.3 @@ -0,0 +1,339 @@
   205.4 +/*
   205.5 + * Copyright 2008-2009 Sun Microsystems, Inc.  All Rights Reserved.
   205.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   205.7 + *
   205.8 + * This code is free software; you can redistribute it and/or modify it
   205.9 + * under the terms of the GNU General Public License version 2 only, as
  205.10 + * published by the Free Software Foundation.  Sun designates this
  205.11 + * particular file as subject to the "Classpath" exception as provided
  205.12 + * by Sun in the LICENSE file that accompanied this code.
  205.13 + *
  205.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  205.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  205.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  205.17 + * version 2 for more details (a copy is included in the LICENSE file that
  205.18 + * accompanied this code).
  205.19 + *
  205.20 + * You should have received a copy of the GNU General Public License version
  205.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  205.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  205.23 + *
  205.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  205.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  205.26 + * have any questions.
  205.27 + */
  205.28 +
  205.29 +/*
  205.30 + * @test %I% %E%
  205.31 + * @bug 6655001 6670649 6687141
  205.32 + * @summary Tests that hw acceleration doesn't affect translucent/shaped windows
  205.33 + * @author Dmitri.Trembovetski@sun.com: area=Graphics
  205.34 + * @compile -XDignore.symbol.file=true TranslucentShapedFrameTest.java
  205.35 + * @compile -XDignore.symbol.file=true TSFrame.java
  205.36 + * @run main/manual/othervm TranslucentShapedFrameTest
  205.37 + * @run main/manual/othervm -Dsun.java2d.noddraw=true TranslucentShapedFrameTest
  205.38 + * @run main/manual/othervm -Dsun.java2d.opengl=True TranslucentShapedFrameTest
  205.39 + */
  205.40 +import java.awt.Color;
  205.41 +import java.awt.Frame;
  205.42 +import java.awt.GraphicsConfiguration;
  205.43 +import java.awt.GraphicsDevice;
  205.44 +import java.awt.GraphicsDevice.WindowTranslucency;
  205.45 +import java.awt.GraphicsEnvironment;
  205.46 +import java.awt.Shape;
  205.47 +import java.awt.geom.Ellipse2D;
  205.48 +import java.util.concurrent.CountDownLatch;
  205.49 +import javax.swing.JSlider;
  205.50 +import javax.swing.SwingUtilities;
  205.51 +import javax.swing.UIManager;
  205.52 +import javax.swing.UnsupportedLookAndFeelException;
  205.53 +
  205.54 +public class TranslucentShapedFrameTest extends javax.swing.JFrame {
  205.55 +    Frame testFrame;
  205.56 +    static CountDownLatch done;
  205.57 +    static volatile boolean failed = false;
  205.58 +    GraphicsConfiguration gcToUse = null;
  205.59 +
  205.60 +    /**
  205.61 +     * Creates new form TranslucentShapedFrameTest
  205.62 +     */
  205.63 +    public TranslucentShapedFrameTest() {
  205.64 +        // not necessary, but we just look nicer
  205.65 +        try {
  205.66 +            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
  205.67 +        } catch (Exception ex) {}
  205.68 +
  205.69 +        initComponents();
  205.70 +        checkEffects();
  205.71 +
  205.72 +        SwingUtilities.updateComponentTreeUI(this);
  205.73 +    }
  205.74 +
  205.75 +    /** This method is called from within the constructor to
  205.76 +     * initialize the form.
  205.77 +     * WARNING: Do NOT modify this code. The content of this method is
  205.78 +     * always regenerated by the Form Editor.
  205.79 +     */
  205.80 +    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
  205.81 +    private void initComponents() {
  205.82 +        createDisposeGrp = new javax.swing.ButtonGroup();
  205.83 +        jLabel1 = new javax.swing.JLabel();
  205.84 +        transparencySld = new javax.swing.JSlider();
  205.85 +        shapedCb = new javax.swing.JCheckBox();
  205.86 +        nonOpaqueChb = new javax.swing.JCheckBox();
  205.87 +        jScrollPane1 = new javax.swing.JScrollPane();
  205.88 +        jTextArea1 = new javax.swing.JTextArea();
  205.89 +        jLabel2 = new javax.swing.JLabel();
  205.90 +        passedBtn = new javax.swing.JButton();
  205.91 +        failedBtn = new javax.swing.JButton();
  205.92 +        createFrameBtn = new javax.swing.JToggleButton();
  205.93 +        disposeFrameBtn = new javax.swing.JToggleButton();
  205.94 +        useSwingCb = new javax.swing.JCheckBox();
  205.95 +
  205.96 +        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  205.97 +        setTitle("TranslucentShapedFrameTest");
  205.98 +        jLabel1.setText("Frame Opacity:");
  205.99 +
 205.100 +        transparencySld.setMajorTickSpacing(10);
 205.101 +        transparencySld.setMinorTickSpacing(5);
 205.102 +        transparencySld.setPaintLabels(true);
 205.103 +        transparencySld.setPaintTicks(true);
 205.104 +        transparencySld.setValue(100);
 205.105 +        transparencySld.addChangeListener(new javax.swing.event.ChangeListener() {
 205.106 +            public void stateChanged(javax.swing.event.ChangeEvent evt) {
 205.107 +                transparencySldStateChanged(evt);
 205.108 +            }
 205.109 +        });
 205.110 +
 205.111 +        shapedCb.setText("Shaped Frame");
 205.112 +        shapedCb.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
 205.113 +        shapedCb.setMargin(new java.awt.Insets(0, 0, 0, 0));
 205.114 +        shapedCb.addActionListener(new java.awt.event.ActionListener() {
 205.115 +            public void actionPerformed(java.awt.event.ActionEvent evt) {
 205.116 +                shapedCbActionPerformed(evt);
 205.117 +            }
 205.118 +        });
 205.119 +
 205.120 +        nonOpaqueChb.setText("Non Opaque Frame");
 205.121 +        nonOpaqueChb.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
 205.122 +        nonOpaqueChb.setMargin(new java.awt.Insets(0, 0, 0, 0));
 205.123 +        nonOpaqueChb.addActionListener(new java.awt.event.ActionListener() {
 205.124 +            public void actionPerformed(java.awt.event.ActionEvent evt) {
 205.125 +                nonOpaqueChbActionPerformed(evt);
 205.126 +            }
 205.127 +        });
 205.128 +
 205.129 +        jTextArea1.setColumns(20);
 205.130 +        jTextArea1.setRows(5);
 205.131 +        jTextArea1.setText("Create translucent and/or shaped, or\nnon-opaque frame. Make sure it behaves\ncorrectly (no artifacts left on the screen\nwhen dragging - if dragging is possible).\nClick \"Passed\" if the test behaves correctly,\n\"Falied\" otherwise.");
 205.132 +        jScrollPane1.setViewportView(jTextArea1);
 205.133 +
 205.134 +        jLabel2.setText("Instructions:");
 205.135 +
 205.136 +        passedBtn.setBackground(new Color(129, 255, 100));
 205.137 +        passedBtn.setText("Passed");
 205.138 +        passedBtn.addActionListener(new java.awt.event.ActionListener() {
 205.139 +            public void actionPerformed(java.awt.event.ActionEvent evt) {
 205.140 +                passedBtnActionPerformed(evt);
 205.141 +            }
 205.142 +        });
 205.143 +
 205.144 +        failedBtn.setBackground(Color.red);
 205.145 +        failedBtn.setText("Failed");
 205.146 +        failedBtn.addActionListener(new java.awt.event.ActionListener() {
 205.147 +            public void actionPerformed(java.awt.event.ActionEvent evt) {
 205.148 +                failedBtnActionPerformed(evt);
 205.149 +            }
 205.150 +        });
 205.151 +
 205.152 +        createDisposeGrp.add(createFrameBtn);
 205.153 +        createFrameBtn.setText("Create Frame");
 205.154 +        createFrameBtn.addActionListener(new java.awt.event.ActionListener() {
 205.155 +            public void actionPerformed(java.awt.event.ActionEvent evt) {
 205.156 +                createFrameBtnActionPerformed(evt);
 205.157 +            }
 205.158 +        });
 205.159 +
 205.160 +        createDisposeGrp.add(disposeFrameBtn);
 205.161 +        disposeFrameBtn.setSelected(true);
 205.162 +        disposeFrameBtn.setText("Dispose Frame");
 205.163 +        disposeFrameBtn.addActionListener(new java.awt.event.ActionListener() {
 205.164 +            public void actionPerformed(java.awt.event.ActionEvent evt) {
 205.165 +                disposeFrameBtnActionPerformed(evt);
 205.166 +            }
 205.167 +        });
 205.168 +
 205.169 +        useSwingCb.setText("Use JFrame");
 205.170 +        useSwingCb.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
 205.171 +        useSwingCb.setMargin(new java.awt.Insets(0, 0, 0, 0));
 205.172 +
 205.173 +        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
 205.174 +        getContentPane().setLayout(layout);
 205.175 +        layout.setHorizontalGroup(
 205.176 +            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 205.177 +            .addGroup(layout.createSequentialGroup()
 205.178 +                .addContainerGap()
 205.179 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 205.180 +                    .addGroup(layout.createSequentialGroup()
 205.181 +                        .addComponent(transparencySld, javax.swing.GroupLayout.DEFAULT_SIZE, 375, Short.MAX_VALUE)
 205.182 +                        .addContainerGap())
 205.183 +                    .addComponent(jLabel1)
 205.184 +                    .addGroup(layout.createSequentialGroup()
 205.185 +                        .addComponent(shapedCb)
 205.186 +                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 205.187 +                        .addComponent(nonOpaqueChb)
 205.188 +                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 205.189 +                        .addComponent(useSwingCb)
 205.190 +                        .addContainerGap(102, Short.MAX_VALUE))
 205.191 +                    .addGroup(layout.createSequentialGroup()
 205.192 +                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 205.193 +                            .addGroup(layout.createSequentialGroup()
 205.194 +                                .addComponent(jLabel2)
 205.195 +                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 314, javax.swing.GroupLayout.PREFERRED_SIZE))
 205.196 +                            .addGroup(layout.createSequentialGroup()
 205.197 +                                .addComponent(passedBtn)
 205.198 +                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 205.199 +                                .addComponent(failedBtn)
 205.200 +                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 241, javax.swing.GroupLayout.PREFERRED_SIZE))
 205.201 +                            .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 375, Short.MAX_VALUE)
 205.202 +                            .addGroup(layout.createSequentialGroup()
 205.203 +                                .addComponent(createFrameBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 187, javax.swing.GroupLayout.PREFERRED_SIZE)
 205.204 +                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 205.205 +                                .addComponent(disposeFrameBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 182, javax.swing.GroupLayout.PREFERRED_SIZE)))
 205.206 +                        .addContainerGap())))
 205.207 +        );
 205.208 +        layout.setVerticalGroup(
 205.209 +            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 205.210 +            .addGroup(layout.createSequentialGroup()
 205.211 +                .addContainerGap()
 205.212 +                .addComponent(jLabel1)
 205.213 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 205.214 +                .addComponent(transparencySld, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 205.215 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 205.216 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 205.217 +                    .addComponent(shapedCb)
 205.218 +                    .addComponent(nonOpaqueChb)
 205.219 +                    .addComponent(useSwingCb))
 205.220 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 205.221 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 205.222 +                    .addComponent(disposeFrameBtn)
 205.223 +                    .addComponent(createFrameBtn))
 205.224 +                .addGap(17, 17, 17)
 205.225 +                .addComponent(jLabel2)
 205.226 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 205.227 +                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 148, javax.swing.GroupLayout.PREFERRED_SIZE)
 205.228 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 205.229 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 205.230 +                    .addComponent(passedBtn)
 205.231 +                    .addComponent(failedBtn))
 205.232 +                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
 205.233 +        );
 205.234 +        pack();
 205.235 +    }// </editor-fold>//GEN-END:initComponents
 205.236 +
 205.237 +    private void nonOpaqueChbActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nonOpaqueChbActionPerformed
 205.238 +        if (testFrame != null) {
 205.239 +            // REMIND: this path in the test doesn't work well (test bug)
 205.240 +            testFrame.setBackground(new Color(0, 0, 0, nonOpaqueChb.isSelected() ? 0 : 255));
 205.241 +        }
 205.242 +    }//GEN-LAST:event_nonOpaqueChbActionPerformed
 205.243 +
 205.244 +    private void shapedCbActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_shapedCbActionPerformed
 205.245 +        if (testFrame != null) {
 205.246 +            Shape s = null;
 205.247 +            if (shapedCb.isSelected()) {
 205.248 +                s = new Ellipse2D.Double(0, 0,
 205.249 +                                         testFrame.getWidth(),
 205.250 +                                         testFrame.getHeight());
 205.251 +            }
 205.252 +            testFrame.setShape(s);
 205.253 +        }
 205.254 +    }//GEN-LAST:event_shapedCbActionPerformed
 205.255 +
 205.256 +    private void transparencySldStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_transparencySldStateChanged
 205.257 +        JSlider source = (JSlider)evt.getSource();
 205.258 +            int transl = transparencySld.getValue();
 205.259 +            if (testFrame != null) {
 205.260 +                testFrame.setOpacity((float)transl/100f);
 205.261 +            }
 205.262 +    }//GEN-LAST:event_transparencySldStateChanged
 205.263 +
 205.264 +    private void failedBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_failedBtnActionPerformed
 205.265 +        disposeFrameBtnActionPerformed(evt);
 205.266 +        dispose();
 205.267 +        failed = true;
 205.268 +        done.countDown();
 205.269 +    }//GEN-LAST:event_failedBtnActionPerformed
 205.270 +
 205.271 +    private void disposeFrameBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_disposeFrameBtnActionPerformed
 205.272 +        TSFrame.stopThreads();
 205.273 +        if (testFrame != null) {
 205.274 +            testFrame.dispose();
 205.275 +            testFrame = null;
 205.276 +        }
 205.277 +    }//GEN-LAST:event_disposeFrameBtnActionPerformed
 205.278 +
 205.279 +    private void createFrameBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_createFrameBtnActionPerformed
 205.280 +        disposeFrameBtnActionPerformed(evt);
 205.281 +        int transl = transparencySld.getValue();
 205.282 +        testFrame = TSFrame.createGui(
 205.283 +                useSwingCb.isSelected(), shapedCb.isSelected(),
 205.284 +                (transl < 100), nonOpaqueChb.isSelected(),
 205.285 +                (float)transl/100f);
 205.286 +    }//GEN-LAST:event_createFrameBtnActionPerformed
 205.287 +
 205.288 +    private void passedBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_passedBtnActionPerformed
 205.289 +        disposeFrameBtnActionPerformed(evt);
 205.290 +        dispose();
 205.291 +        done.countDown();
 205.292 +    }//GEN-LAST:event_passedBtnActionPerformed
 205.293 +
 205.294 +    /**
 205.295 +     * @param args the command line arguments
 205.296 +     */
 205.297 +    public static void main(String args[]) {
 205.298 +        done = new CountDownLatch(1);
 205.299 +        java.awt.EventQueue.invokeLater(new Runnable() {
 205.300 +            public void run() {
 205.301 +                new TranslucentShapedFrameTest().setVisible(true);
 205.302 +            }
 205.303 +        });
 205.304 +        try {
 205.305 +            done.await();
 205.306 +        } catch (InterruptedException ex) {}
 205.307 +        if (failed) {
 205.308 +            throw new RuntimeException("Test FAILED");
 205.309 +        }
 205.310 +        System.out.println("Test PASSED");
 205.311 +    }
 205.312 +
 205.313 +    private void checkEffects() {
 205.314 +        GraphicsDevice gd = getGraphicsConfiguration().getDevice();
 205.315 +        if (!gd.isWindowTranslucencySupported(WindowTranslucency.PERPIXEL_TRANSPARENT)) {
 205.316 +            shapedCb.setEnabled(false);
 205.317 +        }
 205.318 +        if (!gd.isWindowTranslucencySupported(WindowTranslucency.TRANSLUCENT)) {
 205.319 +            transparencySld.setEnabled(false);
 205.320 +        }
 205.321 +        if (!gd.isWindowTranslucencySupported(WindowTranslucency.PERPIXEL_TRANSLUCENT)) {
 205.322 +            nonOpaqueChb.setEnabled(false);
 205.323 +        }
 205.324 +    }
 205.325 +
 205.326 +    // Variables declaration - do not modify//GEN-BEGIN:variables
 205.327 +    private javax.swing.ButtonGroup createDisposeGrp;
 205.328 +    private javax.swing.JToggleButton createFrameBtn;
 205.329 +    private javax.swing.JToggleButton disposeFrameBtn;
 205.330 +    private javax.swing.JButton failedBtn;
 205.331 +    private javax.swing.JLabel jLabel1;
 205.332 +    private javax.swing.JLabel jLabel2;
 205.333 +    private javax.swing.JScrollPane jScrollPane1;
 205.334 +    private javax.swing.JTextArea jTextArea1;
 205.335 +    private javax.swing.JCheckBox nonOpaqueChb;
 205.336 +    private javax.swing.JButton passedBtn;
 205.337 +    private javax.swing.JCheckBox shapedCb;
 205.338 +    private javax.swing.JSlider transparencySld;
 205.339 +    private javax.swing.JCheckBox useSwingCb;
 205.340 +    // End of variables declaration//GEN-END:variables
 205.341 +
 205.342 +}
   206.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   206.2 +++ b/test/javax/sound/midi/Gervill/SoftChannel/NoteOverFlowTest.java	Wed Apr 29 00:27:46 2009 -0700
   206.3 @@ -0,0 +1,73 @@
   206.4 +/*
   206.5 + * Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
   206.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   206.7 + *
   206.8 + * This code is free software; you can redistribute it and/or modify it
   206.9 + * under the terms of the GNU General Public License version 2 only, as
  206.10 + * published by the Free Software Foundation.  Sun designates this
  206.11 + * particular file as subject to the "Classpath" exception as provided
  206.12 + * by Sun in the LICENSE file that accompanied this code.
  206.13 + *
  206.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  206.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  206.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  206.17 + * version 2 for more details (a copy is included in the LICENSE file that
  206.18 + * accompanied this code).
  206.19 + *
  206.20 + * You should have received a copy of the GNU General Public License version
  206.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  206.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  206.23 + *
  206.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  206.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  206.26 + * have any questions.
  206.27 + */
  206.28 +
  206.29 +/* @test
  206.30 +   @summary Test SoftChannel noteOn/noteOff overflow test */
  206.31 +
  206.32 +import javax.sound.midi.MidiChannel;
  206.33 +import javax.sound.midi.VoiceStatus;
  206.34 +import javax.sound.sampled.AudioFormat;
  206.35 +import javax.sound.sampled.AudioInputStream;
  206.36 +
  206.37 +import com.sun.media.sound.AudioSynthesizer;
  206.38 +import com.sun.media.sound.SoftSynthesizer;
  206.39 +
  206.40 +public class NoteOverFlowTest {
  206.41 +
  206.42 +    public static void main(String[] args) throws Exception
  206.43 +    {
  206.44 +        AudioSynthesizer synth = new SoftSynthesizer();
  206.45 +        AudioFormat format = new AudioFormat(44100, 16, 2, true, false);
  206.46 +        AudioInputStream stream = synth.openStream(format, null);
  206.47 +
  206.48 +        // Make all voices busy, e.g.
  206.49 +        // send midi on and midi off on all available voices
  206.50 +        MidiChannel ch1 = synth.getChannels()[0];
  206.51 +        ch1.programChange(48); // Use contionus instrument like string ensemble
  206.52 +        for (int i = 0; i < synth.getMaxPolyphony(); i++) {
  206.53 +            ch1.noteOn(64, 64);
  206.54 +            ch1.noteOff(64);
  206.55 +        }
  206.56 +
  206.57 +        // Now send single midi on, and midi off message
  206.58 +        ch1.noteOn(64, 64);
  206.59 +        ch1.noteOff(64);
  206.60 +
  206.61 +        // Read 10 sec from stream, by this time all voices should be inactvie
  206.62 +        stream.skip(format.getFrameSize() * ((int)(format.getFrameRate() * 20)));
  206.63 +
  206.64 +        // If no voice are active, then this test will pass
  206.65 +        VoiceStatus[] v = synth.getVoiceStatus();
  206.66 +        for (int i = 0; i < v.length; i++) {
  206.67 +            if(v[i].active)
  206.68 +            {
  206.69 +                throw new RuntimeException("Not all voices are inactive!");
  206.70 +            }
  206.71 +        }
  206.72 +
  206.73 +        // Close the synthesizer after use
  206.74 +        synth.close();
  206.75 +    }
  206.76 +}
   207.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   207.2 +++ b/test/javax/sound/midi/Gervill/SoftFilter/TestProcessAudio.java	Wed Apr 29 00:27:46 2009 -0700
   207.3 @@ -0,0 +1,99 @@
   207.4 +/*
   207.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
   207.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   207.7 + *
   207.8 + * This code is free software; you can redistribute it and/or modify it
   207.9 + * under the terms of the GNU General Public License version 2 only, as
  207.10 + * published by the Free Software Foundation.  Sun designates this
  207.11 + * particular file as subject to the "Classpath" exception as provided
  207.12 + * by Sun in the LICENSE file that accompanied this code.
  207.13 + *
  207.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  207.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  207.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  207.17 + * version 2 for more details (a copy is included in the LICENSE file that
  207.18 + * accompanied this code).
  207.19 + *
  207.20 + * You should have received a copy of the GNU General Public License version
  207.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  207.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  207.23 + *
  207.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  207.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  207.26 + * have any questions.
  207.27 + */
  207.28 +
  207.29 +/* @test
  207.30 +   @summary Test SoftFilter processAudio method */
  207.31 +
  207.32 +import java.io.File;
  207.33 +import java.io.FileOutputStream;
  207.34 +import java.io.IOException;
  207.35 +import java.util.Random;
  207.36 +
  207.37 +import javax.sound.sampled.*;
  207.38 +
  207.39 +import com.sun.media.sound.*;
  207.40 +
  207.41 +public class TestProcessAudio {
  207.42 +
  207.43 +    public static void main(String[] args) throws Exception {
  207.44 +        AudioFormat format = new AudioFormat(44100, 16, 2, true, false);
  207.45 +        SoftAudioBuffer sbuffer = new SoftAudioBuffer(3600, format);
  207.46 +        SoftFilter filter = new SoftFilter(format.getSampleRate());
  207.47 +        Random random = new Random(42);
  207.48 +
  207.49 +
  207.50 +        for (int t = 0; t <= 6; t++)
  207.51 +        {
  207.52 +            if(t == 0) filter.setFilterType(SoftFilter.FILTERTYPE_BP12);
  207.53 +            if(t == 1) filter.setFilterType(SoftFilter.FILTERTYPE_HP12);
  207.54 +            if(t == 2) filter.setFilterType(SoftFilter.FILTERTYPE_HP24);
  207.55 +            if(t == 3) filter.setFilterType(SoftFilter.FILTERTYPE_LP12);
  207.56 +            if(t == 4) filter.setFilterType(SoftFilter.FILTERTYPE_LP24);
  207.57 +            if(t == 5) filter.setFilterType(SoftFilter.FILTERTYPE_LP6);
  207.58 +            if(t == 6) filter.setFilterType(SoftFilter.FILTERTYPE_NP12);
  207.59 +
  207.60 +
  207.61 +            // Try first by reseting always
  207.62 +            for (int f = 1200; f < 3600; f+=100)
  207.63 +                for (int r = 0; r <= 30; r+=5) {
  207.64 +                    filter.reset();
  207.65 +                    filter.setResonance(r);
  207.66 +                    filter.setFrequency(f);
  207.67 +                    float[] data = sbuffer.array();
  207.68 +                    int len = sbuffer.getSize();
  207.69 +                    for (int i = 0; i < len; i++)
  207.70 +                        data[i] = random.nextFloat() - 0.5f;
  207.71 +                    filter.processAudio(sbuffer);
  207.72 +                }
  207.73 +
  207.74 +            // Now we skip reseting
  207.75 +            // to test how changing frequency and resonance
  207.76 +            // affect active filter
  207.77 +            for (int f = 100; f < 12800; f+=1200)
  207.78 +            for (int r = 0; r <= 30; r+=5) {
  207.79 +                filter.setResonance(r);
  207.80 +                filter.setFrequency(f);
  207.81 +                float[] data = sbuffer.array();
  207.82 +                int len = sbuffer.getSize();
  207.83 +                for (int i = 0; i < len; i++)
  207.84 +                    data[i] = random.nextFloat() - 0.5f;
  207.85 +                filter.processAudio(sbuffer);
  207.86 +            }
  207.87 +            for (int f = 12800; f >= 100; f-=1200)
  207.88 +                for (int r = 30; r >= 0; r-=5) {
  207.89 +                    filter.setResonance(r);
  207.90 +                    filter.setFrequency(f);
  207.91 +                    float[] data = sbuffer.array();
  207.92 +                    int len = sbuffer.getSize();
  207.93 +                    for (int i = 0; i < len; i++)
  207.94 +                        data[i] = random.nextFloat() - 0.5f;
  207.95 +                    filter.processAudio(sbuffer);
  207.96 +                }
  207.97 +            filter.reset();
  207.98 +        }
  207.99 +
 207.100 +    }
 207.101 +
 207.102 +}
   208.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   208.2 +++ b/test/javax/sound/midi/Gervill/SoftLowFrequencyOscillator/TestProcessControlLogic.java	Wed Apr 29 00:27:46 2009 -0700
   208.3 @@ -0,0 +1,106 @@
   208.4 +/*
   208.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
   208.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   208.7 + *
   208.8 + * This code is free software; you can redistribute it and/or modify it
   208.9 + * under the terms of the GNU General Public License version 2 only, as
  208.10 + * published by the Free Software Foundation.  Sun designates this
  208.11 + * particular file as subject to the "Classpath" exception as provided
  208.12 + * by Sun in the LICENSE file that accompanied this code.
  208.13 + *
  208.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  208.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  208.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  208.17 + * version 2 for more details (a copy is included in the LICENSE file that
  208.18 + * accompanied this code).
  208.19 + *
  208.20 + * You should have received a copy of the GNU General Public License version
  208.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  208.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  208.23 + *
  208.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  208.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  208.26 + * have any questions.
  208.27 + */
  208.28 +
  208.29 +/* @test
  208.30 + @summary Test SoftLowFrequencyOscillator processControlLogic method */
  208.31 +
  208.32 +import com.sun.media.sound.AudioSynthesizerPropertyInfo;
  208.33 +import com.sun.media.sound.SoftLowFrequencyOscillator;
  208.34 +import com.sun.media.sound.SoftSynthesizer;
  208.35 +
  208.36 +public class TestProcessControlLogic {
  208.37 +
  208.38 +    private static float control_rate = 147f;
  208.39 +    private static SoftSynthesizer synth = new SoftSynthesizer();
  208.40 +    private static SoftLowFrequencyOscillator lfo = new SoftLowFrequencyOscillator();
  208.41 +
  208.42 +    private static void testLFO(boolean shared, int instance, float freq, float delay,
  208.43 +            float delay2) throws Exception {
  208.44 +        SoftLowFrequencyOscillator lfo =
  208.45 +            shared?TestProcessControlLogic.lfo:new SoftLowFrequencyOscillator();
  208.46 +        lfo.reset();
  208.47 +        double[] lfo_freq = lfo.get(instance, "freq");
  208.48 +        double[] lfo_delay = lfo.get(instance, "delay");
  208.49 +        double[] lfo_delay2 = lfo.get(instance, "delay2");
  208.50 +        double[] lfo_output = lfo.get(instance, null);
  208.51 +        lfo_freq[0] = freq;
  208.52 +        lfo_delay[0] = delay;
  208.53 +        lfo_delay2[0] = delay2;
  208.54 +        lfo.init(synth);
  208.55 +
  208.56 +        // For delayCount amount time, the output LFO should be 0.5
  208.57 +        int delayCount = (int) ((Math.pow(2, delay / 1200.0) * control_rate));
  208.58 +        delayCount += (int) ((delay2 * control_rate) / 1000.0);
  208.59 +        for (int i = 0; i < delayCount; i++) {
  208.60 +            if (Math.abs(0.5 - lfo_output[0]) > 0.000001)
  208.61 +                throw new Exception("Incorrect LFO output ("
  208.62 +                        +"0.5 != "+lfo_output[0]+")!");
  208.63 +            lfo.processControlLogic();
  208.64 +        }
  208.65 +
  208.66 +        // After the delay the LFO should start oscillate
  208.67 +        // Let make sure output is accurate enough
  208.68 +        double p_step = (440.0 / control_rate)
  208.69 +        * Math.exp((freq - 6900.0) * (Math.log(2) / 1200.0));
  208.70 +        double p = 0;
  208.71 +        for (int i = 0; i < 30; i++) {
  208.72 +            p += p_step;
  208.73 +            double predicted_output = 0.5 + Math.sin(p * 2 * Math.PI) * 0.5;
  208.74 +            if (Math.abs(predicted_output - lfo_output[0]) > 0.001)
  208.75 +                throw new Exception("Incorrect LFO output ("
  208.76 +                        +predicted_output+" != "+lfo_output[0]+")!");
  208.77 +            lfo.processControlLogic();
  208.78 +        }
  208.79 +
  208.80 +    }
  208.81 +
  208.82 +    public static void main(String[] args) throws Exception {
  208.83 +
  208.84 +        // Get default control rate from synthesizer
  208.85 +        AudioSynthesizerPropertyInfo[] p = synth.getPropertyInfo(null);
  208.86 +        for (int i = 0; i < p.length; i++) {
  208.87 +            if (p[i].name.equals("control rate")) {
  208.88 +                control_rate = ((Float) p[i].value).floatValue();
  208.89 +                break;
  208.90 +            }
  208.91 +        }
  208.92 +
  208.93 +        // Test LFO under various configurations
  208.94 +        for (int instance = 0; instance < 3; instance++)
  208.95 +            for (int d1 = -3000; d1 < 0; d1 += 1000)
  208.96 +                for (int d2 = 0; d2 < 5000; d2 += 1000)
  208.97 +                    for (int fr = -1000; fr < 1000; fr += 100) {
  208.98 +                        testLFO(true, instance,
  208.99 +                                (fr == -1000) ? Float.NEGATIVE_INFINITY : fr,
 208.100 +                                (d1 == -3000) ? Float.NEGATIVE_INFINITY : d1,
 208.101 +                                d2);
 208.102 +                        testLFO(false, instance,
 208.103 +                                (fr == -1000) ? Float.NEGATIVE_INFINITY : fr,
 208.104 +                                (d1 == -3000) ? Float.NEGATIVE_INFINITY : d1,
 208.105 +                                d2);
 208.106 +                    }
 208.107 +
 208.108 +    }
 208.109 +}